9.2
general documentation
cs_param_amg.h
Go to the documentation of this file.
1#ifndef CS_PARAM_AMG_H
2#define CS_PARAM_AMG_H
3
4/*============================================================================
5 * Routines to handle the set of parameters for algebraic multigrids (AMG)
6 *============================================================================*/
7
8/*
9 This file is part of code_saturne, a general-purpose CFD tool.
10
11 Copyright (C) 1998-2026 EDF S.A.
12
13 This program is free software; you can redistribute it and/or modify it under
14 the terms of the GNU General Public License as published by the Free Software
15 Foundation; either version 2 of the License, or (at your option) any later
16 version.
17
18 This program is distributed in the hope that it will be useful, but WITHOUT
19 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
20 FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
21 details.
22
23 You should have received a copy of the GNU General Public License along with
24 this program; if not, write to the Free Software Foundation, Inc., 51 Franklin
25 Street, Fifth Floor, Boston, MA 02110-1301, USA.
26*/
27
28/*----------------------------------------------------------------------------*/
29
30/*----------------------------------------------------------------------------
31 * Local headers
32 *----------------------------------------------------------------------------*/
33
34#include "base/cs_param_types.h"
35
36/*----------------------------------------------------------------------------*/
37
39
49/*============================================================================
50 * Macro definitions
51 *============================================================================*/
52
53/*============================================================================
54 * Type definitions
55 *============================================================================*/
56
64typedef enum {
65
78
80
86typedef enum {
87
93
95
97
103typedef enum {
104
106 CS_PARAM_AMG_BOOMER_INTERP_EXT_PLUS_I_CC = 6, /* (default) Also for GPU */
109 CS_PARAM_AMG_BOOMER_INTERP_EXTENDED = 14, /* Also for GPU */
112
114
116
122typedef enum {
123
129 CS_PARAM_AMG_BOOMER_GAUSS_ELIM = 9, /* for the coarsest level only */
136
138
140
149typedef struct {
150
151 /* Read the function \ref _petsc_boomeramg_hook or \ref _hypre_boomeramg_hook
152 for more details and read the HYPRE user guide */
153
157 int p_max;
160
164
167
169
170/* GAMG AMG algorithms in PETSc */
171/* ---------------------------- */
172
173/* List of predefined common smoothers for PETSc (GAMG and HMG) */
174
175typedef enum {
176
181 CS_PARAM_AMG_GAMG_HYBRID_SSOR, // SGS on local rank / Jacobi at interfaces
184
186
188
189/* List of predefined common coarse solver for PETSc (GAMG and HMG) */
190
191typedef enum {
192
198
200
202
210typedef struct {
211
212 // Parameters related to the way to build the different levels
213
214 double threshold;
218
219 // Parameters related to solvers associated to each level (level 0 is the
220 // coarse grid)
221
224
226
229
231
241typedef struct {
242
243 // Parameters related to the way to build the different levels
244
248
249 // Parameters related to solvers associated to each level (level 0 is the
250 // coarse grid). This relies on PETSc solvers.
251
254
256
259
261
262/* In-house AMG algorithms */
263/* ----------------------- */
264
274 typedef enum {
275
276 CS_PARAM_AMG_INHOUSE_FORWARD_GS = 1, /* smoother only */
277 CS_PARAM_AMG_INHOUSE_BACKWARD_GS = 2, /* smoother only */
278 CS_PARAM_AMG_INHOUSE_L1_JACOBI = 11, /* smoother only */
279 CS_PARAM_AMG_INHOUSE_R_JACOBI = 12, /* smoother only */
280 CS_PARAM_AMG_INHOUSE_RJ2 = 13, /* smoother only */
281 CS_PARAM_AMG_INHOUSE_RJ3 = 14, /* smoother only */
282
286
291
293
295
302 typedef enum {
303
304 /* For symmetric positive definite matrices (SPD) */
305
315
317
326typedef struct {
327
328 /* Coarsening algorithm */
329
330 int max_levels; /* advanced settings */
331 cs_gnum_t min_n_g_rows; /* advanced settings */
332 double p0p1_relax; /* advanced settings */
333
336
337 /* Down smoother */
338
342
343 /* Up smoother */
344
348
349 /* Coarse solver */
350
351 double coarse_rtol_mult; /* advanced settings */
352 int coarse_max_iter; /* advanced settings */
355
357
358/*============================================================================
359 * Global variables
360 *============================================================================*/
361
362/*----------------------------------------------------------------------------*/
372/*----------------------------------------------------------------------------*/
373
374inline bool
378{
379 if (precond == CS_PARAM_PRECOND_AMG || solver == CS_PARAM_SOLVER_AMG)
380 if (amg == CS_PARAM_AMG_HYPRE_BOOMER_V ||
382 return true;
383
384 return false;
385}
386
387/*----------------------------------------------------------------------------*/
397/*----------------------------------------------------------------------------*/
398
399inline bool
403{
404 if (precond == CS_PARAM_PRECOND_AMG || solver == CS_PARAM_SOLVER_AMG)
405 if (amg == CS_PARAM_AMG_PETSC_GAMG_V ||
407 return true;
408
409 return false;
410}
411
412/*----------------------------------------------------------------------------*/
422/*----------------------------------------------------------------------------*/
423
424inline bool
428{
429 if (precond == CS_PARAM_PRECOND_AMG || solver == CS_PARAM_SOLVER_AMG)
430 if (amg == CS_PARAM_AMG_PETSC_HMG_V ||
432 return true;
433
434 return false;
435}
436
437/*----------------------------------------------------------------------------*/
448/*----------------------------------------------------------------------------*/
449
450inline bool
454{
455 if (precond == CS_PARAM_PRECOND_AMG || solver == CS_PARAM_SOLVER_AMG)
457 return true;
458
459 return false;
460}
461
462/*============================================================================
463 * Public function prototypes
464 *============================================================================*/
465
466/*----------------------------------------------------------------------------*/
474/*----------------------------------------------------------------------------*/
475
476const char *
478
479/*----------------------------------------------------------------------------*/
487/*----------------------------------------------------------------------------*/
488
491
492/*----------------------------------------------------------------------------*/
499/*----------------------------------------------------------------------------*/
500
503
504/*----------------------------------------------------------------------------*/
513/*----------------------------------------------------------------------------*/
514
517
518/*----------------------------------------------------------------------------*/
526/*----------------------------------------------------------------------------*/
527
528const char *
530
531/*----------------------------------------------------------------------------*/
538/*----------------------------------------------------------------------------*/
539
540void
541cs_param_amg_boomer_log(const char *name,
542 const cs_param_amg_boomer_t *bamgp);
543
544/*----------------------------------------------------------------------------*/
551/*----------------------------------------------------------------------------*/
552
555
556/*----------------------------------------------------------------------------*/
565/*----------------------------------------------------------------------------*/
566
569
570/*----------------------------------------------------------------------------*/
578/*----------------------------------------------------------------------------*/
579
580const char *
582
583/*----------------------------------------------------------------------------*/
591/*----------------------------------------------------------------------------*/
592
593const char *
595(
597 );
598
599/*----------------------------------------------------------------------------*/
606/*----------------------------------------------------------------------------*/
607
608void
609cs_param_amg_gamg_log(const char *name,
610 const cs_param_amg_gamg_t *gamgp);
611
612/*----------------------------------------------------------------------------*/
619/*----------------------------------------------------------------------------*/
620
623
624/*----------------------------------------------------------------------------*/
633/*----------------------------------------------------------------------------*/
634
637
638/*----------------------------------------------------------------------------*/
645/*----------------------------------------------------------------------------*/
646
647void
648cs_param_amg_hmg_log(const char *name,
649 const cs_param_amg_hmg_t *hmgp);
650
651/*----------------------------------------------------------------------------*/
661/*----------------------------------------------------------------------------*/
662
664cs_param_amg_inhouse_create(bool used_as_solver,
665 bool used_as_k_cycle);
666
667/*----------------------------------------------------------------------------*/
676/*----------------------------------------------------------------------------*/
677
680
681/*----------------------------------------------------------------------------*/
689/*----------------------------------------------------------------------------*/
690
691const char *
693
694/*----------------------------------------------------------------------------*/
701/*----------------------------------------------------------------------------*/
702
703void
704cs_param_amg_inhouse_log(const char *name,
705 const cs_param_amg_inhouse_t *amgp);
706
707/*----------------------------------------------------------------------------*/
708
710
711#endif /* CS_PARAM_AMG_H */
#define BEGIN_C_DECLS
Definition: cs_defs.h:528
unsigned cs_gnum_t
global mesh entity number
Definition: cs_defs.h:317
#define END_C_DECLS
Definition: cs_defs.h:529
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:128
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:612
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:425
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:907
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
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:375
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:86
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:565
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:464
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:497
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:157
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:400
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:289
@ CS_PARAM_AMG_INHOUSE_PROCESS_GS
Definition: cs_param_amg.h:284
@ CS_PARAM_AMG_INHOUSE_CR3
Definition: cs_param_amg.h:288
@ CS_PARAM_AMG_INHOUSE_GMRES
Definition: cs_param_amg.h:290
@ CS_PARAM_AMG_INHOUSE_RJ2
Definition: cs_param_amg.h:280
@ CS_PARAM_AMG_INHOUSE_JACOBI
Definition: cs_param_amg.h:283
@ CS_PARAM_AMG_INHOUSE_FORWARD_GS
Definition: cs_param_amg.h:276
@ CS_PARAM_AMG_INHOUSE_N_SOLVERS
Definition: cs_param_amg.h:292
@ CS_PARAM_AMG_INHOUSE_RJ3
Definition: cs_param_amg.h:281
@ CS_PARAM_AMG_INHOUSE_R_JACOBI
Definition: cs_param_amg.h:279
@ CS_PARAM_AMG_INHOUSE_BACKWARD_GS
Definition: cs_param_amg.h:277
@ CS_PARAM_AMG_INHOUSE_L1_JACOBI
Definition: cs_param_amg.h:278
@ CS_PARAM_AMG_INHOUSE_CG
Definition: cs_param_amg.h:287
@ CS_PARAM_AMG_INHOUSE_PROCESS_SGS
Definition: cs_param_amg.h:285
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:725
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:419
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:650
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:822
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:860
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:679
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:533
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:218
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:295
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:251
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
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:451
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:302
@ CS_PARAM_AMG_INHOUSE_COARSEN_SPD_DX
Definition: cs_param_amg.h:306
@ CS_PARAM_AMG_INHOUSE_COARSEN_SPD_MX
Definition: cs_param_amg.h:308
@ CS_PARAM_AMG_INHOUSE_COARSEN_SPD_PW
Definition: cs_param_amg.h:310
@ CS_PARAM_AMG_INHOUSE_N_COARSENINGS
Definition: cs_param_amg.h:314
@ CS_PARAM_AMG_INHOUSE_COARSEN_CONV_DIFF_DX
Definition: cs_param_amg.h:312
cs_param_solver_class_t
Class of iterative solvers to consider for solver the linear system.
Definition: cs_param_types.h:752
cs_param_precond_type_t
Definition: cs_param_types.h:864
@ CS_PARAM_PRECOND_AMG
Definition: cs_param_types.h:868
cs_param_solver_type_t
Definition: cs_param_types.h:945
@ CS_PARAM_SOLVER_AMG
Definition: cs_param_types.h:949
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:326
double p0p1_relax
Definition: cs_param_amg.h:332
int aggreg_limit
Definition: cs_param_amg.h:334
cs_param_amg_inhouse_solver_t coarse_solver
Definition: cs_param_amg.h:353
cs_param_amg_inhouse_solver_t up_smoother
Definition: cs_param_amg.h:346
double coarse_rtol_mult
Definition: cs_param_amg.h:351
int down_poly_degree
Definition: cs_param_amg.h:341
cs_param_amg_inhouse_solver_t down_smoother
Definition: cs_param_amg.h:340
int coarse_max_iter
Definition: cs_param_amg.h:352
cs_param_amg_inhouse_coarsen_t coarsen_algo
Definition: cs_param_amg.h:335
int n_up_iter
Definition: cs_param_amg.h:345
int max_levels
Definition: cs_param_amg.h:330
int up_poly_degree
Definition: cs_param_amg.h:347
int n_down_iter
Definition: cs_param_amg.h:339
int coarse_poly_degree
Definition: cs_param_amg.h:354
cs_gnum_t min_n_g_rows
Definition: cs_param_amg.h:331