1 #ifndef __CS_SADDLE_ITSOL_H__
2 #define __CS_SADDLE_ITSOL_H__
#define BEGIN_C_DECLS
Definition: cs_defs.h:514
double cs_real_t
Floating-point value.
Definition: cs_defs.h:319
#define END_C_DECLS
Definition: cs_defs.h:515
int cs_lnum_t
local mesh entity id
Definition: cs_defs.h:313
@ x2
Definition: cs_field_pointer.h:223
struct _cs_matrix_t cs_matrix_t
Definition: cs_matrix.h:110
Structure and routines handling the SLES settings stored inside a cs_param_sles_t structure.
cs_param_precond_block_t
Definition: cs_param_types.h:819
cs_param_schur_approx_t
Strategy to build the Schur complement approximation. This appears in block preconditioning or Uzawa ...
Definition: cs_param_types.h:753
void cs_saddle_block_precond_free(cs_saddle_block_precond_t **p_sbp)
Free a cs_saddle_block_precond_t structure.
Definition: cs_saddle_itsol.c:1372
void cs_saddle_gcr(int restart, cs_saddle_system_t *ssys, cs_saddle_block_precond_t *sbp, cs_real_t *x1, cs_real_t *x2, cs_iter_algo_t *algo)
Apply the GCR algorithm to a saddle point problem (the system is stored in a hybrid way)....
Definition: cs_saddle_itsol.c:1633
void cs_matrix_vector_multiply_gs(const cs_range_set_t *rset, const cs_matrix_t *mat, cs_lnum_t vec_len, cs_real_t *vec, cs_real_t **p_matvec)
Perform a matrix-vector multiplication in case of scatter-view array as input parameter....
Definition: cs_saddle_itsol.c:1891
cs_saddle_block_precond_t * cs_saddle_block_precond_create(cs_param_precond_block_t block_type, cs_param_schur_approx_t schur_type, cs_param_sles_t *m11_slesp, cs_sles_t *m11_sles)
Create and initialize a cs_saddle_block_precond_t structure.
Definition: cs_saddle_itsol.c:1325
void cs_saddle_minres(cs_saddle_system_t *ssys, cs_saddle_block_precond_t *sbp, cs_real_t *x1, cs_real_t *x2, cs_iter_algo_t *algo)
Apply the MINRES algorithm to a saddle point problem (the system is stored in a hybrid way)....
Definition: cs_saddle_itsol.c:1408
void cs_matrix_vector_multiply_gs_allocated(const cs_range_set_t *rset, const cs_matrix_t *mat, cs_real_t *vec, cs_real_t *matvec)
Perform a matrix-vector multiplication in case of scatter-view array as input parameter....
Definition: cs_saddle_itsol.c:1836
struct _cs_sles_t cs_sles_t
Definition: cs_sles.h:68
Definition: cs_mesh_adjacencies.h:68
Structure to handle the convergence of an iterative algorithm.
Definition: cs_iter_algo.h:289
Structure storing all metadata related to the resolution of a linear system with an iterative solver.
Definition: cs_param_sles.h:213
Definition: cs_range_set.h:57
Definition: cs_saddle_itsol.h:100
cs_real_t * schur_diag
Definition: cs_saddle_itsol.h:121
cs_real_t * m11_inv_diag
Definition: cs_saddle_itsol.h:126
cs_param_schur_approx_t schur_type
Definition: cs_saddle_itsol.h:105
cs_sles_t * m11_sles
Definition: cs_saddle_itsol.h:110
cs_param_sles_t * m11_slesp
Definition: cs_saddle_itsol.h:109
cs_param_precond_block_t block_type
Definition: cs_saddle_itsol.h:104
cs_matrix_t * schur_matrix
Definition: cs_saddle_itsol.h:114
cs_param_sles_t * schur_slesp
Definition: cs_saddle_itsol.h:115
double schur_scaling
Definition: cs_saddle_itsol.h:117
cs_sles_t * schur_sles
Definition: cs_saddle_itsol.h:116
cs_real_t * mass22_diag
Definition: cs_saddle_itsol.h:127
cs_real_t * schur_xtra
Definition: cs_saddle_itsol.h:122
Definition: cs_saddle_itsol.h:60
cs_lnum_t max_x1_size
Definition: cs_saddle_itsol.h:75
cs_real_t * m21_unassembled
Definition: cs_saddle_itsol.h:83
cs_real_t * rhs1
Definition: cs_saddle_itsol.h:77
cs_real_t * rhs2
Definition: cs_saddle_itsol.h:81
const cs_range_set_t * rset
Definition: cs_saddle_itsol.h:94
int m21_stride
Definition: cs_saddle_itsol.h:84
cs_matrix_t ** m11_matrices
Definition: cs_saddle_itsol.h:73
cs_lnum_t x1_size
Definition: cs_saddle_itsol.h:74
const cs_adjacency_t * m21_adjacency
Definition: cs_saddle_itsol.h:88
cs_lnum_t x2_size
Definition: cs_saddle_itsol.h:79
int n_m11_matrices
Definition: cs_saddle_itsol.h:72
cs_lnum_t max_x2_size
Definition: cs_saddle_itsol.h:80