443 switch (solver_class) {
450#if defined(HAVE_HYPRE)
484 if (block_id < 0 || block_id >= sh->
n_blocks)
void() cs_cdo_assembly_func_t(const cs_sdm_t *m, const cs_lnum_t *dof_ids, const cs_range_set_t *rset, cs_cdo_assembly_t *eqa, cs_matrix_assembler_values_t *mav)
Assemble a cellwise matrix into the global matrix Block or no block versions are handled.
Definition: cs_cdo_assembly.h:74
cs_range_set_t * cs_cdo_system_get_range_set(const cs_cdo_system_helper_t *sh, int block_id)
Retrieve the range set structure associated to the given block_id.
Definition: cs_cdo_system.cpp:1562
cs_cdo_system_block_t * cs_cdo_system_add_nblock(cs_cdo_system_helper_t *sh, int block_id, cs_cdo_system_matrix_class_t matclass, cs_flag_t location, cs_lnum_t n_elements, int stride)
Add a nested block definition at position "block_id" in the helper structure. Only metadata are set a...
Definition: cs_cdo_system.cpp:1268
cs_cdo_system_block_t * cs_cdo_system_add_dblock(cs_cdo_system_helper_t *sh, int block_id, cs_cdo_system_matrix_class_t matclass, cs_flag_t location, cs_lnum_t n_elements, int stride, bool interlaced, bool unrolled)
Add a default block definition at position "block_id" in the helper structure Only metadata are set a...
Definition: cs_cdo_system.cpp:1166
void cs_cdo_system_helper_free(cs_cdo_system_helper_t **p_helper)
Free a cs_cdo_system_helper_t structure.
Definition: cs_cdo_system.cpp:1123
void cs_cdo_system_helper_finalize_assembly(cs_cdo_system_helper_t *sh)
Finalize the assembly after the cellwise building and assembly.
Definition: cs_cdo_system.cpp:1981
void cs_cdo_system_init_sharing(cs_mesh_t *mesh, cs_cdo_connect_t *connect)
Allocate and initialize matrix-related structures according to the type of discretization used for th...
Definition: cs_cdo_system.cpp:1049
cs_cdo_system_block_t * cs_cdo_system_add_ublock(cs_cdo_system_helper_t *sh, int block_id, const cs_adjacency_t *adjacency, cs_flag_t location, cs_lnum_t n_elements, int stride, bool interlaced)
Add an unassembled block definition at position "block_id" in the helper structure Only metadata are ...
Definition: cs_cdo_system.cpp:1402
cs_cdo_system_block_type_t
type of block composing a (block) matrix
Definition: cs_cdo_system.h:87
@ CS_CDO_SYSTEM_BLOCK_NESTED
Definition: cs_cdo_system.h:90
@ CS_CDO_SYSTEM_N_BLOCK_TYPES
Definition: cs_cdo_system.h:94
@ CS_CDO_SYSTEM_BLOCK_DEFAULT
Definition: cs_cdo_system.h:89
@ CS_CDO_SYSTEM_BLOCK_EXTERN
Definition: cs_cdo_system.h:92
@ CS_CDO_SYSTEM_BLOCK_UNASS
Definition: cs_cdo_system.h:91
void cs_cdo_system_helper_reset(cs_cdo_system_helper_t *sh)
Free matrix and rhs after the solve step.
Definition: cs_cdo_system.cpp:2042
static cs_cdo_system_matrix_class_t cs_cdo_system_which_matrix_class(cs_param_solver_class_t solver_class)
Get the best available class of matrix knowing the solver class.
Definition: cs_cdo_system.h:441
void cs_cdo_system_allocate_assembly(void)
Initialize shared assembly structures from the existing helper structures.
Definition: cs_cdo_system.cpp:2107
cs_cdo_system_block_t * cs_cdo_system_add_xblock(cs_cdo_system_helper_t *sh, int block_id, cs_lnum_t n_dofs)
Add an external block definition at position "block_id" in the helper structure. Only metadata are se...
Definition: cs_cdo_system.cpp:1491
cs_cdo_system_helper_t * cs_cdo_system_helper_create(cs_cdo_system_type_t type, int n_col_blocks, const cs_lnum_t *col_block_sizes, int n_blocks)
Create a system_helper structure from its set of metadata. n_col_blocks and n_blocks may differ accor...
Definition: cs_cdo_system.cpp:1073
cs_cdo_system_matrix_class_t
Class of matrices to consider.
Definition: cs_cdo_system.h:115
@ CS_CDO_SYSTEM_MATRIX_HYPRE
Definition: cs_cdo_system.h:120
@ CS_CDO_SYSTEM_N_MATRIX_CLASSES
Definition: cs_cdo_system.h:122
@ CS_CDO_SYSTEM_MATRIX_NONE
Definition: cs_cdo_system.h:117
@ CS_CDO_SYSTEM_MATRIX_CS
Definition: cs_cdo_system.h:118
@ CS_CDO_SYSTEM_MATRIX_PETSC
Definition: cs_cdo_system.h:119
void cs_cdo_system_destroy_all(void)
Free all members associated to system helpers.
Definition: cs_cdo_system.cpp:2169
cs_cdo_system_type_t
Definition: cs_cdo_system.h:58
@ CS_CDO_SYSTEM_COUPLED
Definition: cs_cdo_system.h:61
@ CS_CDO_SYSTEM_SADDLE_POINT
Definition: cs_cdo_system.h:62
@ CS_CDO_SYSTEM_DEFAULT
Definition: cs_cdo_system.h:60
cs_matrix_t * cs_cdo_system_get_matrix(const cs_cdo_system_helper_t *sh, int block_id)
Retrieve the matrix associated to the given block_id. If the type of block is either CS_CDO_SYSTEM_BL...
Definition: cs_cdo_system.cpp:1628
void cs_cdo_system_helper_init_system(cs_cdo_system_helper_t *sh, cs_real_t **p_rhs)
Allocate and initialize the matrix, rhs and the matrix assembler values.
Definition: cs_cdo_system.cpp:1809
void cs_cdo_system_build_block(cs_cdo_system_helper_t *sh, int block_id)
Build the associated structures for the given system_helper structure If a member is already allocate...
Definition: cs_cdo_system.cpp:1721
cs_matrix_t * cs_cdo_system_get_sub_matrix(cs_cdo_system_helper_t *sh, int block_id, int sub_id)
Retrieve the (sub-)matrix associated to a split block with id equal to block_id. sub_id is the id in ...
Definition: cs_cdo_system.cpp:1680
static cs_cdo_system_matrix_class_t cs_cdo_system_get_matrix_class(const cs_cdo_system_helper_t *sh, int block_id)
Get the matrix class related to the given block_id CS_CDO_SYSTEM_MATRIX_NONE is returned if not store...
Definition: cs_cdo_system.h:479
double cs_real_t
Floating-point value.
Definition: cs_defs.h:332
int cs_lnum_t
local mesh entity id
Definition: cs_defs.h:325
unsigned short int cs_flag_t
Definition: cs_defs.h:334
struct _cs_interface_set_t cs_interface_set_t
Definition: cs_interface.h:57
struct _cs_matrix_structure_t cs_matrix_structure_t
Definition: cs_matrix.h:104
struct _cs_matrix_t cs_matrix_t
Definition: cs_matrix.h:108
struct _cs_matrix_assembler_t cs_matrix_assembler_t
Definition: cs_matrix_assembler.h:61
struct _cs_matrix_assembler_values_t cs_matrix_assembler_values_t
Definition: cs_matrix_assembler.h:65
cs_param_solver_class_t
Class of iterative solvers to consider for solver the linear system.
Definition: cs_param_types.h:752
@ CS_PARAM_SOLVER_CLASS_CS
Definition: cs_param_types.h:754
@ CS_PARAM_SOLVER_CLASS_HYPRE
Definition: cs_param_types.h:755
Definition: cs_mesh_adjacencies.h:68
Definition: cs_cdo_connect.h:57
Definition: cs_cdo_system.h:127
int stride
Definition: cs_cdo_system.h:139
cs_cdo_system_matrix_class_t matrix_class
Definition: cs_cdo_system.h:133
cs_flag_t location
Definition: cs_cdo_system.h:137
bool interlaced
Definition: cs_cdo_system.h:156
cs_lnum_t n_elements
Definition: cs_cdo_system.h:138
bool unrolled
Definition: cs_cdo_system.h:155
Definition: cs_cdo_system.h:331
void * block_pointer
Definition: cs_cdo_system.h:361
cs_cdo_system_block_info_t info
Definition: cs_cdo_system.h:337
cs_cdo_system_block_type_t type
Definition: cs_cdo_system.h:349
int id
Definition: cs_cdo_system.h:353
bool owner
Definition: cs_cdo_system.h:351
Structure associated to the default type of block.
Definition: cs_cdo_system.h:170
cs_matrix_t * matrix
Definition: cs_cdo_system.h:191
cs_cdo_assembly_func_t * slave_assembly_func
Definition: cs_cdo_system.h:194
cs_interface_set_t * interface_set
Definition: cs_cdo_system.h:200
cs_matrix_assembler_values_t * mav
Definition: cs_cdo_system.h:192
cs_range_set_t * range_set
Definition: cs_cdo_system.h:199
cs_matrix_assembler_t * matrix_assembler
Definition: cs_cdo_system.h:201
cs_cdo_assembly_func_t * assembly_func
Definition: cs_cdo_system.h:193
cs_matrix_structure_t * matrix_structure
Definition: cs_cdo_system.h:202
Definition: cs_cdo_system.h:373
cs_real_t ** rhs_array
Definition: cs_cdo_system.h:419
cs_lnum_t * col_block_sizes
Definition: cs_cdo_system.h:413
cs_cdo_system_type_t type
Definition: cs_cdo_system.h:410
cs_cdo_system_block_t ** blocks
Definition: cs_cdo_system.h:422
cs_lnum_t full_rhs_size
Definition: cs_cdo_system.h:416
cs_lnum_t * max_col_block_sizes
Definition: cs_cdo_system.h:414
cs_real_t * _rhs
Definition: cs_cdo_system.h:418
int n_col_blocks
Definition: cs_cdo_system.h:412
cs_real_t * rhs
Definition: cs_cdo_system.h:417
int n_blocks
Definition: cs_cdo_system.h:421
Structure associated to the nested type of block.
Definition: cs_cdo_system.h:214
bool matrix_struct_ownership
Definition: cs_cdo_system.h:248
cs_cdo_assembly_func_t * slave_assembly_func
Definition: cs_cdo_system.h:240
cs_interface_set_t * interface_set
Definition: cs_cdo_system.h:246
int n_matrices
Definition: cs_cdo_system.h:236
cs_matrix_assembler_values_t ** mav_array
Definition: cs_cdo_system.h:238
cs_matrix_t ** matrices
Definition: cs_cdo_system.h:237
cs_range_set_t * range_set
Definition: cs_cdo_system.h:245
cs_matrix_assembler_t * matrix_assembler
Definition: cs_cdo_system.h:249
cs_cdo_assembly_func_t * assembly_func
Definition: cs_cdo_system.h:239
cs_matrix_structure_t * matrix_structure
Definition: cs_cdo_system.h:250
Structure associated to the unassembled type of block.
Definition: cs_cdo_system.h:262
bool shared_structures
Definition: cs_cdo_system.h:289
const cs_adjacency_t * adjacency
Definition: cs_cdo_system.h:283
cs_real_t * values
Definition: cs_cdo_system.h:280
cs_real_t * _values
Definition: cs_cdo_system.h:281
cs_interface_set_t * interface_set
Definition: cs_cdo_system.h:291
cs_range_set_t * range_set
Definition: cs_cdo_system.h:290
Structure associated to the extended type of block.
Definition: cs_cdo_system.h:303
cs_matrix_t * matrix
Definition: cs_cdo_system.h:313
cs_interface_set_t * interface_set
Definition: cs_cdo_system.h:319
cs_matrix_assembler_values_t * mav
Definition: cs_cdo_system.h:314
cs_range_set_t * range_set
Definition: cs_cdo_system.h:318
cs_matrix_assembler_t * matrix_assembler
Definition: cs_cdo_system.h:320
cs_matrix_structure_t * matrix_structure
Definition: cs_cdo_system.h:321
Definition: cs_range_set.h:53