-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathglobal_matrices.c
72 lines (69 loc) · 2.4 KB
/
global_matrices.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
/** @file */
/**
* @brief Build a mass matrix.
*
* @param[in] mesh Finite element mesh.
* @param[in] ref_data Information about finite element space on the reference
* domain.
* @param[out] matrix Sparse matrix in triplet format.
*/
int cf_build_mass(const cf_mesh_s mesh, const cf_ref_arrays_s ref_data,
cf_convection_f convection_function,
cf_triplet_matrix_s matrix)
{
int status;
status = cf_build_triplet_matrix(cf_local_mass, &mesh, &ref_data,
convection_function, &matrix);
return status;
}
/**
* @brief Build a convection matrix.
*
* @param[in] mesh Finite element mesh.
* @param[in] ref_data Information about finite element space on the reference
* domain.
* @param[out] matrix Sparse matrix in triplet format.
*/
int cf_build_convection(const cf_mesh_s mesh, const cf_ref_arrays_s ref_data,
cf_convection_f convection_function,
cf_triplet_matrix_s matrix)
{
int status;
status = cf_build_triplet_matrix(cf_local_convection, &mesh, &ref_data,
convection_function, &matrix);
return status;
}
/**
* @brief Build a stiffness matrix.
*
* @param[in] mesh Finite element mesh.
* @param[in] ref_data Information about finite element space on the reference
* domain.
* @param[out] matrix Sparse matrix in triplet format.
*/
int cf_build_stiffness(const cf_mesh_s mesh, const cf_ref_arrays_s ref_data,
cf_convection_f convection_function,
cf_triplet_matrix_s matrix)
{
int status;
status = cf_build_triplet_matrix(cf_local_stiffness, &mesh, &ref_data,
convection_function, &matrix);
return status;
}
/**
* @brief Build a hessian matrix.
*
* @param[in] mesh Finite element mesh.
* @param[in] ref_data Information about finite element space on the reference
* domain.
* @param[out] matrix Sparse matrix in triplet format.
*/
int cf_build_hessian(const cf_mesh_s mesh, const cf_ref_arrays_s ref_data,
cf_convection_f convection_function,
cf_triplet_matrix_s matrix)
{
int status;
status = cf_build_triplet_matrix(cf_local_hessian, &mesh, &ref_data,
convection_function, &matrix);
return status;
}