Numerical Conditions

Numerical Conditions are set in system/fvSolution and system/fvSchemes file.

Pressure-Velocity Coupling Scheme

Pressure-Velocity Coupling Scheme is set at consistent of SIMPLE and PIMPLE dictionary of system/fvSolution file.

no for SIMPLE, yes for SIMPLEC

SIMPLE
{
    consistent      <yes or no>;
    ...
}

Momentum Predictor

Momentum Predictor is set at the momentumPredictor of PIMPLE dictionary in the system/fvSolution file.

PIMPLE
{
    ...
    momentumPredictor   <on or off>;
    ...
}

Flux Type

Flux Type is set at Riemann dictionary in the system/fvSolution file. Riemann dictionary is used only for density based solver and as follows

Riemann
{
    fluxScheme      <roeFlux or AUSMplusFlux or AUSMplusUpFlux>;
    secondOrder     <yes or no>;
    reconGradScheme VKLimited Gauss linear 1;
    roeFluxCoeffs
    {
        epsilon     <value>;
    }
    AUSMplusUpFluxCoeffs
    {
        MInf        <value>;
    }
}

fluxScheme is roeFlux for Roe-FDS, AUSMplusFlux for AUSM, AUSMplusUpFlux for AUSM-up.

Entropy Fix Coefficient is set at epsilon of roeFluxCoeffs, Cut-off Mach Number is at MInf of AUSMplusUpFluxCoeffs.

Discretization Schemes

Time

Time is set at ddtSchemes dictionary in the system/fvSchemes file.

Euler for First Order Implicit , backward for Second Order Implicit

ddtSchemes
{
    default     <Euler or backward>;
}

Pressure

Pressure is set at interpolationSchemes dictionar in the system/fvSchemes file.

For Linear

interpolationSchemes
{
    default             linear;
    interpolate(p)      linear;
    interpolate(p_rgh)  linear;
}

For Momentum Weighted

interpolationSchemes
{
  default               linear;
  interpolate(p)        momentumWeighted;
  interpolate(p_rgh)    momentumWeighted;
}

For Momentum Weighted Reconstruct

interpolationSchemes
{
    default             linear;
    interpolate(p)      momentumWeightedReconstruct;
    interpolate(p_rgh)  momentumWeightedReconstruct;
}

Momentum, Energy, Turbulence, Volume Fraction

These are set in divSchemes dictionary in the system/fvSchemes file.

For First Order Upwind

divSchemes
{
    default             Gauss linear;
    div(phi,U)          Gauss upwind;
    div(rhoPhi,U)       Gauss upwind;
    div(phiNeg,U)       Gauss upwind;
    div(phiPos,U)       Gauss upwind;
    div(phi,k)          Gauss upwind;
    div(phi,epsilon)    Gauss upwind;
    div(phi,omega)      Gauss upwind;
    div(phi,nuTilda)    Gauss upwind;
    div(phi,alpha)      Gauss upwind;
    div(phirb,alpha)    Gauss upwind;
    div(phi,scalar)     Gauss upwind;
}

For Second Order Upwind

divSchemes
{
    default             Gauss linear;
    div(phi,U)          Gauss linearUpwind momentumReconGrad;
    div(rhoPhi,U)       Gauss linearUpwind momentumReconGrad;
    div(phiNeg,U)       Gauss MinmodV;
    div(phiPos,U)       Gauss MinmodV;
    div(phi,k)          Gauss linearUpwind turbulenceReconGrad;
    div(phi,epsilon)    Gauss linearUpwind turbulenceReconGrad;
    div(phi,omega)      Gauss linearUpwind turbulenceReconGrad;
    div(phi,nuTilda)    Gauss linearUpwind turbulenceReconGrad;
    div(phi,alpha)      Gauss vanLeer;
    div(phirb,alpha)    Gauss linear;
    div(phi,scalar)     Gauss linearUpwind momentumReconGrad;
}

For density based solver

Discretization scheme of Flow is set at Riemann dictionary in the system/fvSolution file. For ‘First Order Upwind’ secondOrder is no, otherwise yes

Riemann
{
    ...
    secondOrder     <yes or no>;
    ...
}

For turbulence same as pressure based solver.

Under-Relaxation Factors

Relaxation Factors is set at relaxationFactors dictionary in the system/fvSolution file.

Input values are set as follows

