1 #ifndef __CS_MATRIX_H__ 2 #define __CS_MATRIX_H__ 291 const int *diag_block_size,
292 const int *extra_diag_block_size);
320 const int *diag_block_size,
321 const int *extra_diag_block_size,
347 const int *diag_block_size,
348 const int *extra_diag_block_size,
596 const char *func_name);
const int * cs_matrix_get_diag_block_size(const cs_matrix_t *matrix)
Definition: cs_matrix.c:4688
bool cs_matrix_is_symmetric(const cs_matrix_t *matrix)
Definition: cs_matrix.c:5010
unsigned long cs_gnum_t
global mesh entity number
Definition: cs_defs.h:280
#define restrict
Definition: cs_defs.h:122
void cs_matrix_get_msr_arrays(const cs_matrix_t *matrix, const cs_lnum_t **row_index, const cs_lnum_t **col_id, const cs_real_t **d_val, const cs_real_t **x_val)
Definition: cs_matrix.c:5186
const cs_halo_t * cs_matrix_get_halo(const cs_matrix_t *matrix)
Definition: cs_matrix.c:4732
void cs_matrix_vector_multiply(cs_halo_rotation_t rotation_mode, const cs_matrix_t *matrix, cs_real_t *restrict x, cs_real_t *restrict y)
Definition: cs_matrix.c:5222
void cs_matrix_variant_build_list(int n_fill_types, cs_matrix_fill_type_t fill_types[], bool type_filter[], const cs_numbering_t *numbering, int *n_variants, cs_matrix_variant_t **m_variant)
Definition: cs_matrix.c:5365
cs_halo_rotation_t
Definition: cs_halo.h:59
void cs_matrix_copy_coefficients(cs_matrix_t *matrix, bool symmetric, const int *diag_block_size, const int *extra_diag_block_size, const cs_real_t *da, const cs_real_t *xa)
Definition: cs_matrix.c:4890
const int * cs_matrix_get_extra_diag_block_size(const cs_matrix_t *matrix)
Definition: cs_matrix.c:4712
Definition: cs_matrix.h:72
cs_matrix_t * cs_matrix_create(const cs_matrix_structure_t *ms)
Definition: cs_matrix.c:4434
struct _cs_matrix_variant_t cs_matrix_variant_t
Definition: cs_matrix.h:90
#define BEGIN_C_DECLS
Definition: cs_defs.h:419
void cs_matrix_release_coefficients(cs_matrix_t *matrix)
Definition: cs_matrix.c:4956
Definition: cs_matrix.h:76
void cs_matrix_structure_destroy(cs_matrix_structure_t **ms)
Definition: cs_matrix.c:4377
void cs_matrix_copy_diagonal(const cs_matrix_t *matrix, cs_real_t *restrict da)
Definition: cs_matrix.c:4986
void cs_matrix_variant_test(cs_lnum_t n_cells, cs_lnum_t n_cells_ext, cs_lnum_t n_faces, const cs_gnum_t *cell_num, const cs_lnum_2_t *face_cell, const cs_halo_t *halo, const cs_numbering_t *numbering)
Definition: cs_matrix.c:5758
const char * cs_matrix_type_fullname[]
const char * cs_matrix_fill_type_name[]
struct _cs_matrix_t cs_matrix_t
Definition: cs_matrix.h:86
void cs_matrix_variant_merge(cs_matrix_variant_t *mv, const cs_matrix_variant_t *mv_merge, cs_matrix_fill_type_t fill_type)
Definition: cs_matrix.c:5713
cs_matrix_fill_type_t cs_matrix_get_fill_type(bool symmetric, const int *diag_block_size, const int *extra_diag_block_size)
Definition: cs_matrix.c:4758
const char * cs_matrix_type_name[]
Definition: cs_matrix.h:70
Definition: cs_matrix.h:60
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
void cs_matrix_set_coefficients(cs_matrix_t *matrix, bool symmetric, const int *diag_block_size, const int *extra_diag_block_size, const cs_real_t *da, const cs_real_t *xa)
Definition: cs_matrix.c:4814
Definition: cs_matrix.h:68
Definition: cs_matrix.h:58
int cs_lnum_2_t[2]
vector of 2 local mesh-entity ids
Definition: cs_defs.h:301
cs_matrix_variant_t * cs_matrix_variant_create(cs_matrix_type_t type, const cs_numbering_t *numbering)
Definition: cs_matrix.c:5322
int cs_lnum_t
local mesh entity id
Definition: cs_defs.h:292
cs_lnum_t cs_matrix_get_n_columns(const cs_matrix_t *matrix)
Definition: cs_matrix.c:4649
cs_matrix_structure_t * cs_matrix_structure_create(cs_matrix_type_t type, bool have_diag, cs_lnum_t n_cells, cs_lnum_t n_cells_ext, cs_lnum_t n_faces, const cs_gnum_t *cell_num, const cs_lnum_2_t *face_cell, const cs_halo_t *halo, const cs_numbering_t *numbering)
Definition: cs_matrix.c:4301
void cs_matrix_destroy(cs_matrix_t **matrix)
Definition: cs_matrix.c:4594
#define END_C_DECLS
Definition: cs_defs.h:420
void cs_matrix_variant_destroy(cs_matrix_variant_t **mv)
Definition: cs_matrix.c:5625
double cs_real_t
Definition: cs_defs.h:296
Definition: cs_matrix.h:74
void cs_matrix_exdiag_vector_multiply(cs_halo_rotation_t rotation_mode, const cs_matrix_t *matrix, cs_real_t *restrict x, cs_real_t *restrict y)
Definition: cs_matrix.c:5287
const cs_real_t * cs_matrix_get_extra_diagonal(const cs_matrix_t *matrix)
Definition: cs_matrix.c:5135
Definition: cs_matrix.h:59
cs_matrix_t * cs_matrix_create_by_variant(const cs_matrix_structure_t *ms, const cs_matrix_variant_t *mv)
Definition: cs_matrix.c:4565
Definition: cs_matrix.h:57
cs_lnum_t cs_matrix_get_n_rows(const cs_matrix_t *matrix)
Definition: cs_matrix.c:4665
void cs_matrix_variant_set_func(cs_matrix_variant_t *mv, const cs_numbering_t *numbering, cs_matrix_fill_type_t fill_type, int ed_flag, const char *func_name)
Definition: cs_matrix.c:5667
const cs_real_t * cs_matrix_get_diagonal(const cs_matrix_t *matrix)
Definition: cs_matrix.c:5039
Definition: cs_matrix.h:56
Definition: cs_matrix.h:69
cs_matrix_type_t cs_matrix_variant_type(const cs_matrix_variant_t *mv)
Definition: cs_matrix.c:5736
void cs_matrix_vector_multiply_nosync(const cs_matrix_t *matrix, const cs_real_t *x, cs_real_t *restrict y)
Definition: cs_matrix.c:5259
Definition: cs_numbering.h:78
struct _cs_matrix_structure_t cs_matrix_structure_t
Definition: cs_matrix.h:82
cs_matrix_fill_type_t
Definition: cs_matrix.h:66