Jurado |
December 7, 2020 08:50 |
Simulation of a chimney with heat in open atmosphere
5 Attachment(s)
Good afternoon,
I am an phd student in machine learning and CFD. I am trying to model a chimney in an neutral open atmosphere with hot areas on top of the chimney. However, I cannot get my head around it and all my trial have unfortunately failed.
I used the buoyantPimpleFoam from openFoam-6 from openFoam.org to try to simulate it. I think the issue reside in the boundary conditions, especially the ones for pressure and p_rgh. I initiate the pressure on the whole domain with a setField using the equation for isotherm atmosphere.
To present more precisely my case, here are some images to present it in the attached files
My simulation domain is a cube, with a face for :
Inlet
Two sides with symmetry
A groud
An outlet
A roof that I have tried as an outlet and symmetry, both failing
Because of the size of this simulation being too big, I have made a simplified case with a rectangular chimney that shows the same issues that I share in the attached files aswell as images of the geometry. there seem to be a problem at some point a vortex start to create itself behind the chimney and then the whole domain start to diverge
Here is also my 0 files:
Code:
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 2.2.0 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volVectorField;
object U;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#include "include/initialConditions"
dimensions [0 1 -1 0 0 0 0];
internalField uniform (1 0 0);
boundaryField
{
// inlet air
inletAir
{
type atmBoundaryLayerInletVelocity;
#include "include/ABLConditionsInlet"
}
// symmetry
symmetryRight
{
type symmetry;
}
symmetryLeft
{
type symmetry;
}
// solid surface
wallGround
{
type uniformFixedValue;
uniformValue (0 0 0);
value uniform (0 0 0);
}
chimney
{
type uniformFixedValue;
uniformValue (0 0 0);
value uniform (0 0 0);
}
hot_area
{
type uniformFixedValue;
uniformValue (0 0 2);
value uniform (0 0 2);
}
// outlet
symmetryRoof
{
type symmetry;
//type freestreamVelocity;
//freestreamValue uniform (3.15251 0 0);
}
outletPolAir
{
type freestreamVelocity;
freestreamValue uniform (1 0 0);
}
}
// ************************************************************************* //
Code:
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: 6
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "0";
object T;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 1 0 0 0];
internalField uniform 293;
boundaryField
{
// inlet air
inletAir
{
type fixedValue;
value uniform 293;
}
// symmetry
symmetryRight
{
type symmetry;
}
symmetryLeft
{
type symmetry;
}
// solid surface
wallGround
{
type fixedValue;
value uniform 293;
}
chimney
{
type zeroGradient;
}
hot_area
{
type fixedValue;
value uniform 343;
}
// outlet
symmetryRoof
{
type symmetry;
// type fixedValue;
// value uniform 293;
}
outletPolAir
{
type zeroGradient;
}
}
// ************************************************************************* //
Code:
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: 6
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "0";
object p_rgh;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [1 -1 -2 0 0 0 0];
internalField uniform 101325;
boundaryField
{
// inlet air
inletAir
{
type zeroGradient;
}
// symmetry
symmetryRight
{
type symmetry;
}
symmetryLeft
{
type symmetry;
}
// solid surface
wallGround
{
type zeroGradient;
}
chimney
{
type zeroGradient;
}
hot_area
{
type zeroGradient;
}
// outlet
symmetryRoof
{
type symmetry;
// type fixedValue;
// value uniform 101203;
}
outletPolAir
{
type fixedFluxPressure;
}
}
// ************************************************************************* //
Code:
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 2.3.0 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
object p;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [1 -1 -2 0 0 0 0];
internalField uniform 101325;
boundaryField
{
// inlet air
inletAir
{
type zeroGradient;
}
// symmetry
symmetryRight
{
type symmetry;
}
symmetryLeft
{
type symmetry;
}
// solid surface
wallGround
{
type zeroGradient;
}
hot_area
{
type zeroGradient;
}
chimney
{
type zeroGradient;
}
// outlet
outletPolAir
{
type calculated;
value 101325;
}
symmetryRoof
{
type symmetry;
// type calculated;
// value 95696.491;
}
}
// ************************************************************************* //
Code:
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 2.2.0 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "0";
object nut;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 2 -1 0 0 0 0];
internalField uniform 0;
boundaryField
{
#include "include/ABLConditionsDomain"
// symmetry
symmetryRight
{
type symmetry;
}
symmetryLeft
{
type symmetry;
}
symmetryRoof
{
type symmetry;
}
// solid surface
wallGround
{
type nutkAtmRoughWallFunction;
z0 $z0Ground;
value uniform 0.0;
}
chimney
{
type nutkWallFunction;
value uniform 0;
}
hot_area
{
type nutkWallFunction;
value uniform 0;
}
// inlet and outlet
".*"
{
type calculated;
value uniform 0;
}
}
// ************************************************************************* //
Code:
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 2.2.0 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "0";
object k;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#include "include/initialConditions"
dimensions [0 2 -2 0 0 0 0];
internalField uniform $turbulentKE;
boundaryField
{
// inlet air
inletAir
{
type atmBoundaryLayerInletK;
#include "include/ABLConditionsInlet"
}
// symmetry
symmetryRight
{
type symmetry;
}
symmetryLeft
{
type symmetry;
}
symmetryRoof
{
type symmetry;
}
// solid surface
wallGround
{
type kqRWallFunction;
value uniform 0.0;
}
chimney
{
type kqRWallFunction;
value $internalField;
}
hot_area
{
type kqRWallFunction;
value $internalField;
}
// outlet
".*"
{
type inletOutlet;
inletValue uniform $turbulentKE;
value $internalField;
}
}
// ************************************************************************* //
Code:
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 2.3.1 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "0";
object epsilon;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 2 -3 0 0 0 0];
#include "include/initialConditions"
internalField uniform $turbulentEpsilon;
boundaryField
{
// inlet air
inletAir
{
type atmBoundaryLayerInletEpsilon;
#include "include/ABLConditionsInlet"
}
// symmetry
symmetryRight
{
type symmetry;
}
symmetryLeft
{
type symmetry;
}
symmetryRoof
{
type symmetry;
}
// solid surface
wallGround
{
type epsilonWallFunction;
Cmu 0.09;
kappa 0.4;
E 9.8;
value $internalField;
}
chimney
{
type epsilonWallFunction;
value $internalField;
}
hot_area
{
type epsilonWallFunction;
value $internalField;
}
// outlet
".*"
{
type inletOutlet;
inletValue uniform $turbulentEpsilon;
value $internalField;
}
}
// ************************************************************************* //
Code:
/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: 6
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "0";
object alphat;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [1 -1 -1 0 0 0 0];
internalField uniform 0;
boundaryField
{
// inlet air
inletAir
{
type calculated;
value uniform 0;
}
// symmetry
symmetryRight
{
type symmetry;
}
symmetryLeft
{
type symmetry;
}
// solid surface
wallGround
{
type compressible::alphatWallFunction;
value uniform 0;
}
chimney
{
type compressible::alphatWallFunction;
value uniform 0;
}
hot_area
{
type compressible::alphatWallFunction;
value uniform 0;
}
// outlet
symmetryRoof
{
type symmetry;
// type calculated;
// value uniform 0;
}
outletPolAir
{
type calculated;
value uniform 0;
}
}
// ************************************************************************* //
For the includes:
Code:
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 5 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
flowVelocity (1 0 0);
pressure 0;
turbulentKE 1.3602E-01;
turbulentEpsilon 9.3257E-04;
// ************************************************************************* //
Code:
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 5 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
Uref 3.15251;
Zref 300;
zDir (0 0 1);
flowDir (1 0 0);
z0 0.5;
zGround 0;
value $internalField;
// ************************************************************************* //
Code:
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 5 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
z0Ground uniform 0.1;
z0Block uniform 0.01;
// ************************************************************************* //
|