chtMultiRegionFoam: SIMPLE operation and transonic switch

Multi-region PIMPLE controls have been applied to the chtMultiRegionFoam
solver, and a transonic option has been implemented.

The new PIMPLE controls let the solver operate SIMPLE mode. The
utilisation of library solution and convergence control functionality
has significantly reduced the amount of code in the solver. The
chtMultiRegionSimpleFoam solver has also been made obsolete, and has
therefore been removed.

A few changes will be necessary to convert an existing
chtMultiRegionSimpleFoam case to chtMultiRegionFoam. All the SIMPLE
sub-dictionaries in the system/<regions>/fvSolution will need to be
renamed PIMPLE. The system/fvSolution file will also need an empty
PIMPLE sub-dictionary. In addition, additional "<variable>Final" solver
and relaxation entries will be needed. For a steady case, adding a
wildcard ending, ".*", to the variable names should be sufficient.

Solution parameters appropriate for a steady case are shown below:

    solvers
    {
        "p_rgh.*"
        {
            solver           GAMG;
            tolerance        1e-7;
            relTol           0.01;
            smoother         DIC;
            maxIter          10;
        }

        "(U|h|e|k|epsilon).*"
        {
            solver           PBiCGStab;
            preconditioner   DILU;
            tolerance        1e-7;
            relTol           0.1;
        }
    }

    PIMPLE
    {
        // ...
    }

    relaxationFactors
    {
        fields
        {
            "p_rgh.*"       0.7;
        }
        equations
        {
            "U.*"           0.5;
            "(h|e).*"       0.3;
            "(k|epsilon).*" 0.2;
        }
    }

This work was supported by Fabian Buelow, at Evonik
Tobias Holzmann provided cases for testing the convergence controls
This commit is contained in:
Will Bainbridge
2018-01-26 13:40:42 +00:00
parent 4c8122783a
commit 283f8b7dc8
148 changed files with 205 additions and 1624 deletions

View File

@ -10,55 +10,49 @@ FoamFile
version 2.0;
format ascii;
class dictionary;
location "system";
location "system/air";
object fvSolution;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
solvers
{
p_rgh
"p_rgh.*"
{
solver GAMG;
tolerance 1e-7;
relTol 0.01;
smoother DIC;
maxIter 100;
}
"(U|h|e|k|epsilon)"
"(U|h|e|k|epsilon).*"
{
solver PBiCGStab;
preconditioner DILU;
tolerance 1e-6;
relTol 0.1;
solver PBiCGStab;
preconditioner DILU;
tolerance 1e-6;
relTol 0.1;
}
}
SIMPLE
PIMPLE
{
nNonOrthogonalCorrectors 0;
rhoMax 2;
rhoMin 1;
}
relaxationFactors
{
fields
{
rho 1;
p_rgh 0.7;
"rho.*" 1;
"p_rgh.*" 0.7;
}
equations
{
U 0.3;
"(h|e)" 0.3;
k 0.3;
epsilon 0.3;
"U.*" 0.3;
"(h|e).*" 0.3;
"k.*" 0.3;
"epsilon.*" 0.3;
}
}

View File

@ -15,7 +15,7 @@ FoamFile
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
application chtMultiRegionSimpleFoam;
application chtMultiRegionFoam;
startFrom latestTime;

View File

@ -10,25 +10,23 @@ FoamFile
version 2.0;
format ascii;
class dictionary;
location "system/porous";
object fvSolution;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
solvers
{
p_rgh
"p_rgh.*"
{
solver GAMG;
tolerance 1e-7;
relTol 0.01;
smoother DIC;
maxIter 10;
}
"(U|h|e|k|epsilon)"
"(U|h|e|k|epsilon).*"
{
solver PBiCGStab;
preconditioner DILU;
@ -37,26 +35,24 @@ solvers
}
}
SIMPLE
PIMPLE
{
nNonOrthogonalCorrectors 0;
rhoMax 1100;
rhoMin 900;
}
relaxationFactors
{
fields
{
rho 1;
p_rgh 0.7;
"rho.*" 1;
"p_rgh.*" 0.7;
}
equations
{
U 0.3;
"(h|e)" 0.3;
k 0.3;
epsilon 0.3;
"U.*" 0.3;
"(h|e).*" 0.3;
"k.*" 0.3;
"epsilon.*" 0.3;
}
}

