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
|