using a run-time selectable preconditioner References: Van der Vorst, H. A. (1992). Bi-CGSTAB: A fast and smoothly converging variant of Bi-CG for the solution of nonsymmetric linear systems. SIAM Journal on scientific and Statistical Computing, 13(2), 631-644. Barrett, R., Berry, M. W., Chan, T. F., Demmel, J., Donato, J., Dongarra, J., Eijkhout, V., Pozo, R., Romine, C. & Van der Vorst, H. (1994). Templates for the solution of linear systems: building blocks for iterative methods (Vol. 43). Siam. See also: https://en.wikipedia.org/wiki/Biconjugate_gradient_stabilized_method Tests have shown that PBiCGStab with the DILU preconditioner is more robust, reliable and shows faster convergence (~2x) than PBiCG with DILU, in particular in parallel where PBiCG occasionally diverges. This remarkable improvement over PBiCG prompted the update of all tutorial cases currently using PBiCG to use PBiCGStab instead. If any issues arise with this update please report on Mantis: http://bugs.openfoam.org
77 lines
1.8 KiB
C++
77 lines
1.8 KiB
C++
/*--------------------------------*- C++ -*----------------------------------*\
|
|
| ========= | |
|
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
|
| \\ / O peration | Version: dev |
|
|
| \\ / A nd | Web: www.OpenFOAM.org |
|
|
| \\/ M anipulation | |
|
|
\*---------------------------------------------------------------------------*/
|
|
FoamFile
|
|
{
|
|
version 2.0;
|
|
format ascii;
|
|
class dictionary;
|
|
location "system";
|
|
object fvSolution;
|
|
}
|
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
|
|
solvers
|
|
{
|
|
rho
|
|
{
|
|
solver PCG;
|
|
preconditioner DIC;
|
|
tolerance 1e-05;
|
|
relTol 0.01;
|
|
};
|
|
|
|
rhoFinal
|
|
{
|
|
$rho;
|
|
tolerance 1e-06;
|
|
relTol 0;
|
|
};
|
|
|
|
p
|
|
{
|
|
solver PCG;
|
|
preconditioner DIC;
|
|
tolerance 1e-6;
|
|
relTol 0.01;
|
|
};
|
|
|
|
pFinal
|
|
{
|
|
$p;
|
|
tolerance 1e-6;
|
|
relTol 0;
|
|
};
|
|
|
|
"(b|Xi|ft|ha|hau|k|epsilon)"
|
|
{
|
|
solver PBiCGStab;
|
|
preconditioner DILU;
|
|
tolerance 1e-06;
|
|
relTol 0.1;
|
|
}
|
|
|
|
"(b|Xi|ft|ha|hau|k|epsilon)Final"
|
|
{
|
|
solver PBiCGStab;
|
|
preconditioner DILU;
|
|
tolerance 1e-06;
|
|
relTol 0;
|
|
}
|
|
}
|
|
|
|
PIMPLE
|
|
{
|
|
nCorrectors 2;
|
|
nOuterCorrectors 1;
|
|
nNonOrthogonalCorrectors 0;
|
|
momentumPredictor yes;
|
|
}
|
|
|
|
|
|
// ************************************************************************* //
|