12. FLOW_PRESSURE_SOLVER and FLOW_VISCOUS_SOLVER Namelist
12.1. Overview
The flow algorithm requires the solution of two linear systems at each time step: the implicit viscous velocity update system and the pressure Poisson system. Truchas uses the hybrid solver from the HYPRE software library to solve these systems.
The hybrid solver first uses a diagonally-scaled iterative Krylov solver. If it determines that convergence is too slow, the solver switches to a more expensive but more effective preconditioned Krylov solver that uses an algebraic multigrid (AMG) preconditioner (BoomerAMG).
The FLOW_VISCOUS_SOLVER namelist sets the HYPRE hybrid solver parameters for the solution of the implicit viscous velocity update system, and the FLOW_PRESSURE_SOLVER namelist sets the solver parameters for the solution of the pressure Poisson system. The same variables are used in both namelists.
12.2. FLOW_VISCOUS_SOLVER Namelist Features
12.3. FLOW_PRESSURE_SOLVER Namelist Features
12.4. Components
krylov_method
krylov_dim
conv_rate_tol
\([1-\frac{|\rho_n-\rho_{n-1}|}{max(\rho_n,\rho_{n-1})}]\rho_n \gt \theta\)
abs_tol, rel_tol
max_ds_iter
max_amg_iter
print_level
12.5. Additional HYPRE parameters (Expert)
Some additional HYPRE solver parameters and options can be set using these namelists. Nearly all of these are associated with the BoomerAMG preconditioner, and all have reasonable defaults set by HYPRE. See the ParCSR Hybrid Solver section in the HYPRE reference manual for details. The HYPRE documentation has some additional information. The variables that can be set are listed below. Note that the variables correspond to similarly-named HYPRE library functions and not actual HYPRE variables. Also note that there are many parameters and options that cannot currently be set by the namelists.
cg_use_two_norm(logical)
amg_strong_threshold(real)
amg_max_levels(integer)
amg_coarsen_method(integer)
amg_smoothing_sweeps(integer)
amg_smoothing_method(integer)
amg_interp_method(integer)