Properties
- symmetric or asymmetric matrices
- run-time selectable smoother
- efficient transport of information across the solution domain
- moderate parallel scaling
Usage
Many of the GAMG
solver inputs can be omitted and left to their default values such that the basic usage comprises:
solver GAMG;
smoother <smoother>;
relTol <relative tolerance>;
tolerance <absolute tolerance>;
For more complete control, the full set of input entries includes:
// Mandatory entries
solver GAMG;
smoother <smoother>;
relTol <relative tolerance>;
tolerance <absolute tolerance>;
// Optional entries and associated default values
// Agglomeration
cacheAgglomeration yes;
nCellsInCoarsestLevel 10;
processorAgglomerator <processor agglomeration method>;
// Solver
nPreSweeps 0;
preSweepsLevelMultiplier 1;
maxPreSweeps 4;
nPostSweeps 2;
postSweepsLevelMultiplier 1;
maxPostSweeps 4;
nFinestSweeps 2;
interpolateCorrection no;
scaleCorrection yes; // Yes: symmetric No: Asymmetric
directSolveCoarsest no;
Details
Operation
Coarsens using agglomeration
- face area pair (geometric)
- algebraic pair (numerical coefficients)
Agglomeration - number of levels depends on
- number of cells at coarsest level
- hard-limit of a maximum of 50 levels
V-cycle
- optional pre- and post- solve smoothing at each level
- optional smoothing at finest level
Data exchange between levels:
- restriction: fine-to-coarse (summation)
- prolongation: coarse-to-fine (injection)
Coarsest level solved using either:
- direct solver
- PCG (symmetric matrices)
- PBiCGStab (asymmetric matrices)
- Note
- The system becomes more difficult to solve with increasing coarse levels due to the increasing amount of (explicit) processor contributions. This requires an efficient pre-conditioner, which are generally not parallel-aware
Computation cost
Start-up:
- construction of agglomeration levels
- 1 matrix-vector multiply
- 1 parallel reduction
Per iteration:
- 1 matrix-vector multiply per level
- 1 parallel reduction per level
- 1 matrix-vector multiply per V-cycle per iteration (finest level)
- 1 parallel reduction per V-cycle per iteration (finest level)
- + cost of coarsest level solution, e.g. using the PCG solver
Further information
Source code:
Copyright © 2016-2017 OpenCFD Ltd.
Licensed under the Creative Commons License BY-NC-ND 