relaxationFactors
{
    fields
    {
        p           <value>;
        pFinal      <value>;
        p_rgh       <value>;
        p_rghFinal  <value>;
        rho         <value>;
        rhoFinal    <value>;
    }
    equations
    {
        U           <value>;
        UFinal      <value>;
        h           <value>;
        hFinal      <value>;
        "(k|epsilon|omega|nuTilda)"         <value>;
        "(k|epsilon|omega|nuTilda)Final"    <value>;
        alpha.waterLiquid       <value>;
        alpha.waterLiquidFinal  <value>;
        scalar                  <value>;
        scalarFinal             <value>;
    }
}

Improve Stability

Improve Stability option is set at laplacianSchemes dictionary in the system/fvSchemes file.

If option is Off

laplacianSchemes
{
    default     Gauss linear corrected;
}

If option is On

laplacianSchemes
{
    default     Gauss linear limited corrected 0.5;
}

If solver is density based, this option is not used and laplacianSchemes dictionary is same as option is off.

Max Iterations per Time Step, Number of Correctors

These are set at PIMPLE dictionary in the system/fvSolution file.

nOuterCorrectors for Max Iterations per Time Step, nCorrectors for Number of Correctors

PIMPLE
{
    ...
    nCorrectors                 <value>;
    nOuterCorrectors            <value>;
    ...
}

Multiphase

Multiphase related setups are set at solvers dictionary in the system/fvSolution file.

solvers
{
    ...
    "alpha.*"
    {
        ...
        nAlphaSubCycles     <value>;
        nAlphaCorr          <value>;
        MULESCorr           <yes or no>;
        cAlpha              <value>;
        nLimiterIter        <value>;
        ...
  }
    ...
}

nAlphaSubCycles for Max. Iteration per Time Step, nAlphaCorr for Number of Correctors

If MULES Variant is Explicit, MULESCorr is no, otherwise yes

Phase Interface Compression Factor is set at cAlpha.

Number of MULES iterations over the limiter is set at nLimiterIter.

Convergence Criteria

For pressure based solver convergence criteria is set at residualControl dictionary of SIMPLE and PIMPLE in the system/fvSolution file.

SIMPLE
{
    ...
    residualControl
    {
        p           <value>;
        p_rgh       <value>;
        U           <value>;
        h           <value>;
        "(k|epsilon|omega|nuTilda)" <value>;
        "alpha.*"   <value>;
    }
}

For transient, there are tolerance and relTol in residualControl dictionary. Inputs of Absolute are set for tolerance and inputs of Relative are set for relTol.

PIMPLE
{
    ...
    residualControl
    {
        ...
        p_rgh
        {
            tolerance       <value>;
            relTol          <value>;
        }
        U
        {
            tolerance       <value>;
            relTol          <value>;
        }
        ...
    }
}

For density based solver convergence criteria is set at LU-SGS dictionay in the system/fvSolution file.

LU-SGS
{
    residualControl
    {
        rho     0.001;
        rhoU    0.001;
        rhoE    0.001;
        "(k|epsilon|omega|nuTilda)" 0.001;
    }
}

Limits

limitT dictionary in the system/fvOptions file is used for limit temperature.

limitT
{
    type            limitTemperature;
    active          yes;
    selectionMode   all;
    min             1;
    max             5000;
}

Equations

In SIMPLE and PIMPLE dictionary in the system/fvSolution file, you can on/off equations of flow, energy and species.

SIMPLE // PIMPLE
{
    ...
    solveFlow                   <yes or no>;
    solveEnergy                 <yes or no>;
    solveSpecies                <yes or no>;
    ...
}

3 terms of energy equation as Viscous dissipation, Kinetic energy, Pressure Work can be of/off in the constant/thermophysicalProperties file.

includeViscousDissipation   <true of false>;
includeKineticEnergy        <true of false>;
includePressureWork         <true of false>;

Default numerical conditions

SIMPLE in fvSolution file

nNonOrthogonalCorrectors, pRefCell, pRefValue are fixed as 0.

SIMPLE
{
    ...
    nNonOrthogonalCorrectors    0;
    pRefCell                    0;
    pRefValue                   0;
    ...
}

PIMPLE in fvSolution file

turbOnFinalIterOnly is false. nAlphaSpreadIter and nAlphaSweepIter is 0, rDeltaTSmoothingCoeff and rDeltaTDampingCoeff is 0.5.

