Nonlinear p-Multigrid solver (FAS)

The code has an implementation of the Full Approximation Scheme (FAS) nonlinear -multigrid method. The main keywords to use it are shown in the table below:

Keyword Description Default value
time integration CHARACTER: This is the main keyword to activate the multigrid solvers. The value of it should be set to 'FAS' for the Full Approximation Scheme (FAS) nonlinear multigrid solvers and to 'AnisFAS' for anisotropic FAS schemes. 'explicit'
simulation type CHARACTER: Specifies if HORSES3D must perform a ’steady-state’ or a ’time-accurate’. If 'time-accurate' the solver switches to BDF integration (the exact method can be set using 'bdf order' option) and uses FAS as a local steady-state problem solver. Compatible only with 'FAS'. 'steady-state'
multigrid levels INTEGER: Number of multigrid levels for the computations. Mandatory keyword
delta n INTEGER: Interval of reduction of polynomial order for creating coarser multigrid levels. 1
multigrid output LOGICAL: If .TRUE., the residuals at the different multigrid levels will be displayed. .FALSE.
mg sweeps INTEGER: Number of smoothing sweeps to be taken. 1*
mg sweeps pre INTEGER: Number of pre-smoothing sweeps to be taken. 1*
mg sweeps post INTEGER: Number of post-smoothing sweeps to be taken. 1*
mg sweeps coarsest INTEGER: Number of pre- and post-smoothing sweeps to be taken on the coarsest multigrid level. Average between pre-sweeps and post-sweeps
mg sweeps exact INTEGER(:): Alternative to 'mg sweeps'. Defines exact number of pre- and post- smoothing sweeps to be taken on each level. Index of the array indicates the MG level for the sweeps to be performed, e.g. [1,4] performs 1 pre-sweep and 1 post-sweep on level 1 and 4 pre-\/post-sweeps on level 2. 1*
mg sweeps pre exact INTEGER(:): Alternative to 'mg sweeps pre'. Defines exact number of pre-smoothing sweeps to be taken on each level. Index of the array indicates the MG level for the sweeps to be performed, e.g. [1,4] performs 1 pre-sweep on level 1 and 4 pre-sweeps on level 2. 1*
mg sweeps post exact INTEGER(:): Alternative to 'mg sweeps post'. Defines exact number of post-smoothing sweeps to be taken on each level. Index of the array indicates the MG level for the sweeps to be performed, e.g. [1,4] performs 1 post-sweep on level 1 and 4 post-sweeps on level 2. 1*
mg smoother CHARACTER: The smoothing technique to be used. The keywords and possible explicit smoothers are the same as the 'explicit method' in the explicit solvers section. For the semi-implicit residual relaxation use 'BIRK5'. RK3
fasfmg residual REAL: When this keyword is used, the code uses a full multigrid (FMG) method to obtain an initial condition for the simulation. The initial condition has the specified residual. --
fasfmg save solutions LOGICAL: Save the solutions that are obtained at the different FMG levels. Only usable when fasfmg residual is used. .FALSE.
postsmooth option CHARACTER: When this keyword is used, the code performs extra post-smoothing sweeps, so that the final residual after completing the post-smoothing is lower than the residual achieved by the pre-smoothing. The options are: - 'f-cycle': Do the extra post-smoothing with an FMG cycle. - 'smooth': Do normal smoothing. --
smooth fine REAL: Extra pre-smoothing is performed on a multigrid level of order , until a residual is obtained , where is the polynomial order of the next (coarsest) grid, and is the specified value. --
max mg sweeps INTEGER: Maximum number of smoothing sweeps to be performed. This only makes sense if one uses the keywords postsmooth option and/or smooth fine. 10000
mg initialization LOGICAL: Sets the initial explicit residual smoothing with RK3 and local time stepping. .FALSE.
initial residual REAL: Threshold for the after which solver switches from the 'mg initialization' settings to user specified. 1.0
initial cfl REAL: CFL and DCFL number for initial residual smoothing. 0.1

* The user must specify mg sweeps pre and mg sweeps post, or mg sweeps