/*--------------------------------*- C++ -*----------------------------------*\
| =========                 |                                                 |
| \\      /  F ield         | foam-extend: Open Source CFD                    |
|  \\    /   O peration     | Version:     3.1                                |
|   \\  /    A nd           | Web:         http://www.extend-project.de       |
|    \\/     M anipulation  |                                                 |
\*---------------------------------------------------------------------------*/
FoamFile
{
    version     2.0;
    format      ascii;
    class       dictionary;
    object      fvSolution;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

solvers
{
    Up
    {
        solver          AMG;
        cycle           V-cycle;
        coarseningType  SAMG;
        groupSize       4;

        norm            componentNorm;
        normComponent   3;

        nPreSweeps      1;
        nPostSweeps     3;
        groupSize       4;
        minCoarseEqns   4;
        nMaxLevels      100;
        scale           on;
        smoother        ILUC0;

        minIter         0;
        maxIter         20;
        tolerance       1e-7;
        relTol          0.0;
    }
    p
    {
        solver          amgSolver;
        cycle           V-cycle;
        policy          selectionAMG;

        nPreSweeps      2;
        nPostSweeps     2;
        groupSize       4;
        minCoarseEqns   4;
        nMaxLevels      100;
        scale           off;
        smoother        symGaussSeidel;

        minIter         1;
        maxIter         100;
        tolerance       1e-5;
        relTol          0.001;
    }
    pFinal
    {
        solver          amgSolver;
        cycle           V-cycle;
        policy          selectionAMG;

        nPreSweeps      2;
        nPostSweeps     2;
        groupSize       4;
        minCoarseEqns   4;
        nMaxLevels      100;
        scale           off;
        smoother        symGaussSeidel;

        minIter         1;
        maxIter         100;
        tolerance       1e-5;
        relTol          0.0;
    }
    U
    {
        solver           BiCGStab;
        preconditioner   ILU0;
        tolerance        1e-05;
        relTol           0.001;
        minIter          1;
        maxIter          100;
    }
    UFinal
    {
        solver           BiCGStab;
        preconditioner   ILU0;
        tolerance        1e-05;
        relTol           0.0;
        minIter          1;
        maxIter          100;
    }
    k
    {
        solver           BiCGStab;
        preconditioner   DILU;
        tolerance        1e-08;
        relTol           0.001;
        minIter          1;
    }
    omega
    {
        solver           BiCGStab;
        preconditioner   DILU;
        tolerance        1e-08;
        relTol           0.001;
        minIter          1;
    }
}

SIMPLE
{
    nNonOrthogonalCorrectors 0;
    residualControl
    {
        p               1e-5;
        U               1e-5;
        "(k|epsilon|omega)"   1e-5;
    }
}

PIMPLE
{
    nOuterCorrectors 4;
    nCorrectors     2;
    nNonOrthogonalCorrectors 0;
    pRefCell        0;
    pRefValue       0;
}

blockSolver
{
    nCorrectors        2;
    convergence        1e-5;
    pRefPoint          (-4 -0.6 -0);
    pRefValue          0;
}

fieldBounds
{
    U      300;
    p      -1e7 1e7; // Do not limit p
}

relaxationFactors
{
    equations
    {
        U               0.95;
//        k               0.9;
//        omega           0.9;
//        U               0.6;
//        UFinal          1;
//        k               1;
//        omega           1;
    }
    fields
    {
//        p               0.3;
    }
}

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