The current DIC/DILU preconditioners operate on the local data only. This merge implements parallel versions of these using a processor-colouring strategy where data from lower coloured processors is included in the forward sweep and (data from) higher coloured processors in the backwards sweep. This generally leads to lower number of PCG sweeps so less global reductions at the cost of more halo swaps.
Implements two new preconditioners: distributedDIC
and distributedDILU
. Both can be used in a top-level PCG
or PBiCGStab
solver or for the coarsest-level in GAMG
:
p
{
solver GAMG;
// Explicit specify solver for coarse-level correction to override
// preconditioner
coarsestLevelCorr
{
solver PCG;
preconditioner distributedDIC;
}
}
random
) might increase simulation time