1#ifndef __CS_PARAM_SLES_H__
2#define __CS_PARAM_SLES_H__
143 const char *system_name);
294 bool used_as_k_cycle);
350 double coarse_rtol_mult);
524 bool use_boomer_coarsening,
525 bool reuse_interpolation,
526 bool subspace_coarsening);
583 double blr_threshold,
586 bool advanced_optim);
#define BEGIN_C_DECLS
Definition: cs_defs.h:542
uint64_t cs_gnum_t
global mesh entity number
Definition: cs_defs.h:325
#define END_C_DECLS
Definition: cs_defs.h:543
Routines to handle the set of parameters for algebraic multigrids (AMG) like boomerAMG of the HYPRE l...
cs_param_amg_boomer_interp_algo_t
Type of algorithm used in boomerAMG to coarsen a level. Only a selection of algorithms is available h...
Definition: cs_param_amg.h:103
cs_param_amg_boomer_coarsen_algo_t
Type of algorithm used in boomerAMG to coarsen a level. Only a selection of algorithms is available h...
Definition: cs_param_amg.h:86
cs_param_amg_inhouse_solver_t
Type of algorithm used in the in-house algorithm for smoothing each level or solving the coarse level...
Definition: cs_param_amg.h:274
cs_param_amg_gamg_coarse_solver_t
Definition: cs_param_amg.h:191
cs_param_amg_type_t
Definition: cs_param_amg.h:64
cs_param_amg_gamg_smoother_t
Definition: cs_param_amg.h:175
cs_param_amg_boomer_smoother_t
Type of algorithm used in boomerAMG to smooth a level. Only a selection of algorithms is available he...
Definition: cs_param_amg.h:122
cs_param_amg_inhouse_coarsen_t
Type of algorithm used in the in-house algorithm to coarsen each level. This enum avoids using the as...
Definition: cs_param_amg.h:298
Routines and structure to handle the MUMPS setup. The structure is used as a context structure of a c...
cs_param_mumps_facto_type_t
type of factorization to consider when using the MUMPS solver to solve a linear system
Definition: cs_param_mumps.h:71
cs_param_mumps_memory_usage_t
Strategy for the memory usage inside MUMPS.
Definition: cs_param_mumps.h:149
cs_param_mumps_analysis_algo_t
Type of algorithm to consider when using the MUMPS solver to perform the analysis step (renumbering a...
Definition: cs_param_mumps.h:119
void cs_param_sles_amg_inhouse(cs_param_sles_t *slesp, int n_down_iter, cs_param_amg_inhouse_solver_t down_smoother, int down_poly_deg, int n_up_iter, cs_param_amg_inhouse_solver_t up_smoother, int up_poly_deg, cs_param_amg_inhouse_solver_t coarse_solver, int coarse_poly_deg, cs_param_amg_inhouse_coarsen_t coarsen_algo, int aggreg_limit)
Set the main members of a cs_param_amg_inhouse_t structure. This structure is not reset before applyi...
Definition: cs_param_sles.cpp:1427
void cs_param_sles_mumps(cs_param_sles_t *slesp, bool is_single, cs_param_mumps_facto_type_t facto_type)
Set the main members of a cs_param_mumps_t structure. This structure is allocated and initialized wit...
Definition: cs_param_sles.cpp:1859
bool cs_param_sles_hypre_from_petsc(void)
Check the availability of Hypre solvers from the PETSc library.
Definition: cs_param_sles.cpp:1935
void cs_param_sles_gamg(cs_param_sles_t *slesp, int n_down_iter, cs_param_amg_gamg_smoother_t down_smoother, int n_up_iter, cs_param_amg_gamg_smoother_t up_smoother, cs_param_amg_gamg_coarse_solver_t coarse_solver)
Set the main members of a cs_param_amg_gamg_t structure. This structure is allocated,...
Definition: cs_param_sles.cpp:1662
void cs_param_sles_copy_from(const cs_param_sles_t *src, cs_param_sles_t *dst)
Copy a cs_param_sles_t structure from src to dst.
Definition: cs_param_sles.cpp:481
void cs_param_sles_boomeramg_advanced(cs_param_sles_t *slesp, double strong_thr, cs_param_amg_boomer_interp_algo_t interp_algo, int p_max, int n_agg_lv, int n_agg_paths)
Set the members of a cs_param_amg_boomer_t structure used in advanced settings. This structure is all...
Definition: cs_param_sles.cpp:1599
void cs_param_sles_amg_inhouse_advanced(cs_param_sles_t *slesp, int max_levels, cs_gnum_t min_n_g_rows, double p0p1_relax, int coarse_max_iter, double coarse_rtol_mult)
Set the members of a cs_param_amg_inhouse_t structure used in advanced settings. CS_CDO_KEEP_DEFAULT ...
Definition: cs_param_sles.cpp:1487
void cs_param_sles_amg_inhouse_reset(cs_param_sles_t *slesp, bool used_as_solver, bool used_as_k_cycle)
Allocate and initialize a new context structure for the in-house AMG settings.
Definition: cs_param_sles.cpp:1392
int cs_param_sles_set_solver_class(const char *keyval, cs_param_sles_t *slesp)
Set the class of solvers associated to this SLES from its keyval Common choices are "petsc",...
Definition: cs_param_sles.cpp:1014
int cs_param_sles_set_solver(const char *keyval, cs_param_sles_t *slesp)
Set the solver associated to this SLES from its keyval.
Definition: cs_param_sles.cpp:537
int cs_param_sles_set_precond(const char *keyval, cs_param_sles_t *slesp)
Set the preconditioner associated to this SLES from its keyval.
Definition: cs_param_sles.cpp:711
void cs_param_sles_gamg_reset(cs_param_sles_t *slesp)
Allocate and initialize a new context structure for the GAMG settings in PETSc.
Definition: cs_param_sles.cpp:1634
void cs_param_sles_mumps_reset(cs_param_sles_t *slesp)
Allocate and initialize a new context structure for the MUMPS settings.
Definition: cs_param_sles.cpp:1831
void cs_param_sles_gamg_advanced(cs_param_sles_t *slesp, double threshold, int n_agg_lv, bool use_sq_grph, int n_smooth_agg)
Set the members of a cs_param_amg_gamg_t structure used in advanced settings. This structure is alloc...
Definition: cs_param_sles.cpp:1702
void cs_param_sles_free(cs_param_sles_t **p_slesp)
Free a cs_param_sles_t structure.
Definition: cs_param_sles.cpp:290
cs_param_solver_class_t cs_param_sles_check_class(cs_param_solver_class_t wanted_class)
Check the availability of a solver library and return the requested one if this is possible or an alt...
Definition: cs_param_sles.cpp:1961
void cs_param_sles_set_cvg_param(cs_param_sles_t *slesp, double rtol, double atol, double dtol, int max_iter)
Set the convergence criteria for the given SLES parameters. One can use the parameter value CS_CDO_KE...
Definition: cs_param_sles.cpp:1350
void cs_param_sles_boomeramg_reset(cs_param_sles_t *slesp)
Allocate and initialize a new context structure for the boomerAMG settings.
Definition: cs_param_sles.cpp:1527
void cs_param_sles_hmg(cs_param_sles_t *slesp, int n_down_iter, cs_param_amg_gamg_smoother_t down_smoother, int n_up_iter, cs_param_amg_gamg_smoother_t up_smoother, cs_param_amg_gamg_coarse_solver_t coarse_solver)
Set the main members of a cs_param_amg_hmg_t structure. This structure is allocated,...
Definition: cs_param_sles.cpp:1763
int cs_param_sles_set_precond_block_type(const char *keyval, cs_param_sles_t *slesp)
Set the type of block preconditioner associated to this SLES from its keyval.
Definition: cs_param_sles.cpp:1285
cs_param_sles_t * cs_param_sles_create(int field_id, const char *system_name)
Create a cs_param_sles_t structure and assign a default settings.
Definition: cs_param_sles.cpp:239
void cs_param_sles_hmg_advanced(cs_param_sles_t *slesp, bool use_boomer_coarsening, bool reuse_interpolation, bool subspace_coarsening)
Set the members of a cs_param_amg_gamg_t structure used in advanced settings. This structure is alloc...
Definition: cs_param_sles.cpp:1800
int cs_param_sles_set_amg_type(const char *keyval, cs_param_sles_t *slesp)
Set the type of algebraic multigrid (AMG) associated to this SLES from its keyval.
Definition: cs_param_sles.cpp:1114
void cs_param_sles_boomeramg(cs_param_sles_t *slesp, int n_down_iter, cs_param_amg_boomer_smoother_t down_smoother, int n_up_iter, cs_param_amg_boomer_smoother_t up_smoother, cs_param_amg_boomer_smoother_t coarse_solver, cs_param_amg_boomer_coarsen_algo_t coarsen_algo)
Set the main members of a cs_param_amg_boomer_t structure. This structure is allocated and initialize...
Definition: cs_param_sles.cpp:1556
void cs_param_sles_log(cs_param_sles_t *slesp)
Log information related to the linear settings stored in the structure.
Definition: cs_param_sles.cpp:321
void cs_param_sles_hmg_reset(cs_param_sles_t *slesp)
Allocate and initialize a new context structure for the HMG settings in PETSc.
Definition: cs_param_sles.cpp:1735
void cs_param_sles_mumps_advanced(cs_param_sles_t *slesp, cs_param_mumps_analysis_algo_t analysis_algo, int block_analysis, bool keep_ordering, double mem_coef, double blr_threshold, int ir_steps, cs_param_mumps_memory_usage_t mem_usage, bool advanced_optim)
Set the members related to an advanced settings of a cs_param_mumps_t structure. This structure is al...
Definition: cs_param_sles.cpp:1895
cs_param_resnorm_type_t
Definition: cs_param_types.h:865
cs_param_solver_class_t
Class of iterative solvers to consider for solver the linear system.
Definition: cs_param_types.h:643
cs_param_precond_type_t
Definition: cs_param_types.h:755
cs_param_precond_block_t
Definition: cs_param_types.h:678
cs_param_solver_type_t
Definition: cs_param_types.h:836
Set of parameters to check the convergence (or the divergence) of an iterative process (tolerances or...
Definition: cs_param_types.h:558
Structure storing all metadata related to the resolution of a linear system with an iterative solver.
Definition: cs_param_sles.h:64
cs_param_convergence_t cvg_param
Definition: cs_param_sles.h:110
cs_param_precond_block_t precond_block_type
Definition: cs_param_sles.h:82
bool allow_no_op
Definition: cs_param_sles.h:95
int field_id
Definition: cs_param_sles.h:67
bool mat_is_sym
Definition: cs_param_sles.h:103
int verbosity
Definition: cs_param_sles.h:69
void * context_param
Definition: cs_param_sles.h:117
char * name
Definition: cs_param_sles.h:66
cs_param_resnorm_type_t resnorm_type
Definition: cs_param_sles.h:88
bool need_flexible
Definition: cs_param_sles.h:74
cs_param_precond_type_t precond
Definition: cs_param_sles.h:72
cs_param_solver_class_t solver_class
Definition: cs_param_sles.h:71
int restart
Definition: cs_param_sles.h:75
cs_param_amg_type_t amg_type
Definition: cs_param_sles.h:76
cs_param_solver_type_t solver
Definition: cs_param_sles.h:73