finite_element_method/fem/structs/
separated_stiffness_matrix_sparse.rs

1//! separated_stiffness_matrix_sparse.
2//!
3//! See crate README for context. This file contains the implementation for the
4//! `separated_stiffness_matrix_sparse` element/type.
5
6#[derive(Clone, Debug)]
7pub struct SeparatedStiffnessMatrixSparse<V> {
8    k_aa_indexes: Vec<usize>,
9    k_bb_indexes: Vec<usize>,
10    k_aa_triplets: Vec<(usize, usize, V)>,
11    k_ab_triplets: Vec<(usize, usize, V)>,
12    k_ba_triplets: Vec<(usize, usize, V)>,
13    k_bb_triplets: Vec<(usize, usize, V)>,
14    n_aa: usize,
15    n_bb: usize,
16}
17
18impl<V> SeparatedStiffnessMatrixSparse<V> {
19    pub fn create(
20        k_aa_indexes: Vec<usize>,
21        k_bb_indexes: Vec<usize>,
22        k_aa_triplets: Vec<(usize, usize, V)>,
23        k_ab_triplets: Vec<(usize, usize, V)>,
24        k_ba_triplets: Vec<(usize, usize, V)>,
25        k_bb_triplets: Vec<(usize, usize, V)>,
26        n_aa: usize,
27        n_bb: usize,
28    ) -> Self {
29        SeparatedStiffnessMatrixSparse {
30            k_aa_indexes,
31            k_bb_indexes,
32            k_aa_triplets,
33            k_ab_triplets,
34            k_ba_triplets,
35            k_bb_triplets,
36            n_aa,
37            n_bb,
38        }
39    }
40
41    pub fn get_k_aa_indexes(&self) -> &Vec<usize> {
42        &self.k_aa_indexes
43    }
44
45    pub fn get_k_bb_indexes(&self) -> &Vec<usize> {
46        &self.k_bb_indexes
47    }
48
49    pub fn get_k_aa_triplets(&self) -> &Vec<(usize, usize, V)> {
50        &self.k_aa_triplets
51    }
52
53    pub fn get_k_ab_triplets(&self) -> &Vec<(usize, usize, V)> {
54        &self.k_ab_triplets
55    }
56
57    pub fn get_k_ba_triplets(&self) -> &Vec<(usize, usize, V)> {
58        &self.k_ba_triplets
59    }
60
61    pub fn get_k_bb_triplets(&self) -> &Vec<(usize, usize, V)> {
62        &self.k_bb_triplets
63    }
64
65    pub fn get_n_aa(&self) -> usize {
66        self.n_aa
67    }
68
69    pub fn get_n_bb(&self) -> usize {
70        self.n_bb
71    }
72}