PIMPLE
{
    ...
    turbOnFinalIterOnly         false;
    nAlphaSpreadIter            0;
    nAlphaSweepIter             0;
    rDeltaTSmoothingCoeff       0.5;
    rDeltaTDampingCoeff         0.5;
    ...
}

solvers in fvSolution file

solvers dictionary is for matrix solver for each field.

solver and preconditioner are depend on field.

tolerance is fixed as 1e-16, relative tolerance(relTol) is 0.1, minimum iteration(minIter) is 1 and maximum iteration(maxIter) is 5 except volume fraction(alpha).

For alpha, tolerance is fixed as 1e-8, relTol is 0, minIter is 1 and maxIter is 10.

Pressure

p_rgh uses PCG solver and GAMG preconditioner.

solvers
{
    ...
    p_rgh
    {
        solver          PCG;
        preconditioner
        {
            preconditioner  GAMG;
            smoother        DIC;
            tolerance       1e-5;
            relTol          0.1;
        }
        tolerance       1e-16;
        relTol          0.1;
        minIter         1;
        maxIter         5;
    }
    ...
}

Velocity, turbulence, species, user defined scalar

U, k, epsilon, omega, nuTilda, scalar and Yi use PBiCGStab solver and DILU preconditioner.

solvers
{
    ...
    "(U|k|epsilon|omega|nuTilda|scalar|Yi)"
    {
        solver          PBiCGStab;
        preconditioner  DILU;
        tolerance       1e-16;
        relTol          0.1;
        minIter         1;
        maxIter         5;
  }
    ...
}

Energy

h uses PBiCGStab solver and GAMG preconditioner.

solvers
{
    ...
    h
    {
        solver          PBiCGStab;
        preconditioner
        {
            preconditioner  GAMG;
            smoother        DILU;
            tolerance       1e-5;
            relTol          0.1;
        }
        tolerance       1e-16;
        relTol          0.1;
        minIter         1;
        maxIter         5;
    }
    ...
}

Density

rho uses PCG solver and DIC preconditioner.

solvers
{
    ...
    rho
    {
        solver          PCG;
        preconditioner  DIC;
        tolerance       1e-16;
        relTol          0.1;
        minIter         1;
        maxIter         5;
    }
    ...
}

alpha.*

alpha uses smoothSolver solver and symGaussSeidel smoother.

icAlpha is fixed as 0 and alphaApplyPrevCorr is fixed as yes.

solvers
{
    ...
    "alpha.*"
    {
        solver              smoothSolver;
        smoother            symGaussSeidel;
        icAlpha             0;
        alphaApplyPrevCorr  yes;
        tolerance           1e-8;
        relTol              0;
        minIter             1;
        maxIter             10;
  }
    ...
}

fieldBounds in fvSolution file

fieldBounds is used only in density based solver for limit values as follows

fieldBounds
{
    p       1e-06   1e+10;
    rho     1e-06   1e+10;
    h       1e-06   1e+10;
    e       1e-06   1e+10;
    rhoE    1e-06   1e+10;
    T       1e-06   3e+4;
    U       3e+4;
}

gradSchemes in fvSchemes file

In pressure based solver always use Gauss linear. momentumReconGrad, energyReconGrad and turbulenceReconGrad are definition to use in divSchemes.

gradSchemes
{
    default             Gauss linear;
    momentumReconGrad   VKLimited Gauss linear 1.0;
    energyReconGrad     VKLimited Gauss linear 1.0;
    turbulenceReconGrad VKLimited Gauss linear 1.0;
}

In density based solver, always use conditions below

gradSchemes
{
    default         Gauss linear;
    grad(k)         VKLimited Gauss linear 0.5;
    grad(epsilon)   VKLimited Gauss linear 0.5;
    grad(omega)     VKLimited Gauss linear 0.5;
    grad(nuTilda)   VKLimited Gauss linear 0.5;
    reconGrad       VKLimited Gauss linear 0.5;
}

interpolationSchemes in fvSchemes file

In density based solver setup is fixed as follows

interpolationSchemes
{
    default             linear;
    interpolate(rho)    linearUpwind phi grad(rho);
}

snGradSchemes int fvSchemes file

Always use setup below

snGradSchemes
{
    default     corrected;
}