1 #ifndef __CS_MATRIX_PRIV_H__
2 #define __CS_MATRIX_PRIV_H__
80 (cs_matrix_vector_product_t) (
bool exclude_diag,
97 typedef struct _cs_matrix_struct_native_t {
109 } cs_matrix_struct_native_t;
114 typedef struct _cs_matrix_coeff_native_t {
130 } cs_matrix_coeff_native_t;
135 typedef struct _cs_matrix_struct_csr_t {
145 bool direct_assembly;
156 } cs_matrix_struct_csr_t;
161 typedef struct _cs_matrix_coeff_csr_t {
178 } cs_matrix_coeff_csr_t;
183 typedef struct _cs_matrix_struct_csr_sym_t {
194 bool direct_assembly;
202 } cs_matrix_struct_csr_sym_t;
207 typedef struct _cs_matrix_coeff_csr_sym_t {
218 } cs_matrix_coeff_csr_sym_t;
223 typedef struct _cs_matrix_coeff_msr_t {
238 } cs_matrix_coeff_msr_t;
243 struct _cs_matrix_structure_t {
266 struct _cs_matrix_t {
291 const void *structure;
315 cs_matrix_set_coeffs_t *set_coefficients;
316 cs_matrix_release_coeffs_t *release_coefficients;
317 cs_matrix_copy_diagonal_t *copy_diagonal;
329 struct _cs_matrix_variant_t {
342 double matrix_create_cost;
368 cs_matrix_coeff_csr_t *
429 #if defined (HAVE_MKL)
441 cs_matrix_vec_p_l_csr_mkl(
bool exclude_diag,
467 cs_matrix_coeff_msr_t *
496 #if defined (HAVE_MKL)
508 cs_matrix_vec_p_l_msr_mkl(
bool exclude_diag,
unsigned long cs_gnum_t
global mesh entity number
Definition: cs_defs.h:280
#define restrict
Definition: cs_defs.h:122
void cs_matrix_copy_diagonal_separate(const cs_matrix_t *matrix, cs_real_t *restrict da)
cs_matrix_coeff_csr_t * cs_matrix_create_coeff_csr(void)
#define BEGIN_C_DECLS
Definition: cs_defs.h:429
Definition: cs_matrix.h:79
void cs_matrix_copy_diagonal_csr(const cs_matrix_t *matrix, cs_real_t *restrict da)
void cs_matrix_release_coeffs_csr(cs_matrix_t *matrix)
void cs_matrix_release_coeffs_msr(cs_matrix_t *matrix)
struct _cs_matrix_t cs_matrix_t
Definition: cs_matrix.h:89
void cs_matrix_destroy_coeff_csr(cs_matrix_coeff_csr_t **coeff)
cs_matrix_coeff_msr_t * cs_matrix_create_coeff_msr(void)
void cs_matrix_vec_p_l_msr(bool exclude_diag, const cs_matrix_t *matrix, const cs_real_t *restrict x, cs_real_t *restrict y)
void cs_matrix_vec_p_l_csr(bool exclude_diag, const cs_matrix_t *matrix, const cs_real_t *restrict x, cs_real_t *restrict y)
cs_matrix_type_t
Definition: cs_matrix.h:54
void matrix(const cs_int_t *const iconvp, const cs_int_t *const idiffp, const cs_int_t *const ndircp, const cs_int_t *const isym, const cs_real_t *const thetap, const cs_int_t *const imucpp, const cs_real_t coefbp[], const cs_real_t cofbfp[], const cs_real_t rovsdt[], const cs_real_t i_massflux[], const cs_real_t b_massflux[], const cs_real_t i_visc[], const cs_real_t b_visc[], const cs_real_t xcpp[], cs_real_t da[], cs_real_t xa[])
Definition: cs_matrix_building.c:111
int cs_lnum_2_t[2]
vector of 2 local mesh-entity ids
Definition: cs_defs.h:301
int cs_lnum_t
local mesh entity id
Definition: cs_defs.h:292
#define END_C_DECLS
Definition: cs_defs.h:430
double cs_real_t
Definition: cs_defs.h:296
Definition: cs_numbering.h:78
void cs_matrix_destroy_struct_csr(cs_matrix_struct_csr_t **matrix)
cs_matrix_fill_type_t
Definition: cs_matrix.h:66