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

#include "configDict"

solvers
{    
    pcorr
    {
        solver          GAMG;
        smoother        symGaussSeidel;
        tolerance       1e-4;
        relTol          1e-3;
    }
    pcorrFinal
    {
        $pcorr;
        relTol          0;
    }
    
    p
    {
        $pcorr;
        tolerance       1e-8;
        relTol          1e-2;
    }
    pFinal
    {
        $p;
        relTol          0;
    }
    
    // The whole asymmetric rest
    "(U|epsilon|k|omega|nuTilda|v2)"
    {
        solver          smoothSolver;
        smoother        DILUGaussSeidel;
        tolerance       1e-8;
        relTol          1e-4;
        minIter         2;
    }
    "(U|epsilon|k|omega|nuTilda|v2)Final"
    {
        $U;
        relTol          0;
    }
    
    // for dynamic mesh
    "cellDisplacement.*"
    {
        solver          smoothSolver;
        smoother        symGaussSeidel;
        tolerance       1e-10;
        relTol          1e-5;
        minIter         2;
    }
    "cellDisplacement.*Final"
    {
        $cellDisplacement;
        relTol          0;
    }
}

PIMPLE
{
    nOuterCorrectors            9;
    nNonOrthogonalCorrectors    2;
    nCorrectors                 2;

    moveMeshOuterCorrectors     yes;
    checkMeshCourantNo          yes;
    correctPhi                  yes; // solve pcorr to reduce continuity errors
    momentumPredictor           yes;
    consistent                  no;
    transonic                   no;
    turbOnFinalIterOnly         no;
    
    residualControl
    {        
        U
        { 
            tolerance 1e-5; 
            relTol    1e-4;
        };
        p 
        {            
            tolerance 1e-5; 
            relTol    1e-4;
        };
    }
}

SIMPLE
{
    nNonOrthogonalCorrectors    0;
    
    momentumPredictor   yes;
    consistent          no;
    
    pRefCell     0;
    pRefValue    0;
}

pimpleFaSurfaceStructureSolverRelaxationFactors
{
    equations
    {
    }
    fields
    {
    }
}

simpleFaSurfaceStructureSolverRelaxationFactors
{
    equations
    {
        U  0.6;
    }
    fields
    {
        p  0.2;
    }
}

relaxationFactors
{
    ${${application}RelaxationFactors};
}

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