Multigrid solvers
Nodal projection
The following inputs are defined using the prefix nodal_proj:
Description |
Type |
Default |
|
|---|---|---|---|
verbose |
Verbosity of multigrid solver in nodal projection. |
Int |
0 |
bottom_verbose |
Verbosity of BiCGStab solver in nodal projection. |
Int |
0 |
mg_rtol |
Relative tolerance in nodal projection. |
Real |
1.e-11 |
bottom_rtol |
Relative tolerance of bottom solver. |
Real |
1.0e-4 |
mg_atol |
Absolute tolerance in nodal projection. |
Real |
1.e-14 |
bottom_atol |
Absolute tolerance of bottom solver, a negative number means it won’t be used. |
Real |
-1.0 |
maxiter |
Maximum number of iterations in the nodal projection. |
Int |
100 |
bottom_maxiter |
Maximum number of iterations in the nodal projection
bottom solver if using |
Int |
100 |
mg_max_coarsening_level |
Maximum number of coarser levels to allow in the nodal projection. If set to 0, the bottom solver will be called at the current level. |
Int |
100 |
bottom_solver |
Which bottom solver to use in the nodal projection. Options:
|
String |
bicgcg |
hypre_namespace |
Namespace to use in the nodal projection when using hypre to control hypre specific settings. It can be any string. |
String |
hypre |
hypre_interface |
Which interface to use in the nodal projection when using Options:
|
String |
ij |
num_pre_smooth |
Number of smoother iterations when going down the V-cycle |
Int |
2 |
num_post_smooth |
Number of smoother iterations when going up the V-cycle |
Int |
2 |
MAC (Marker-and-Cell) projection
The following inputs are defined using the prefix mac_proj:
Description |
Type |
Default |
|
|---|---|---|---|
verbose |
Verbosity of multigrid solver in MAC projection. |
Int |
0 |
bottom_verbose |
Verbosity of BiCGStab solver in MAC projection. |
Int |
0 |
mg_rtol |
Relative tolerance in MAC projection. |
Real |
1.e-11 |
bottom_rtol |
Relative tolerance of bottom solver. |
Real |
1.0e-4 |
mg_atol |
Absolute tolerance in MAC projection. |
Real |
1.e-14 |
bottom_atol |
Absolute tolerance of bottom solver, a negative number means it won’t be used. |
Real |
-1.0 |
maxiter |
Maximum number of iterations in the MAC projection. |
Int |
200 |
maxorder |
Sets the order of the cell-centered linear operator stencil at
physical boundaries with Dirichlet boundary conditions and at
coarse-fine boundaries. In both of these cases, the boundary value is
not defined at the center of the ghost cell. The order determines the
number of interior cells that are used in the extrapolation of the
boundary value from the cell face to the center of the ghost cell,
where the extrapolated value is then used in the regular stencil. For
example, |
Int |
3 |
bottom_maxiter |
Maximum number of iterations in the MAC projection
bottom solver if using |
Int |
200 |
mg_max_coarsening_level |
|
Int |
100 |
bottom_solver |
Which bottom solver to use in the MAC projection. Options:
|
String |
bicgcg |
hypre_namespace |
Namespace to use in the MAC projection when using |
String |
hypre |
hypre_interface |
Which interface to use in the MAC projection when using Options:
|
String |
ij |
num_pre_smooth |
Number of smoother iterations when going down the V-cycle |
Int |
2 |
num_post_smooth |
Number of smoother iterations when going up the V-cycle |
Int |
2 |
Diffusion
The following inputs are defined using the prefix diffusion:
Description |
Type |
Default |
|
|---|---|---|---|
verbose |
Verbosity of linear solver for diffusion. |
Int |
0 |
bottom_verbose |
Verbosity of BiCGStab solver in diffusion. |
Int |
0 |
mg_rtol |
Relative tolerance in diffusion solver. |
Real |
1.e-11 |
mg_atol |
Absolute tolerance in diffusion solver. |
Real |
1.e-14 |
maxiter |
Maximum number of iterations in diffusion solver. |
Int |
100 |
bottom_maxiter |
Maximum number of iterations in diffusion solver
bottom solver if using |
Int |
100 |
mg_max_coarsening_level |
Maximum number of coarser levels to allow in diffusion solver. If set to 0, the bottom solver will be called at the current level. |
Int |
100 |
bottom_solver |
Which bottom solver to use for diffusion. Options:
|
String |
bicgcg |
Hypre Settings
hypre settings are specified using the following inputs which are read directly by AMReX when hypre is used as
the bottom solver for the MAC and/or nodal projections. By default, these inputs are defined using the
prefix hypre, however different settings for the nodal and MAC projections can be used by specifying
a hypre_namespace for each solver.
Warning
MFIX-Exa must be built with
hypreenabled to usehypreas the bottom solver.If
hypreis used for the nodal and MAC projections, then either thehypre_namespacemust be left as the default (hypre) or unique name spaces must be provided for both.These inputs are all case-sensitive.
These inputs follow the typical approach for using hypre in MFIX-Exa where BoomerAMG is employed as a preconditioner
and GMRES for the linear solver.
Description |
Type |
Default |
|
|---|---|---|---|
hypre_preconditioner |
Type of preconditioner when using Options:
|
String |
none |
recompute_preconditioner |
Recompute preconditioner during runs. |
Bool |
true |
hypre_solver |
Type of hypre solver. Options:
|
String |
BoomerAMG |
verbose |
Verbosity of hypre. |
Int |
0 |
num_krylov |
Number of iterations. |
Int |
50 |
adjust_singular_matrix |
Enable if the problem to be solved has a singular matrix. |
Bool |
false |
overwrite_existing_matrix_files |
Overwrite existing matrix files. |
Bool |
false |
write_matrix_files |
Write matrix into text files. |
Bool |
false |
The following inputs are valid when using BoomerAMG as a preconditioner or solver. They must be defined using the
prefix hypre:
Description |
Type |
Default |
|
|---|---|---|---|
bamg_agg_interp_type |
See |
Int |
4 |
bamg_agg_num_levels |
See |
Int |
0 |
bamg_agg_pmax_elmts |
See |
Int |
0 |
bamg_coarse_relax_type |
See |
Int |
11 |
bamg_coarsen_type |
See |
Int |
6 |
bamg_cycle_type |
See |
Int |
1 |
bamg_down_relax_type |
See |
Int |
11 |
bamg_interp_type |
See |
Int |
0 |
bamg_keep_transpose |
See |
Int |
0 |
bamg_logging |
See |
Int |
0 |
bamg_max_coarse_size |
See |
Int |
9 |
bamg_max_iterations |
See |
Int |
1 |
bamg_max_levels |
See |
Int |
20 |
bamg_min_coarse_size |
See |
Int |
1 |
bamg_num_coarse_sweeps |
See |
Int |
1 |
bamg_num_down_sweeps |
See |
Int |
2 |
bamg_num_down_sweeps |
See |
Int |
2 |
bamg_num_sweeps |
See |
Int |
2 |
bamg_num_sweeps |
See |
Int |
2 |
bamg_num_up_sweeps |
See |
Int |
2 |
bamg_pmax_elmts |
See |
Int |
4 |
bamg_precond_tolerance |
See |
Real |
0.0 |
bamg_relax_order |
See |
Int |
1 |
bamg_relax_type |
See |
Int |
6 |
bamg_set_restriction |
See |
Int |
0 |
bamg_strong_threshold |
See |
Real |
0.57 |
bamg_trunc_factor |
See |
Real |
0.1 |
bamg_up_relax_type |
See |
Int |
11 |
bamg_variant |
See |
Int |
0 |
bamg_verbose |
Set |
Int |
0 |
Note
This list is likely incomplete because the AMReX / hypre interface continues to evolve.