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