CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   OpenFOAM Running, Solving & CFD (https://www.cfd-online.com/Forums/openfoam-solving/)
-   -   convergence problem of steady 2D film cooling calculation using chtMultiRegionFoam (https://www.cfd-online.com/Forums/openfoam-solving/238153-convergence-problem-steady-2d-film-cooling-calculation-using-chtmultiregionfoam.html)

ruanyg968tf August 26, 2021 05:01

convergence problem of steady 2D film cooling calculation using chtMultiRegionFoam
 
4 Attachment(s)
Dear foamers,

I am trying to simulate a 2D steady conjugate heat transfer film cooling case by using chtMultiRegionFoam in OpenFOAM v7. The region and the boundaries was shown in the following picture.
Attachment 86033
Mesh was generated using blockMesh. Fluid properties of air was used in the calculation. For both the mainstream and coolant, the velocities and temperatures were given at the inlets, and pressure values were given at the outlets. I used kOmega model for turbulence modeling. Besides, I have used thin boundary mesh to simulate the boundary layer profile. So at the solid surface, I used low Reynolds wall function for nut and k fields. I used upwind scheme for spacial discretization, and I used steadyState for temporal discretization.

The boundary conditions and fvSchemes and fvSolution was shown below:

fluid/T:
Code:

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

dimensions      [0 0 0 1 0 0 0];

internalField  uniform 450;

boundaryField
{
    mainStreamInlet
    {
        type            fixedValue;
        value          uniform 450;
    }
    mainStreamOutlet
    {
        type            inletOutlet;
        inletValue      uniform 300;
        value          uniform 450;
    }
    mainStreamUpWall
    {
        type            zeroGradient;
    }
    coolantInlet
    {
        type            fixedValue;
        value          uniform 300;
    }
    coolantOutlet 
    {
        type            inletOutlet;
        inletValue      uniform 300;
        value          uniform 450;
    }
    coolantBottomWall
    {
        type            zeroGradient;
    }
    fluid_to_solid1
    {
        type            compressible::turbulentTemperatureCoupledBaffleMixed;
        kappaMethod    fluidThermo;
        kappa          kappa;
        Tnbr            T;
        value          $internalField;
    }
    fluid_to_solid2
    {
        type            compressible::turbulentTemperatureCoupledBaffleMixed;
        kappaMethod    fluidThermo;
        kappa          kappa;
        Tnbr            T;
        value          $internalField;
    }
    frontAndBack
    {
        type            empty;
    }
}


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

fluid/U:
Code:

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

dimensions      [0 1 -1 0 0 0 0];

internalField  uniform (60 0 0);

boundaryField
{
    mainStreamInlet
    {
        type            fixedValue;
        value          uniform (60 0 0);
    }
    mainStreamOutlet
    {
        type            pressureInletOutletVelocity;
        value          uniform (0 0 0);
    }
    mainStreamUpWall
    {
        type            noSlip;
    }
    coolantInlet
    {
        type            fixedValue;
        value          uniform (30 0 0);
    }
    coolantOutlet 
    {
        type            pressureInletOutletVelocity;
        value          uniform (0 0 0);
    }
    coolantBottomWall
    {
        type            noSlip;
    }
    fluid_to_solid1
    {
        type            noSlip;
    }
    fluid_to_solid2
    {
        type            noSlip;
    }
    frontAndBack
    {
        type            empty;
    }
}


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

fluid/p_rgh:
Code:

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

dimensions      [1 -1 -2 0 0 0 0];

internalField  uniform 101325;

boundaryField
{
    mainStreamInlet
    {
        type            fixedFluxPressure;
    }
    mainStreamOutlet
    {
        type            prghPressure;
        p              uniform 101325;
    }
    mainStreamUpWall
    {
        type            fixedFluxPressure;
    }
    coolantInlet
    {
        type            fixedFluxPressure;
    }
    coolantOutlet 
    {
        type            prghPressure;
        p              uniform 101325;
    }
    coolantBottomWall
    {
        type            fixedFluxPressure;
    }
    fluid_to_solid1
    {
        type            fixedFluxPressure;
    }
    fluid_to_solid2
    {
        type            fixedFluxPressure;
    }
    frontAndBack
    {
        type            empty;
    }
}


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

fluid/p:
Code:

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

dimensions      [1 -1 -2 0 0 0 0];

internalField  uniform 101325;

boundaryField
{
    ".*"
    {
        type            calculated;
        value          $internalField;
    }
    frontAndBack
    {
        type            empty;
    }
}


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

fluid/k:
Code:

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

dimensions      [0 2 -2 0 0 0 0];

internalField  uniform 1.215;

boundaryField
{
    mainStreamInlet
    {
        type            turbulentIntensityKineticEnergyInlet;
        intensity      0.015;
        value          uniform 1.215;
    }
    mainStreamOutlet
    {
        type            zeroGradient;
    }
    mainStreamUpWall
    {
        type            kLowReWallFunction;
        value          uniform 0;
    }
    coolantInlet
    {
        type            turbulentIntensityKineticEnergyInlet;
        intensity      0.02;
        value          uniform 0.54;
    }
    coolantOutlet 
    {
        type            zeroGradient;
    }
    coolantBottomWall
    {
        type            kLowReWallFunction;
        value          uniform 0;
    }
    fluid_to_solid1
    {
        type            kLowReWallFunction;
        value          uniform 0;
    }
    fluid_to_solid2
    {
        type            kLowReWallFunction;
        value          uniform 0;
    }
    frontAndBack
    {
        type            empty;
    }
}


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

fluid/omega:
Code:

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

dimensions      [0 0 -1 0 0 0 0];

internalField  uniform 402.492;

boundaryField
{
    mainStreamInlet
    {
        type            turbulentMixingLengthFrequencyInlet;
        mixingLength    0.005;
        value          uniform 402.492;
    }
    mainStreamOutlet
    {
        type            zeroGradient;
    }
    mainStreamUpWall
    {
        type            omegaWallFunction;
        value          $internalField;
    }
    coolantInlet
    {
        type            turbulentMixingLengthFrequencyInlet;
        mixingLength    0.005;
        value          $internalField;
    }
    coolantOutlet 
    {
        type            zeroGradient;
    }
    coolantBottomWall
    {
        type            omegaWallFunction;
        value          $internalField;
    }
    fluid_to_solid1
    {
        type            omegaWallFunction;
        value          $internalField;
    }
    fluid_to_solid2
    {
        type            omegaWallFunction;
        value          $internalField;
    }
    frontAndBack
    {
        type            empty;
    }
}


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

fluid/nut:
Code:

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

dimensions      [0 2 -1 0 0 0 0];

internalField  uniform 0;

boundaryField
{
    mainStreamInlet
    {
        type            calculated;
        value          $internalField;
    }
    mainStreamOutlet
    {
        type            calculated;
        value          $internalField;
    }
    mainStreamUpWall
    {
        type            nutLowReWallFunction;
        value          uniform 0;
    }
    coolantInlet
    {
        type            calculated;
        value          $internalField;
    }
    coolantOutlet 
    {
        type            calculated;
        value          $internalField;
    }
    coolantBottomWall
    {
        type            nutLowReWallFunction;
        value          uniform 0;
    }
    fluid_to_solid1
    {
        type            nutLowReWallFunction;
        value          uniform 0;
    }
    fluid_to_solid2
    {
        type            nutLowReWallFunction;
        value          uniform 0;
    }
    frontAndBack
    {
        type            empty;
    }
}


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

fluid/alphat:
Code:

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

dimensions      [1 -1 -1 0 0 0 0];

internalField  uniform 0;

boundaryField
{
    mainStreamInlet
    {
        type            calculated;
        value          $internalField;
    }
    mainStreamOutlet
    {
        type            calculated;
        value          $internalField;
    }
    mainStreamUpWall
    {
        type            compressible::alphatWallFunction;
        value          $internalField;
    }
    coolantInlet
    {
        type            calculated;
        value          $internalField;
    }
    coolantOutlet 
    {
        type            calculated;
        value          $internalField;
    }
    coolantBottomWall
    {
        type            compressible::alphatWallFunction;
        value          $internalField;
    }
    fluid_to_solid1
    {
        type            compressible::alphatWallFunction;
        value          $internalField;
    }
    fluid_to_solid2
    {
        type            compressible::alphatWallFunction;
        value          $internalField;
    }
    frontAndBack
    {
        type            empty;
    }
}


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

fluid/fvSchemes:
Code:

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

ddtSchemes
{
    default        steadyState;
}

gradSchemes
{
    default        Gauss skewCorrected linear corrected;
}

divSchemes
{
    default            none;

    div(phi,U)          Gauss skewCorrected upwind;
    div(phi,h)          Gauss skewCorrected upwind;
    div(phid,p_rgh)    Gauss skewCorrected upwind;
    div(phi,K)          Gauss skewCorrected upwind;

    div(phi,k)          Gauss skewCorrected upwind;       
    div(phi,epsilon)    Gauss skewCorrected upwind;
    div(phi,omega)      Gauss skewCorrected upwind;

    div(((rho*nuEff)*dev2(T(grad(U))))) Gauss skewCorrected linear;
}

laplacianSchemes
{
    default        Gauss skewCorrected linear corrected;
}

interpolationSchemes
{
    default        skewCorrected linear;
}

snGradSchemes
{
    default        corrected;
}


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

fluid/fvSolution:
Code:

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

solvers
{
    "rho.*"
    {
        solver          diagonal;
    }

    "p.*"
    {
        solver          PBiCGStab;
        preconditioner  DIC;
        // preconditioner  DILU;
        tolerance      1e-12;
        relTol          0;
    }

    "(U|e|h).*"
    {
        solver          PBiCGStab;
        preconditioner  DILU;
        tolerance      1e-9;
    }

    "(k|epsilon|omega).*"
    {
        solver          PBiCGStab;
        preconditioner  DILU;
        // solver          smoothSolver;
        // smoother        symGaussSeidel;
        tolerance      1e-10;
    }
}

PIMPLE
{
    nCorrectors      5;
    nNonOrthogonalCorrectors 3;
    momentumPredictor  yes;

    // transonic          yes;
    transonic          no;
    pMinFactor          0.1;
    pMaxFactor          2.0;
    residualControl
    {
        p_rgh              1e-6;
        h                  1e-6;
        U                  1e-6;
        "(k|epsilon|omega)" 1e-6;
    }
}

relaxationFactors
{
    fields
    {
        p_rgh          1.0;
        rho            0.3;
    }
    equations
    {
        U              0.7;
        h              0.5;
        k              0.5;
        omega          0.3;
    }
}

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

The residuals of the variables keeps fluctuating and finally get diverged. Besides, the pressure and temperature always hit the bounds during the calculation as shown in the following picture and snippet of the log file.

Attachment 86032

Code:

......

Time = 1


Solving for fluid region fluid
......

pressureControl: p max 416695
pressureControl: p min -753306


......

......

I have tried to change the discretization schemes to bounded version, however, the influence to the residual was limited. I also have tried to change the relaxation factors, but I could not find the proper combination that could stabilize the simulation. Do you know how to solve the problem? Any suggestions would be greatly appreciated. The case directory was attached at the end of the post, thanks.
Attachment 86034
Attachment 86035

prasad YVD April 10, 2024 02:23

Have you got the solution to this problem


All times are GMT -4. The time now is 21:07.