View File

@ -16,15 +16,7 @@ FoamFile
solvers
{
rho
{
solver PCG
preconditioner DIC;
tolerance 1e-7;
relTol 0;
}
p_rgh
"p_rgh.*"
{
solver GAMG;
tolerance 1e-7;
@ -34,47 +26,36 @@ solvers
}
"(U|h|k|epsilon|G|Ii)"
"(U|h|k|epsilon).*"
{
solver PBiCGStab;
preconditioner DILU;
tolerance 1e-7;
relTol 0.1;
}
G
{
$p_rgh;
tolerance 1e-05;
relTol 0.1;
}
}
SIMPLE
PIMPLE
{
momentumPredictor yes;
nNonOrthogonalCorrectors 0;
pRefCell 0;
pRefValue 100000;
rhoMin 0.2;
rhoMax 2;
}
relaxationFactors
{
fields
{
rho 1.0;
p_rgh 0.7;
"rho.*" 1.0;
"p_rgh.*" 0.7;
}
equations
{
U 0.3;
h 0.7;
"(k|epsilon|omega)" 0.7;
G 0.7;
"ILambda.*" 0.7;
qr 0.7;
"U.*" 0.3;
"h.*" 0.7;
"(k|epsilon|omega).*" 0.7;
"qr.*" 0.7;
}
}

View File

@ -15,7 +15,7 @@ FoamFile
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
application chtMultiRegionSimpleFoam;
application chtMultiRegionFoam;
startFrom startTime;

View File

@ -14,4 +14,9 @@ FoamFile
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
PIMPLE
{
}
// ************************************************************************* //

View File

@ -16,7 +16,7 @@ FoamFile
solvers
{
h
"h.*"
{
solver PCG;
preconditioner DIC;
@ -25,7 +25,7 @@ solvers
}
}
SIMPLE
PIMPLE
{
nNonOrthogonalCorrectors 0;
}
@ -34,7 +34,7 @@ relaxationFactors
{
equations
{
h 0.7;
"h.*" 0.7;
}
}

View File

@ -16,7 +16,7 @@ FoamFile
solvers
{
h
"h.*"
{
solver PCG;
preconditioner DIC;
@ -25,7 +25,7 @@ solvers
}
}
SIMPLE
PIMPLE
{
nNonOrthogonalCorrectors 0;
}
@ -34,7 +34,7 @@ relaxationFactors
{
equations
{
h 0.7;
"h.*" 0.7;
}
}

View File

@ -16,7 +16,7 @@ FoamFile
solvers
{
h
"h.*"
{
solver PCG;
preconditioner DIC;
@ -25,7 +25,7 @@ solvers
}
}
SIMPLE
PIMPLE
{
nNonOrthogonalCorrectors 0;
}
@ -34,7 +34,7 @@ relaxationFactors
{
equations
{
h 0.7;
"h.*" 0.7;
}
}

View File

@ -16,15 +16,7 @@ FoamFile
solvers
{
rho
{
solver PCG
preconditioner DIC;
tolerance 1e-7;
relTol 0;
}
p_rgh
"p_rgh.*"
{
solver GAMG;
tolerance 1e-7;
@ -34,47 +26,36 @@ solvers
}
"(U|h|k|epsilon|G|Ii)"
"(U|h|k|epsilon).*"
{
solver PBiCGStab;
preconditioner DILU;
tolerance 1e-7;
relTol 0.1;
}
G
{
$p_rgh;
tolerance 1e-05;
relTol 0.1;
}
}
SIMPLE
PIMPLE
{
momentumPredictor yes;
nNonOrthogonalCorrectors 0;
pRefCell 0;
pRefValue 100000;
rhoMin 0.2;
rhoMax 2;
}
relaxationFactors
{
fields
{
rho 1.0;
p_rgh 0.7;
"rho.*" 1.0;
"p_rgh.*" 0.7;
}
equations
{
U 0.3;
h 0.7;
"(k|epsilon|omega)" 0.7;
G 0.7;
"ILambda.*" 0.7;
qr 0.7;
"U.*" 0.3;
"h.*" 0.7;
"(k|epsilon|omega).*" 0.7;
"qr.*" 0.7;
}
}