1#ifndef __CS_PARAM_AMG_H__
2#define __CS_PARAM_AMG_H__
661 bool used_as_k_cycle);
#define BEGIN_C_DECLS
Definition cs_defs.h:542
unsigned cs_gnum_t
global mesh entity number
Definition cs_defs.h:327
#define END_C_DECLS
Definition cs_defs.h:543
cs_param_solver_class_t cs_param_amg_get_class(cs_param_amg_type_t amg_type)
Retrieve the related solver class from the amg type.
Definition cs_param_amg.cpp:130
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_INTERP_FF1
Definition cs_param_amg.h:108
@ CS_PARAM_AMG_BOOMER_INTERP_HYPERBOLIC
Definition cs_param_amg.h:105
@ CS_PARAM_AMG_BOOMER_INTERP_EXTENDED
Definition cs_param_amg.h:109
@ CS_PARAM_AMG_BOOMER_INTERP_EXT_PLUS_I_MATRIX
Definition cs_param_amg.h:110
@ CS_PARAM_AMG_BOOMER_N_INTERP_ALGOS
Definition cs_param_amg.h:113
@ CS_PARAM_AMG_BOOMER_INTERP_EXT_PLUS_E_MATRIX
Definition cs_param_amg.h:111
@ CS_PARAM_AMG_BOOMER_INTERP_EXT_PLUS_I
Definition cs_param_amg.h:107
@ CS_PARAM_AMG_BOOMER_INTERP_EXT_PLUS_I_CC
Definition cs_param_amg.h:106
cs_param_amg_hmg_t * cs_param_amg_hmg_create(void)
Create a new structure storing a set of parameters used when calling HMG. Set all parameters at their...
Definition cs_param_amg.cpp:614
void cs_param_amg_inhouse_log(const char *name, const cs_param_amg_inhouse_t *amgp)
Log the set of parameters used for setting in-house AMG algorithms.
Definition cs_param_amg.cpp:901
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_BOOMER_COARSEN_CGC_E
Definition cs_param_amg.h:92
@ CS_PARAM_AMG_BOOMER_COARSEN_CGC
Definition cs_param_amg.h:91
@ CS_PARAM_AMG_BOOMER_COARSEN_HMIS
Definition cs_param_amg.h:90
@ CS_PARAM_AMG_BOOMER_COARSEN_PMIS
Definition cs_param_amg.h:89
@ CS_PARAM_AMG_BOOMER_N_COARSEN_ALGOS
Definition cs_param_amg.h:94
@ CS_PARAM_AMG_BOOMER_COARSEN_FALGOUT
Definition cs_param_amg.h:88
const char * cs_param_amg_get_type_name(cs_param_amg_type_t type)
Get the name of the type of algebraic multigrid (AMG)
Definition cs_param_amg.cpp:88
void cs_param_amg_gamg_log(const char *name, const cs_param_amg_gamg_t *gamgp)
Log the set of parameters used for setting GAMG.
Definition cs_param_amg.cpp:567
cs_param_amg_gamg_t * cs_param_amg_gamg_copy(const cs_param_amg_gamg_t *gamgp)
Copy the given set of parameters used when calling GAMG into a new structure.
Definition cs_param_amg.cpp:466
const char * cs_param_amg_get_gamg_smoother_name(cs_param_amg_gamg_smoother_t smoother)
Get the name of the smoother used with GAMG (PETSc library)
Definition cs_param_amg.cpp:499
cs_param_amg_boomer_t * cs_param_amg_boomer_create(void)
Create a new structure storing a set of parameters used when calling boomerAMG. Set default values fo...
Definition cs_param_amg.cpp:159
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_INHOUSE_GCR
Definition cs_param_amg.h:285
@ CS_PARAM_AMG_INHOUSE_PROCESS_GS
Definition cs_param_amg.h:280
@ CS_PARAM_AMG_INHOUSE_CR3
Definition cs_param_amg.h:284
@ CS_PARAM_AMG_INHOUSE_GMRES
Definition cs_param_amg.h:286
@ CS_PARAM_AMG_INHOUSE_JACOBI
Definition cs_param_amg.h:279
@ CS_PARAM_AMG_INHOUSE_FORWARD_GS
Definition cs_param_amg.h:276
@ CS_PARAM_AMG_INHOUSE_N_SOLVERS
Definition cs_param_amg.h:288
@ CS_PARAM_AMG_INHOUSE_BACKWARD_GS
Definition cs_param_amg.h:277
@ CS_PARAM_AMG_INHOUSE_CG
Definition cs_param_amg.h:283
@ CS_PARAM_AMG_INHOUSE_PROCESS_SGS
Definition cs_param_amg.h:281
static bool cs_param_amg_inhouse_is_needed(cs_param_solver_type_t solver, cs_param_precond_type_t precond, cs_param_amg_type_t amg)
Return true if the settings rely on the in-house implementation, otherwise false.
Definition cs_param_amg.h:447
cs_param_amg_inhouse_t * cs_param_amg_inhouse_create(bool used_as_solver, bool used_as_k_cycle)
Create a new structure storing a set of parameters used when calling the in-house AMG algo....
Definition cs_param_amg.cpp:727
cs_param_amg_gamg_coarse_solver_t
Definition cs_param_amg.h:191
@ CS_PARAM_AMG_GAMG_TFS
Definition cs_param_amg.h:197
@ CS_PARAM_AMG_GAMG_N_COARSE_SOLVERS
Definition cs_param_amg.h:199
@ CS_PARAM_AMG_GAMG_CG
Definition cs_param_amg.h:194
@ CS_PARAM_AMG_GAMG_BJACOBI_LU
Definition cs_param_amg.h:193
@ CS_PARAM_AMG_GAMG_GMRES
Definition cs_param_amg.h:195
@ CS_PARAM_AMG_GAMG_LU
Definition cs_param_amg.h:196
cs_param_amg_gamg_t * cs_param_amg_gamg_create(void)
Create a new structure storing a set of parameters used when calling GAMG. Set default values for all...
Definition cs_param_amg.cpp:421
cs_param_amg_hmg_t * cs_param_amg_hmg_copy(const cs_param_amg_hmg_t *hmgp)
Copy the given set of parameters used when calling HMG into a new structure.
Definition cs_param_amg.cpp:652
static bool cs_param_amg_hmg_is_needed(cs_param_solver_type_t solver, cs_param_precond_type_t precond, cs_param_amg_type_t amg)
Return true if the settings rely on hmg, otherwise false.
Definition cs_param_amg.h:421
cs_param_amg_inhouse_t * cs_param_amg_inhouse_copy(const cs_param_amg_inhouse_t *amgp)
Copy the given set of parameters used when calling in-house AMG algo. into a new structure.
Definition cs_param_amg.cpp:824
static bool cs_param_amg_boomer_is_needed(cs_param_solver_type_t solver, cs_param_precond_type_t precond, cs_param_amg_type_t amg)
Return true if the settings rely on boomeramg, otherwise false.
Definition cs_param_amg.h:371
const char * cs_param_amg_get_inhouse_solver_name(cs_param_amg_inhouse_solver_t solver)
Get the name of the solver used with in-house AMG algo.
Definition cs_param_amg.cpp:862
void cs_param_amg_hmg_log(const char *name, const cs_param_amg_hmg_t *hmgp)
Log the set of parameters used for setting HMG.
Definition cs_param_amg.cpp:681
const char * cs_param_amg_get_gamg_coarse_solver_name(cs_param_amg_gamg_coarse_solver_t coarse)
Get the name of the smoother used with GAMG (PETSc library)
Definition cs_param_amg.cpp:535
cs_param_amg_boomer_t * cs_param_amg_boomer_copy(const cs_param_amg_boomer_t *bamgp)
Copy the given set of parameters used when calling boomerAMG into a new structure.
Definition cs_param_amg.cpp:220
void cs_param_amg_boomer_log(const char *name, const cs_param_amg_boomer_t *bamgp)
Log the set of parameters used for setting BoomerAMG.
Definition cs_param_amg.cpp:297
const char * cs_param_amg_get_boomer_smoother_name(cs_param_amg_boomer_smoother_t smoother)
Get the name of the smoother used with BoomerAMG (HYPRE library)
Definition cs_param_amg.cpp:253
cs_param_amg_type_t
Definition cs_param_amg.h:64
@ CS_PARAM_AMG_INHOUSE_K
Definition cs_param_amg.h:70
@ CS_PARAM_AMG_PETSC_HMG_V
Definition cs_param_amg.h:74
@ CS_PARAM_AMG_HYPRE_BOOMER_W
Definition cs_param_amg.h:69
@ CS_PARAM_N_AMG_TYPES
Definition cs_param_amg.h:77
@ CS_PARAM_AMG_PETSC_GAMG_V
Definition cs_param_amg.h:72
@ CS_PARAM_AMG_PETSC_HMG_W
Definition cs_param_amg.h:75
@ CS_PARAM_AMG_PETSC_GAMG_W
Definition cs_param_amg.h:73
@ CS_PARAM_AMG_HYPRE_BOOMER_V
Definition cs_param_amg.h:68
@ CS_PARAM_AMG_INHOUSE_V
Definition cs_param_amg.h:71
@ CS_PARAM_AMG_NONE
Definition cs_param_amg.h:66
cs_param_amg_gamg_smoother_t
Definition cs_param_amg.h:175
@ CS_PARAM_AMG_GAMG_BACKWARD_GS
Definition cs_param_amg.h:177
@ CS_PARAM_AMG_GAMG_JACOBI
Definition cs_param_amg.h:182
@ CS_PARAM_AMG_GAMG_N_SMOOTHERS
Definition cs_param_amg.h:185
@ CS_PARAM_AMG_GAMG_HYBRID_SSOR
Definition cs_param_amg.h:181
@ CS_PARAM_AMG_GAMG_FORWARD_GS
Definition cs_param_amg.h:180
@ CS_PARAM_AMG_GAMG_L1_JACOBI
Definition cs_param_amg.h:183
@ CS_PARAM_AMG_GAMG_CHEBYSHEV
Definition cs_param_amg.h:179
@ CS_PARAM_AMG_GAMG_BILU0
Definition cs_param_amg.h:178
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_BOOMER_N_SMOOTHERS
Definition cs_param_amg.h:137
@ CS_PARAM_AMG_BOOMER_GAUSS_ELIM
Definition cs_param_amg.h:129
@ CS_PARAM_AMG_BOOMER_FORWARD_L1_GS
Definition cs_param_amg.h:131
@ CS_PARAM_AMG_BOOMER_FCF_JACOBI
Definition cs_param_amg.h:134
@ CS_PARAM_AMG_BOOMER_BACKWARD_GS
Definition cs_param_amg.h:126
@ CS_PARAM_AMG_BOOMER_HYBRID_SSOR
Definition cs_param_amg.h:127
@ CS_PARAM_AMG_BOOMER_L1_SGS
Definition cs_param_amg.h:128
@ CS_PARAM_AMG_BOOMER_CG
Definition cs_param_amg.h:132
@ CS_PARAM_AMG_BOOMER_FORWARD_GS
Definition cs_param_amg.h:125
@ CS_PARAM_AMG_BOOMER_BACKWARD_L1_GS
Definition cs_param_amg.h:130
@ CS_PARAM_AMG_BOOMER_JACOBI
Definition cs_param_amg.h:124
@ CS_PARAM_AMG_BOOMER_CHEBYSHEV
Definition cs_param_amg.h:133
@ CS_PARAM_AMG_BOOMER_L1_JACOBI
Definition cs_param_amg.h:135
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
@ CS_PARAM_AMG_INHOUSE_COARSEN_SPD_DX
Definition cs_param_amg.h:302
@ CS_PARAM_AMG_INHOUSE_COARSEN_SPD_MX
Definition cs_param_amg.h:304
@ CS_PARAM_AMG_INHOUSE_COARSEN_SPD_PW
Definition cs_param_amg.h:306
@ CS_PARAM_AMG_INHOUSE_N_COARSENINGS
Definition cs_param_amg.h:310
@ CS_PARAM_AMG_INHOUSE_COARSEN_CONV_DIFF_DX
Definition cs_param_amg.h:308
static bool cs_param_amg_gamg_is_needed(cs_param_solver_type_t solver, cs_param_precond_type_t precond, cs_param_amg_type_t amg)
Return true if the settings rely on gamg, otherwise false.
Definition cs_param_amg.h:396
cs_param_solver_class_t
Class of iterative solvers to consider for solver the linear system.
Definition cs_param_types.h:655
cs_param_precond_type_t
Definition cs_param_types.h:767
@ CS_PARAM_PRECOND_AMG
Definition cs_param_types.h:771
cs_param_solver_type_t
Definition cs_param_types.h:848
@ CS_PARAM_SOLVER_AMG
Definition cs_param_types.h:852
Set of the main parameters to setup the algebraic multigrid BoomerAMG belonging to the HYPRE library....
Definition cs_param_amg.h:149
cs_param_amg_boomer_interp_algo_t interp_algo
Definition cs_param_amg.h:156
cs_param_amg_boomer_smoother_t up_smoother
Definition cs_param_amg.h:162
cs_param_amg_boomer_coarsen_algo_t coarsen_algo
Definition cs_param_amg.h:155
int n_up_iter
Definition cs_param_amg.h:166
int p_max
Definition cs_param_amg.h:157
cs_param_amg_boomer_smoother_t down_smoother
Definition cs_param_amg.h:161
double strong_threshold
Definition cs_param_amg.h:154
cs_param_amg_boomer_smoother_t coarse_solver
Definition cs_param_amg.h:163
int n_down_iter
Definition cs_param_amg.h:165
int n_agg_paths
Definition cs_param_amg.h:159
int n_agg_levels
Definition cs_param_amg.h:158
Set of the main parameters to setup the algebraic multigrid GAMG belonging to the PETSc library....
Definition cs_param_amg.h:210
int n_smooth_agg
Definition cs_param_amg.h:217
bool use_square_graph
Definition cs_param_amg.h:215
cs_param_amg_gamg_coarse_solver_t coarse_solver
Definition cs_param_amg.h:225
int n_up_iter
Definition cs_param_amg.h:227
cs_param_amg_gamg_smoother_t up_smoother
Definition cs_param_amg.h:228
int n_down_iter
Definition cs_param_amg.h:222
cs_param_amg_gamg_smoother_t down_smoother
Definition cs_param_amg.h:223
int n_agg_levels
Definition cs_param_amg.h:216
double threshold
Definition cs_param_amg.h:214
Set of the main parameters used to setup the algebraic multigrid HMG belonging to the PETSc library....
Definition cs_param_amg.h:241
bool reuse_interpolation
Definition cs_param_amg.h:246
bool use_boomer_coarsening
Definition cs_param_amg.h:245
cs_param_amg_gamg_coarse_solver_t coarse_solver
Definition cs_param_amg.h:255
int n_up_iter
Definition cs_param_amg.h:257
bool use_subspace_coarsening
Definition cs_param_amg.h:247
cs_param_amg_gamg_smoother_t up_smoother
Definition cs_param_amg.h:258
int n_down_iter
Definition cs_param_amg.h:252
cs_param_amg_gamg_smoother_t down_smoother
Definition cs_param_amg.h:253
Set of the main parameters used to setup the algebraic multigrid available natively in code_saturne (...
Definition cs_param_amg.h:322
double p0p1_relax
Definition cs_param_amg.h:328
int aggreg_limit
Definition cs_param_amg.h:330
cs_param_amg_inhouse_solver_t coarse_solver
Definition cs_param_amg.h:349
cs_param_amg_inhouse_solver_t up_smoother
Definition cs_param_amg.h:342
double coarse_rtol_mult
Definition cs_param_amg.h:347
int down_poly_degree
Definition cs_param_amg.h:337
cs_param_amg_inhouse_solver_t down_smoother
Definition cs_param_amg.h:336
int coarse_max_iter
Definition cs_param_amg.h:348
cs_param_amg_inhouse_coarsen_t coarsen_algo
Definition cs_param_amg.h:331
int n_up_iter
Definition cs_param_amg.h:341
int max_levels
Definition cs_param_amg.h:326
int up_poly_degree
Definition cs_param_amg.h:343
int n_down_iter
Definition cs_param_amg.h:335
int coarse_poly_degree
Definition cs_param_amg.h:350
cs_gnum_t min_n_g_rows
Definition cs_param_amg.h:327