CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > Software User Forums > OpenFOAM > OpenFOAM Running, Solving & CFD

convergence problem of steady 2D film cooling calculation using chtMultiRegionFoam

Register Blogs Members List Search Today's Posts Mark Forums Read

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   August 26, 2021, 06:01
Default convergence problem of steady 2D film cooling calculation using chtMultiRegionFoam
  #1
New Member
 
Join Date: May 2020
Posts: 14
Rep Power: 4
ruanyg968tf is on a distinguished road
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.
regions.jpg
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.

residuals.png

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.
log.chtMultiRegionFoam.zip
filmCoolingM0.5_2D.zip
ruanyg968tf is offline   Reply With Quote

Reply

Tags
chtmultiregionfoam, convergence failure, filmcooling

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Solver for FIlm cooling problem arun1994 OpenFOAM Running, Solving & CFD 1 September 6, 2021 10:41
Film cooling problem arun1994 OpenFOAM 0 October 26, 2020 10:08
Why the convergence of a steady problem also need several time evolution steps ywem OpenFOAM Programming & Development 2 June 15, 2020 20:03
convergence problem of chtMultiRegionFoam in simulation of free convection sitajeje OpenFOAM Running, Solving & CFD 1 May 1, 2017 14:29
film cooling problem radu FLUENT 1 December 11, 2007 06:09


All times are GMT -4. The time now is 12:54.