finite_element_method/fem/structs/
separated_stiffness_matrix_sparse.rs1#[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}