/*--------------------------------*- C++ -*----------------------------------*\
  =========                 |
  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
   \\    /   O peration     | Website:  https://openfoam.org
    \\  /    A nd           | Version:  dev
     \\/     M anipulation  |
\*---------------------------------------------------------------------------*/
FoamFile
{
    version     2.0;
    format      ascii;
    class       dictionary;
    location    "system";
    object      fvSolution;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

solvers
{
    "(p_rgh|p)"
    {
        solver           GAMG;
        tolerance        1e-10;
        relTol           0.01;

        smoother         DICGaussSeidel;

        cacheAgglomeration true;
        nCellsInCoarsestLevel 100;
        agglomerator     faceAreaPair;
        mergeLevels      1;
    }

    "(U|h|e|k|epsilon|omega|R)"
    {
        solver          PBiCG;
        preconditioner  DILU;
        tolerance       1e-9;
        relTol          0;
    }

    "moment.*"
    {
        solver          PCG;
        preconditioner  DIC;
        tolerance       1.0e-12;
        relTol          1e-5;
    }
}

SIMPLE
{
    momentumPredictor no;
    consistent        yes;
    nNonOrthogonalCorrectors 0;
    pRefCell        0;
    pRefValue       1.0e5;

    residualControl
    {
        p_rgh           1e-6;
        U               1e-6;
        "(h|e)"         1e-6;

        "(k|epsilon|omega|R.*)" 1e-6;
    }
}

PIMPLE
{
    nOuterCorrectors    1;
    nNonOrthogonalCorrectors 0;
    nCorrectors         1;
    pRefCell            0;
    pRefValue           1.0e5;

    outerCorrectorResidualControl
    {
        "moment.*"
        {
            tolerance 1e-6;
            relTol    0;
        }
    }
}

relaxationFactors
{
    fields
    {
        rho             1.0;
        p_rgh           0.7;
    }

    equations
    {
        U               0.3;
        "(h|e)"         0.7;
        "(k|epsilon|omega|R)" 0.3;
        "moment.*"      1;
    }
}


// ************************************************************************* //
