# Hypre Inputs

The following inputs control the hypre settings and are read directly by AMReX when we use hypre as the bottom solver, i.e., when `nodal_proj.bottom_solver = hypre` and/or when `mac_proj.bottom_solver = hypre` (see Multigrid Inputs) These settings must be preceded by the hypre_namespace setting corresponding to the solver (see Multigrid Inputs).

NOTE: By default, the MAC and nodal projections use the same settings specified with the namespace `hypre`, however the solvers can be configured separately by specifying `mac_proj.hypre_namespace` and `nodal_proj.hypre_namespace`.

When not using the default namespace `hypre`, additional restrictions apply:

1. Both `mac_proj.hypre_namespace` and `nodal_proj.hypre_namespace` must be set.

2. `mac_proj.hypre_namespace` and `nodal_proj.hypre_namespace` must be unique.

| Description | Type | Default
verbose | Verbosity of hypre | Int | 0
adjust_singular_matrix | Should be true if the problem to be solved has singular matrix | Bool | false
hypre_solver | Type of hypre solver Options are BoomerAMG, GMRES, COGMRES, LGMRES, FlexGMRES, BiCGSTAB, PCG or Hybrid | String | BoomerAMG
hypre_preconditioner | Type of preconditioner Options are BoomerAMG or euclid | String | none
recompute_preconditioner | Recompute preconditioner during runs | Bool | true
write_matrix_files | Write out matrix into text files | Bool | false
overwrite_existing_matrix_files | Over-write existing matrix files | Bool | false
bamg_verbose | Verbosity of BoomerAMG preconditioner | Int | 0
bamg_logging | When using BoomerAMG preconditioner See HYPRE_BoomerAMGSetLogging | Int | 0
bamg_coarsen_type | When using BoomerAMG preconditioner See HYPRE_BoomerAMGSetCoarsenType | Int | 6
bamg_cycle_type | When using BoomerAMG preconditioner See HYPRE_BoomerAMGSetCycleType | Int | 1
bamg_relax_type | When using BoomerAMG preconditioner See HYPRE_BoomerAMGSetRelaxType | Int | 6
bamg_relax_order | When using BoomerAMG preconditioner See HYPRE_BoomerAMGSetRelaxOrder | Int | 1
bamg_num_sweeps | When using BoomerAMG preconditioner See HYPRE_BoomerAMGSetNumSweeps | Int | 2
bamg_max_levels | When using BoomerAMG preconditioner See HYPRE_BoomerAMGSetMaxLevels | Int | 20
bamg_strong_threshold | When using BoomerAMG preconditioner See HYPRE_BoomerAMGSetStrongThreshold | Real | 0.57
bamg_interp_type | When using BoomerAMG preconditioner HYPRE_BoomerAMGSetInterpType | Int | 0