# Multigrid Inputs

The following inputs can be set directly in the AMReX solver classes but we set them via the MFIX-Exa routines because we may want different inputs for the different solvers called by MFIX-Exa. NOTE: the nodal solver settings are read in directly by AMReX, the MAC and diffusion settings by MFIX-Exa.

These control the nodal projection and must be preceded by “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
mg_atol | Absolute tolerance in nodal projection | Real | 1.e-14
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 bicg, cg, bicgcg or cgbicg | Int | 100
mg_max_coarsening_level | Maximum number of coarser levels to allowin 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 are bicgcg, bicgstab, cg, cgbicg, smoother or hypre | 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 hypre Options are ij, semi_structured or structured | String | ij

These control the MAC projection and must be preceded by “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
mg_atol | Absolute tolerance in MAC projection | Real | 1.e-14
maxiter | Maximum number of iterations in the MAC projection | Int | 200
bottom_maxiter | Maximum number of iterations in the MAC projection bottom solver if using bicg, cg, bicgcg or cgbicg | Int | 200
mg_max_coarsening_level | Maximum number of coarser levels to allow in the MAC 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 MAC projection Options are bicgcg, bicgstab, cg, cgbicg, smoother or hypre | String | bicgcg
hypre_namespace | Namespace to use in the MAC projection when using hypre to control hypre specific settings. It can be any string. | String | hypre
hypre_interface | Which interface to use in the MAC projection when using hypre Options are ij, semi_structured or structured | String | ij

NOTE: If the `nodal_proj` and `mac_proj` `hypre_namespace`’s are set, they must be distinct unless set to `hypre`, in which case the default behavior is recovered in which case hypre settings apply to all solvers.

These control the diffusion solver and must be preceded by “diffusion.”:

| Description | Type | Default
--- | --- | --- | ---
verbose | Verbosity of linear solver for diffusion solve | Int | 0
bottom_verbose | Verbosity of BiCGStab solver in diffusion solve | Int | 0
mg_rtol | Relative tolerance in diffusion solve | Real | 1.e-11
mg_atol | Absolute tolerance in diffusion solve | Real | 1.e-14
maxiter | Maximum number of iterations in diffusion solve | Int | 100
bottom_maxiter | Maximum number of iterations in diffusion solve bottom solver if using bicg, cg, bicgcg or cgbicg | Int | 100
mg_max_coarsening_level | Maximum number of coarser levels to allow in diffusion solve 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 diffusion solve Options are bicgcg, bicgstab, cg, cgbicg, or smoother | String | bicgcg