TUT: airRecirculationRoom: add new reactingParcelFoam tutorial

This commit is contained in:
Kutalmis Bercin 2020-12-10 17:43:01 +00:00 committed by Andrew Heather
parent 5af5222141
commit 12efbd8965
53 changed files with 3330 additions and 0 deletions

View File

@ -0,0 +1,9 @@
#!/bin/sh
cd "${0%/*}" || exit # Run from this directory
#------------------------------------------------------------------------------
(cd steady && ./Allclean)
(cd transient && ./Allclean)
#------------------------------------------------------------------------------

View File

@ -0,0 +1,10 @@
#!/bin/sh
cd "${0%/*}" || exit # Run from this directory
. ${WM_PROJECT_DIR:?}/bin/tools/RunFunctions # Tutorial run functions
#------------------------------------------------------------------------------
(cd steady && ./Allrun-parallel)
(cd transient && ./Allrun-parallel)
#------------------------------------------------------------------------------

View File

@ -0,0 +1,71 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2011 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
object T;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 1 0 0 0];
internalField uniform 293;
boundaryField
{
"(roof|floor|sideWall)"
{
type zeroGradient;
}
humanBody
{
type externalWallHeatFluxTemperature;
mode flux;
q uniform 58; // W/m^2
value uniform 310;
kappaMethod fluidThermo;
kappa none;
Qr none;
}
inlet
{
type fixedValue;
value uniform 293;
}
mouth
{
type fixedValue;
value uniform 310;
}
outlet
{
type inletOutlet;
value $internalField;
inletValue $internalField;
}
"(intake1|intake2|intake3|intake4)"
{
type zeroGradient;
}
"(exhaust_maxX|exhaust_minX|exhaust_maxY|exhaust_minY)"
{
type fixedValue;
value uniform 293;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,59 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2011 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volVectorField;
object U;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 1 -1 0 0 0 0];
internalField uniform (0 0 0);
boundaryField
{
"(roof|floor|sideWall|humanBody)"
{
type fixedValue;
value uniform (0 0 0);
}
inlet
{
type surfaceNormalFixedValue;
refValue uniform -1;
}
outlet
{
type zeroGradient;
}
mouth
{
type surfaceNormalFixedValue;
refValue uniform -4;
}
"(intake1|intake2|intake3|intake4)"
{
type zeroGradient;
}
"(exhaust_maxX|exhaust_minX|exhaust_maxY|exhaust_minY)"
{
type surfaceNormalFixedValue;
refValue uniform -2;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,49 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2011 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
object alphat;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [1 -1 -1 0 0 0 0];
internalField uniform 0;
boundaryField
{
"(roof|floor|sideWall|humanBody)"
{
type compressible::alphatWallFunction;
value uniform 0;
}
"(inlet|mouth|outlet)"
{
type calculated;
value $internalField;
}
"(intake1|intake2|intake3|intake4)"
{
type calculated;
value $internalField;
}
"(exhaust_maxX|exhaust_minX|exhaust_maxY|exhaust_minY)"
{
type calculated;
value $internalField;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,53 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2011 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
object k;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 2 -2 0 0 0 0];
internalField uniform 0.0938;
boundaryField
{
"(roof|floor|sideWall|humanBody)"
{
type kqRWallFunction;
value $internalField;
}
"(inlet|mouth)"
{
type fixedValue;
value $internalField;
}
outlet
{
type zeroGradient;
}
"(intake1|intake2|intake3|intake4)"
{
type zeroGradient;
}
"(exhaust_maxX|exhaust_minX|exhaust_maxY|exhaust_minY)"
{
type fixedValue;
value $internalField;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,55 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2011 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
object nut;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 2 -1 0 0 0 0];
internalField uniform 0;
boundaryField
{
"(roof|floor|sideWall|humanBody)"
{
type nutkWallFunction;
value $internalField;
}
"(inlet|mouth)"
{
type calculated;
value $internalField;
}
outlet
{
type calculated;
value $internalField;
}
"(intake1|intake2|intake3|intake4)"
{
type calculated;
value $internalField;
}
"(exhaust_maxX|exhaust_minX|exhaust_maxY|exhaust_minY)"
{
type calculated;
value $internalField;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,57 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2011 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
object omega;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 -1 0 0 0 0];
internalField uniform 100;
boundaryField
{
"(roof|floor|sideWall|humanBody)"
{
type omegaWallFunction;
value $internalField;
}
"(inlet|mouth)"
{
type fixedValue;
value $internalField;
}
outlet
{
type inletOutlet;
inletValue $internalField;
value $internalField;
}
"(intake1|intake2|intake3|intake4)"
{
type inletOutlet;
inletValue uniform 0.223607;
value uniform 0.223607;
}
"(exhaust_maxX|exhaust_minX|exhaust_maxY|exhaust_minY)"
{
type fixedValue;
value uniform 0.223607;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,52 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2011 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
object p_rgh;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [1 -1 -2 0 0 0 0];
internalField uniform 101325;
boundaryField
{
"(roof|floor|sideWall|humanBody)"
{
type zeroGradient;
}
"(inlet|mouth)"
{
type zeroGradient;
}
outlet
{
type fixedValue;
value $internalField;
}
"(intake1|intake2|intake3|intake4)"
{
type fixedValue;
value $internalField;
}
"(exhaust_maxX|exhaust_minX|exhaust_maxY|exhaust_minY)"
{
type zeroGradient;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,11 @@
#!/bin/sh
cd "${0%/*}" || exit # Run from this directory
. ${WM_PROJECT_DIR:?}/bin/tools/CleanFunctions # Tutorial clean functions
#------------------------------------------------------------------------------
cleanCase0
rm -rf constant/triSurface
rm -rf constant/extendedFeatureEdgeMesh
#------------------------------------------------------------------------------

View File

@ -0,0 +1,14 @@
#!/bin/sh
cd "${0%/*}" || exit # Run from this directory
. ${WM_PROJECT_DIR:?}/bin/tools/RunFunctions # Tutorial run functions
#------------------------------------------------------------------------------
[[ -d constant/polyMesh ]] || runApplication ./Allrun.pre
runApplication decomposePar
runParallel $(getApplication)
runApplication reconstructPar -latestTime
#------------------------------------------------------------------------------

View File

@ -0,0 +1,19 @@
#!/bin/sh
cd "${0%/*}" || exit # Run from this directory
. ${WM_PROJECT_DIR:?}/bin/tools/RunFunctions # Tutorial run functions
#------------------------------------------------------------------------------
restore0Dir
runApplication blockMesh
mkdir -p constant/triSurface
cp -f "$FOAM_TUTORIALS"/resources/geometry/roomRecirculation.stl.gz \
constant/triSurface
runApplication surfaceFeatureExtract
runApplication snappyHexMesh -overwrite
#------------------------------------------------------------------------------

View File

@ -0,0 +1,26 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2011 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object fvOptions;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
limitT
{
type limitTemperature;
min 101;
max 313; // no more than 40 celsius inside the room
selectionMode all;
}
// ************************************************************************* //

View File

@ -0,0 +1,22 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2011 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class uniformDimensionedVectorField;
object g;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 1 -2 0 0 0 0];
value (0 0 -9.81);
// ************************************************************************* //

View File

@ -0,0 +1,55 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2011 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object thermophysicalProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
thermoType
{
type heRhoThermo;
mixture pureMixture;
transport const;
thermo hConst;
equationOfState Boussinesq;
specie specie;
energy sensibleInternalEnergy;
}
mixture
{
specie
{
molWeight 28.9;
}
thermodynamics
{
Cp 1007;
Hf 0;
}
transport
{
mu 1.84e-05;
Pr 0.7;
}
equationOfState
{
rho0 1;
T0 298;
beta 0.0034; // thermal expansion coefficient of air
// at normal standard conditions of 25 degree Celsius or 298 Kelvin
// thermal expansion coefficient of air is said to be around 0.0034/K
}
}
// ************************************************************************* //

View File

@ -0,0 +1,28 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2011 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object turbulenceProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
simulationType RAS;
RAS
{
RASModel kOmegaSST;
turbulence on;
printCoeffs on;
}
// ************************************************************************* //

View File

@ -0,0 +1,93 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2011 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object blockMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
scale 1;
vertices
(
( -0.4 -0.4 -0.3 )
( 4.4 -0.4 -0.3 )
( 4.4 4.4 -0.3 )
( -0.4 4.4 -0.3 )
( -0.4 -0.4 3.3 )
( 4.4 -0.4 3.3 )
( 4.4 4.4 3.3 )
( -0.4 4.4 3.3 )
);
blocks
(
hex (0 1 2 3 4 5 6 7) ( 48 48 35 ) simpleGrading ( 1 1 1 )
);
edges
(
);
boundary
(
XMin
{
type patch;
faces
(
(0 4 7 3)
);
}
XMax
{
type patch;
faces
(
(1 2 6 5)
);
}
YMin
{
type patch;
faces
(
(0 1 5 4)
);
}
YMax
{
type patch;
faces
(
(3 7 6 2)
);
}
ZMin
{
type patch;
faces
(
(0 3 2 1)
);
}
ZMax
{
type patch;
faces
(
(4 5 6 7)
);
}
);
// ************************************************************************* //

View File

@ -0,0 +1,66 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2011 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object controlDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
application rhoSimpleFoam;
startFrom latestTime;
startTime 0;
stopAt endTime;
endTime 500;
deltaT 1;
writeControl timeStep;
writeInterval 10;
purgeWrite 2;
writeFormat ascii;
writePrecision 10;
writeCompression off;
timeFormat general;
timePrecision 10;
runTimeModifiable true;
maxCo 1;
maxDeltaT 1;
functions
{
fieldMinMax
{
type fieldMinMax;
functionObjectLibs (fieldFunctionObjects);
fields ( U p T);
mode magnitude;
writeControl timeStep;
writeInterval 1;
log yes;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,22 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2011 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object decomposeParDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
numberOfSubdomains 10;
method scotch;
// ************************************************************************* //

View File

@ -0,0 +1,70 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2011 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object fvSchemes;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
ddtSchemes
{
default steadyState;
}
gradSchemes
{
default cellLimited Gauss linear 1;
}
divSchemes
{
default none;
div(phi,U) bounded Gauss linearUpwind limited;
turbulence bounded Gauss upwind;
energy bounded Gauss limitedLinear 1.0;
div(phi,k) $turbulence;
div(phi,omega) $turbulence;
div(phi,e) $energy;
div(phi,K) $energy;
div(phi,Ekp) $energy;
div(phid,p) Gauss linear;
div((phi|interpolate(rho)),p) bounded Gauss upwind;
div(((rho*nuEff)*dev2(T(grad(U))))) Gauss linear;
}
laplacianSchemes
{
default Gauss linear limited 0.333;
}
interpolationSchemes
{
default linear;
}
snGradSchemes
{
default limited 0.333;
}
wallDist
{
method meshWave;
}
// ************************************************************************* //

View File

@ -0,0 +1,106 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2011 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object fvSolution;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
solvers
{
p
{
solver GAMG;
agglomerator faceAreaPair;
mergeLevels 1;
cacheAgglomeration true;
nCellsInCoarsestLevel 200;
tolerance 1e-12;
relTol 0.001;
smoother GaussSeidel;
nPreSweeps 0;
nPostSweeps 2;
nFinestSweeps 2;
nVcycles 1;
minIter 1;
}
U
{
solver PBiCGStab;
preconditioner DILU;
tolerance 1e-7;
relTol 0.01;
}
k
{
solver PBiCGStab;
preconditioner DILU;
tolerance 1e-7;
relTol 0.01;
}
omega
{
solver PBiCGStab;
preconditioner DILU;
tolerance 1e-7;
relTol 0.01;
}
e
{
solver PBiCGStab;
preconditioner DILU;
tolerance 1e-4;
relTol 0.1;
}
Phi
{
$p;
}
}
SIMPLE
{
residualControl
{
p 1e-3;
U 1e-3;
k 1e-3;
omega 1e-3;
e 1e-3;
}
nNonOrthogonalCorrectors 0;
pMinFactor 0.1;
pMaxFactor 2;
}
relaxationFactors
{
fields
{
p 0.7;
rho 0.01;
}
equations
{
U 0.3;
e 0.1;
"(k|omega)" 0.7;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,330 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2011 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object snappyHexMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
castellatedMesh true;
snap true;
addLayers false;
geometry
{
roomRecirculation.stl
{
type triSurfaceMesh;
name roomRecirculation ;
regions
{
inlet
{
name inlet;
}
outlet
{
name outlet;
}
roof
{
name roof;
}
floor
{
name floor;
}
sideWall
{
name sideWall;
}
humanBody
{
name humanBody;
}
mouth
{
name mouth;
}
// additional recirculation patches
intake1
{
name intake1;
}
intake2
{
name intake2;
}
intake3
{
name intake3;
}
intake4
{
name intake4;
}
exhaust_maxX
{
name exhaust_maxX;
}
exhaust_minX
{
name exhaust_minX;
}
exhaust_maxY
{
name exhaust_maxY;
}
exhaust_minY
{
name exhaust_minY;
}
}
}
};
castellatedMeshControls
{
maxLocalCells 200000000;
maxGlobalCells 300000000;
minRefinementCells 20;
nCellsBetweenLevels 4;
maxLoadUnbalance 0.1;
allowFreeStandingZoneFaces true;
resolveFeatureAngle 30;
features
(
{
file "roomRecirculation.eMesh" ;
level 0 ;
}
);
refinementSurfaces
{
roomRecirculation
{
level (0 0);
regions
{
inlet
{
level (3 3);
patchInfo
{
type patch;
}
}
outlet
{
level (3 3);
patchInfo
{
type patch;
}
}
roof
{
level (1 1);
patchInfo
{
type wall;
}
}
floor
{
level (1 1);
patchInfo
{
type wall;
}
}
sideWall
{
level (1 1);
patchInfo
{
type wall;
}
}
humanBody
{
level (4 4);
patchInfo
{
type wall;
}
}
mouth
{
level (4 4);
patchInfo
{
type patch;
}
}
intake1
{
level (3 3);
patchInfo
{
type patch;
}
}
intake2
{
level (3 3);
patchInfo
{
type patch;
}
}
intake3
{
level (3 3);
patchInfo
{
type patch;
}
}
intake4
{
level (3 3);
patchInfo
{
type patch;
}
}
exhaust_maxX
{
level (3 3);
patchInfo
{
type patch;
}
}
exhaust_minX
{
level (3 3);
patchInfo
{
type patch;
}
}
exhaust_maxY
{
level (3 3);
patchInfo
{
type patch;
}
}
exhaust_minY
{
level (3 3);
patchInfo
{
type patch;
}
}
}
}
}
refinementRegions
{
}
locationInMesh ( 2 2 1.5 ) ;
}
snapControls
{
tolerance 2;
implicitFeatureSnap false;
explicitFeatureSnap true;
multiRegionFeatureSnap true;
detectNearSurfacesSnap true;
nSmoothPatch 3;
nSolveIter 50;
nRelaxIter 5;
nFeatureSnapIter 10;
nSmoothInternal 3;
nFaceSplitInterval -1;
}
addLayersControls
{
layers
{
}
relativeSizes true ;
expansionRatio 1.2 ;
firstLayerThickness 0.1 ;
featureAngle 180;
slipFeatureAngle 30;
nGrow 0;
nBufferCellsNoExtrude 0;
minMedianAxisAngle 90;
maxFaceThicknessRatio 0.2;
maxThicknessToMedialRatio 0.3;
minThickness 1e-06;
nLayerIter 50;
nRelaxIter 5;
nSmoothSurfaceNormals 10;
nSmoothNormals 3;
nSmoothThickness 10;
nRelaxedIter 10;
nMedialAxisIter 10;
}
meshQualityControls
{
minVol 1e-13;
minTetQuality 1e-16;
minArea 1e-13;
minTwist 0.05;
minDeterminant 1e-06;
minFaceWeight 0.02;
minVolRatio 0.01;
minTriangleTwist -1;
minFlatness 0.5;
maxNonOrtho 70;
maxBoundarySkewness 20;
maxInternalSkewness 4;
maxConcave 80;
nSmoothScale 4;
errorReduction 0.75;
relaxed
{
minVol 1e-30;
minTetQuality 1e-30;
minArea 1e-30;
minTwist 0.001;
minDeterminant 1e-06;
minFaceWeight 1e-06;
minVolRatio 0.01;
minTriangleTwist -1;
minFlatness 0.5;
maxNonOrtho 75;
maxBoundarySkewness 20;
maxInternalSkewness 8;
maxConcave 80;
nSmoothScale 4;
errorReduction 0.75;
}
}
mergeTolerance 1e-07;
debug 0;
// ************************************************************************* //

View File

@ -0,0 +1,29 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2011 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object surfaceFeatureExtractDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
roomRecirculation.stl
{
extractionMethod extractFromSurface;
writeObj yes;
extractFromSurfaceCoeffs
{
includedAngle 150;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,65 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2011 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
object CO2;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
//How to convert from ppm to % in the air?
//https://www.rapidtables.com/convert/number/PPM_to_Percent.html
// 1% = 1/100
// 1ppm = 1/1000000
// hence
// 1ppm = 0.0001%
dimensions [0 0 0 0 0 0 0];
internalField uniform 0.0004; // 400ppm => 0.04% => 0.0004
boundaryField
{
"(roof|floor|sideWall|humanBody)"
{
type zeroGradient;
}
inlet
{
type fixedValue;
value $internalField;
}
mouth
{
type fixedValue;
value uniform 0.001; // 1000ppm => 0.1% => 0.001;
}
outlet
{
type zeroGradient;
}
"(intake1|intake2|intake3|intake4)"
{
type zeroGradient;
}
"(exhaust_maxX|exhaust_minX|exhaust_maxY|exhaust_minY)"
{
type fixedValue;
value $internalField;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,68 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2011 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
object G;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [1 0 -3 0 0 0 0];
internalField uniform 0;
boundaryField
{
"(roof|floor|sideWall|humanBody)"
{
type MarshakRadiation;
emissivityMode lookup;
emissivity uniform 1;
value uniform 0;
refValue uniform 0;
refGradient uniform 0;
valueFraction uniform 0;
}
"(inlet|mouth)"
{
type MarshakRadiation;
emissivityMode lookup;
emissivity uniform 1;
value uniform 0;
refValue uniform 0;
refGradient uniform 0;
valueFraction uniform 0;
}
outlet
{
type zeroGradient;
}
"(intake1|intake2|intake3|intake4)"
{
type zeroGradient;
}
"(exhaust_maxX|exhaust_minX|exhaust_maxY|exhaust_minY)"
{
type MarshakRadiation;
emissivityMode lookup;
emissivity uniform 1;
value uniform 0;
refValue uniform 0;
refGradient uniform 0;
valueFraction uniform 0;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,84 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2011 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
object H2O;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
internalField uniform 0;
boundaryField
{
"(roof|floor|sideWall|humanBody)"
{
type zeroGradient;
}
inlet
{
type fixedValue;
value uniform 0.5; // relative humidity 50%
}
mouth
{
type fixedValue;
value uniform 1; // relative humidity 100%
}
outlet
{
type zeroGradient;
}
"(intake1|intake2|intake3|intake4)"
{
type zeroGradient;
}
exhaust_maxX
{
type outletMappedUniformInlet;
outletPatch intake3;
fraction 0.95; // 5% filtering
value $internalField;
}
exhaust_minX
{
type outletMappedUniformInlet;
outletPatch intake1;
fraction 0.95;
value $internalField;
}
exhaust_maxY
{
type outletMappedUniformInlet;
outletPatch intake4;
fraction 0.95;
value $internalField;
}
exhaust_minY
{
type outletMappedUniformInlet;
outletPatch intake2;
fraction 0.95;
value $internalField;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,78 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2011 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
object N2;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
internalField uniform 0.79;
boundaryField
{
"(roof|floor|sideWall|humanBody)"
{
type zeroGradient;
}
"(inlet|mouth)"
{
type fixedValue;
value $internalField;
}
outlet
{
type zeroGradient;
}
"(intake1|intake2|intake3|intake4)"
{
type zeroGradient;
}
exhaust_maxX
{
type outletMappedUniformInlet;
outletPatch intake3;
fraction 0.95; // 5% filtering
value $internalField;
}
exhaust_minX
{
type outletMappedUniformInlet;
outletPatch intake1;
fraction 0.95;
value $internalField;
}
exhaust_maxY
{
type outletMappedUniformInlet;
outletPatch intake4;
fraction 0.95;
value $internalField;
}
exhaust_minY
{
type outletMappedUniformInlet;
outletPatch intake2;
fraction 0.95;
value $internalField;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,84 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2011 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
object O2;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
internalField uniform 0.21;
boundaryField
{
"(roof|floor|sideWall|humanBody)"
{
type zeroGradient;
}
"(inlet|mouth)"
{
type fixedValue;
value $internalField;
}
mouth
{
type fixedValue;
value $internalField;
}
outlet
{
type zeroGradient;
}
"(intake1|intake2|intake3|intake4)"
{
type zeroGradient;
}
exhaust_maxX
{
type outletMappedUniformInlet;
outletPatch intake3;
fraction 0.95; // 5% filtering
value $internalField;
}
exhaust_minX
{
type outletMappedUniformInlet;
outletPatch intake1;
fraction 0.95;
value $internalField;
}
exhaust_maxY
{
type outletMappedUniformInlet;
outletPatch intake4;
fraction 0.95;
value $internalField;
}
exhaust_minY
{
type outletMappedUniformInlet;
outletPatch intake2;
fraction 0.95;
value $internalField;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,96 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2011 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
object T;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 1 0 0 0];
internalField uniform 293;
boundaryField
{
"(roof|floor|sideWall)"
{
type fixedValue;
value uniform 297;
}
humanBody
{
type externalWallHeatFluxTemperature;
mode flux;
q uniform 58; // W/m^2
value uniform 310;
kappaMethod fluidThermo;
kappa none;
Qr none;
}
inlet
{
type fixedValue;
value uniform 293;
}
mouth
{
type fixedValue;
value uniform 310;
}
outlet
{
type zeroGradient;
}
"(intake1|intake2|intake3|intake4)"
{
type zeroGradient;
}
exhaust_maxX
{
type outletMappedUniformInlet;
outletPatch intake3;
offset 20;
value $internalField;
}
exhaust_minX
{
type outletMappedUniformInlet;
outletPatch intake1;
offset 20;
value $internalField;
}
exhaust_maxY
{
type outletMappedUniformInlet;
outletPatch intake4;
offset 20;
value $internalField;
}
exhaust_minY
{
type outletMappedUniformInlet;
outletPatch intake2;
offset 20;
value $internalField;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,49 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2011 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
object alphat;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [1 -1 -1 0 0 0 0];
internalField uniform 0;
boundaryField
{
"(roof|floor|sideWall|humanBody)"
{
type compressible::alphatWallFunction;
value uniform 0;
}
"(inlet|mouth|outlet)"
{
type calculated;
value $internalField;
}
"(intake1|intake2|intake3|intake4)"
{
type calculated;
value $internalField;
}
"(exhaust_maxX|exhaust_minX|exhaust_maxY|exhaust_minY)"
{
type calculated;
value $internalField;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,52 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2011 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
object k;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 2 -2 0 0 0 0];
internalField uniform 0.0938;
boundaryField
{
"(roof|floor|sideWall|humanBody)"
{
type kqRWallFunction;
value $internalField;
}
"(inlet|mouth)"
{
type fixedValue;
value $internalField;
}
outlet
{
type zeroGradient;
}
"(intake1|intake2|intake3|intake4)"
{
type zeroGradient;
}
"(exhaust_maxX|exhaust_minX|exhaust_maxY|exhaust_minY)"
{
type fixedValue;
value $internalField;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,49 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2011 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
object nut;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 2 -1 0 0 0 0];
internalField uniform 0;
boundaryField
{
"(roof|floor|sideWall|humanBody)"
{
type nutkWallFunction;
value $internalField;
}
"(inlet|mouth|outlet)"
{
type calculated;
value $internalField;
}
"(intake1|intake2|intake3|intake4)"
{
type calculated;
value $internalField;
}
"(exhaust_maxX|exhaust_minX|exhaust_maxY|exhaust_minY)"
{
type calculated;
value $internalField;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,62 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2011 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
object omega;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 -1 0 0 0 0];
internalField uniform 0.223607;
boundaryField
{
"(roof|floor|sideWall|humanBody)"
{
type omegaWallFunction;
value $internalField;
}
inlet
{
type fixedValue;
value uniform 0.223607;
}
outlet
{
type inletOutlet;
inletValue uniform 0.223607;
value uniform 0.223607;
}
mouth
{
type fixedValue;
value uniform 0.894427;
}
"(intake1|intake2|intake3|intake4)"
{
type inletOutlet;
inletValue uniform 0.223607;
value uniform 0.223607;
}
"(exhaust_maxX|exhaust_minX|exhaust_maxY|exhaust_minY)"
{
type fixedValue;
value uniform 0.223607;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,58 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2011 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
object p_rgh;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [1 -1 -2 0 0 0 0];
internalField uniform 0;
boundaryField
{
"(roof|floor|sideWall|humanBody)"
{
type fixedFluxPressure;
value $internalField;
}
inlet
{
type fixedFluxPressure;
}
mouth
{
type fixedFluxPressure;
}
outlet
{
type prghPressure;
p $internalField;
}
"(intake1|intake2|intake3|intake4)"
{
type prghPressure;
p $internalField;
}
"(exhaust_maxX|exhaust_minX|exhaust_maxY|exhaust_minY)"
{
type fixedFluxPressure;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,8 @@
#!/bin/sh
cd "${0%/*}" || exit # Run from this directory
. ${WM_PROJECT_DIR:?}/bin/tools/CleanFunctions # Tutorial clean functions
#------------------------------------------------------------------------------
cleanCase0
#------------------------------------------------------------------------------

View File

@ -0,0 +1,17 @@
#!/bin/sh
cd "${0%/*}" || exit # Run from this directory
. ${WM_PROJECT_DIR:?}/bin/tools/RunFunctions # Tutorial run functions
#------------------------------------------------------------------------------
[[ -d constant/polyMesh ]] || rm -rf constant/polyMesh
cp -rf ../steady/constant/polyMesh constant
restore0Dir
cp -f ../steady/500/U 0/
cp -f ../steady/500/p 0/
runApplication $(getApplication)
#------------------------------------------------------------------------------

View File

@ -0,0 +1,19 @@
#!/bin/sh
cd "${0%/*}" || exit # Run from this directory
. ${WM_PROJECT_DIR:?}/bin/tools/RunFunctions # Tutorial run functions
#------------------------------------------------------------------------------
[[ -d constant/polyMesh ]] || rm -rf constant/polyMesh
cp -rf ../steady/constant/polyMesh constant
restore0Dir
cp -f ../steady/500/U 0/
cp -f ../steady/500/p 0/
runApplication decomposePar
runParallel $(getApplication)
#------------------------------------------------------------------------------

View File

@ -0,0 +1,39 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2011 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object chemistryProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
chemistryType
{
solver noChemistrySolver;
}
chemistry off;
initialChemicalTimeStep 1e-07;
EulerImplicitCoeffs
{
cTauChem 0.05;
equilibriumRateLimiter off;
}
odeCoeffs
{
solver seulex;
eps 0.05;
}
// ************************************************************************* //

View File

@ -0,0 +1,20 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2011 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object combustionProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
combustionModel none;
// ************************************************************************* //

View File

@ -0,0 +1,26 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2011 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object fvOptions;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
limitT
{
type limitTemperature;
min 101;
max 400;
selectionMode all;
}
// ************************************************************************* //

View File

@ -0,0 +1,22 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2011 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class uniformDimensionedVectorField;
object g;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 1 -2 0 0 0 0];
value (0 0 -9.81);
// ************************************************************************* //

View File

@ -0,0 +1,24 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2011 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object particleTrackProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
cloud reactingCloud1;
sampleFrequency 1;
maxPositions 1000000;
// ************************************************************************* //

View File

@ -0,0 +1,22 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2011 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object radiationProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
radiation off;
radiationModel none;
// ************************************************************************* //

View File

@ -0,0 +1,584 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2011 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object reactingCloud1Properties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
solution
{
active true;
coupled true;
transient yes;
cellValueSourceCorrection on;
maxCo 0.3;
sourceTerms
{
schemes
{
rho explicit 1;
U explicit 1;
Yi explicit 1;
h explicit 1;
radiation explicit 1;
}
}
interpolationSchemes
{
rho cell;
U cellPoint;
thermo:mu cell;
T cell;
Cp cell;
kappa cell;
p cell;
}
integrationSchemes
{
U Euler;
T analytical;
}
}
constantProperties
{
rho0 1000;
T0 300;
Cp0 4100;
constantVolume false;
}
subModels
{
particleForces
{
sphereDrag;
gravity;
}
injectionModels
{
// using droplets distribution from 2009 Chao paper
// https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7126899/
// to allow an easier check of the number of particles hitting a patch
// according to their size, we will reduce the number of model* parcel and
// comment some of them, so to get a shorter list, easier to verify.
model3 // diameter 3 μm => 0.000003m
{
type patchInjection;
parcelBasisType fixed;
patch mouth;
U0 (4.0 0.0 0.0);
nParticle 1; // 1 particles = one parcel
parcelsPerSecond 2; // taken from 3rd column of table https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7126899/table/tbl1/
sizeDistribution
{
type uniform;
uniformDistribution
{
minValue 0.000003;
maxValue 0.000003;
}
}
flowRateProfile constant 1;
massTotal 0;
SOI 0.0;
duration 120.0;
}
model6 // diameter 6 μm => 0.000006m
{
type patchInjection;
parcelBasisType fixed;
patch mouth;
U0 (4.0 0.0 0.0);
nParticle 1; // 1 particles = one parcel
parcelsPerSecond 27;
sizeDistribution
{
type uniform;
uniformDistribution
{
minValue 0.000006;
maxValue 0.000006;
}
}
flowRateProfile constant 1;
massTotal 0;
SOI 0.0;
duration 120.0;
}
model12 // diameter 12 μm => 0.000012m
{
type patchInjection;
parcelBasisType fixed;
patch mouth;
U0 (4.0 0.0 0.0);
nParticle 1; // 1 particles = one parcel
parcelsPerSecond 9;
sizeDistribution
{
type uniform;
uniformDistribution
{
minValue 0.000012;
maxValue 0.000012;
}
}
flowRateProfile constant 1;
massTotal 0;
SOI 0.0;
duration 120.0;
}
model20 // diameter 20 μm => 0.000020m
{
type patchInjection;
parcelBasisType fixed;
patch mouth;
U0 (4.0 0.0 0.0);
nParticle 1; // 1 particles = one parcel
parcelsPerSecond 5;
sizeDistribution
{
type uniform;
uniformDistribution
{
minValue 0.000020;
maxValue 0.000020;
}
}
flowRateProfile constant 1;
massTotal 0;
SOI 0.0;
duration 120.0;
}
model28 // diameter 28 μm => 0.000028m
{
type patchInjection;
parcelBasisType fixed;
patch mouth;
U0 (4.0 0.0 0.0);
nParticle 1; // 1 particles = one parcel
parcelsPerSecond 3;
sizeDistribution
{
type uniform;
uniformDistribution
{
minValue 0.000028;
maxValue 0.000028;
}
}
flowRateProfile constant 1;
massTotal 0;
SOI 0.0;
duration 120.0;
}
model36 // diameter 36 μm => 0.000036m
{
type patchInjection;
parcelBasisType fixed;
patch mouth;
U0 (4.0 0.0 0.0);
nParticle 1; // 1 particles = one parcel
parcelsPerSecond 2;
sizeDistribution
{
type uniform;
uniformDistribution
{
minValue 0.000036;
maxValue 0.000036;
}
}
flowRateProfile constant 1;
massTotal 0;
SOI 0.0;
duration 120.0;
}
model45 // diameter 45 μm => 0.000045m
{
type patchInjection;
parcelBasisType fixed;
patch mouth;
U0 (4.0 0.0 0.0);
nParticle 1; // 1 particles = one parcel
parcelsPerSecond 2;
sizeDistribution
{
type uniform;
uniformDistribution
{
minValue 0.000045;
maxValue 0.000045;
}
}
flowRateProfile constant 1;
massTotal 0;
SOI 0.0;
duration 120.0;
}
/*
model62 // diameter 62 μm => 0.000062m
{
type patchInjection;
parcelBasisType fixed;
patch mouth;
U0 (4.0 0.0 0.0);
nParticle 1; // 1 particles = one parcel
parcelsPerSecond 2;
sizeDistribution
{
type uniform;
uniformDistribution
{
minValue 0.000062;
maxValue 0.000062;
}
}
flowRateProfile constant 1;
massTotal 0;
SOI 0.0;
duration 120.0;
}
model87 // diameter 87 μm => 0.000087m
{
type patchInjection;
parcelBasisType fixed;
patch mouth;
U0 (4.0 0.0 0.0);
nParticle 1; // 1 particles = one parcel
parcelsPerSecond 1;
sizeDistribution
{
type uniform;
uniformDistribution
{
minValue 0.000087;
maxValue 0.000087;
}
}
flowRateProfile constant 1;
massTotal 0;
SOI 0.0;
duration 120.0;
}
model112 // diameter 112 μm => 0.000112m
{
type patchInjection;
parcelBasisType fixed;
patch mouth;
U0 (4.0 0.0 0.0);
nParticle 1; // 1 particles = one parcel
parcelsPerSecond 2;
sizeDistribution
{
type uniform;
uniformDistribution
{
minValue 0.000112;
maxValue 0.000112;
}
}
flowRateProfile constant 1;
massTotal 0;
SOI 0.0;
duration 120.0;
}
model137 // diameter 137 μm => 0.000137m
{
type patchInjection;
parcelBasisType fixed;
patch mouth;
U0 (4.0 0.0 0.0);
nParticle 1; // 1 particles = one parcel
parcelsPerSecond 2;
sizeDistribution
{
type uniform;
uniformDistribution
{
minValue 0.000137;
maxValue 0.000137;
}
}
flowRateProfile constant 1;
massTotal 0;
SOI 0.0;
duration 120.0;
}
model175 // diameter 175 μm => 0.000175m
{
type patchInjection;
parcelBasisType fixed;
patch mouth;
U0 (4.0 0.0 0.0);
nParticle 1; // 1 particles = one parcel
parcelsPerSecond 2;
sizeDistribution
{
type uniform;
uniformDistribution
{
minValue 0.000175;
maxValue 0.000175;
}
}
flowRateProfile constant 1;
massTotal 0;
SOI 0.0;
duration 120.0;
}
model225 // diameter 225 μm => 0.000225m
{
type patchInjection;
parcelBasisType fixed;
patch mouth;
U0 (4.0 0.0 0.0);
nParticle 1; // 1 particles = one parcel
parcelsPerSecond 2;
sizeDistribution
{
type uniform;
uniformDistribution
{
minValue 0.000225;
maxValue 0.000225;
}
}
flowRateProfile constant 1;
massTotal 0;
SOI 0.0;
duration 120.0;
}
model375 // diameter 375 μm => 0.000375m
{
type patchInjection;
parcelBasisType fixed;
patch mouth;
U0 (4.0 0.0 0.0);
nParticle 1; // 1 particles = one parcel
parcelsPerSecond 1;
sizeDistribution
{
type uniform;
uniformDistribution
{
minValue 0.000375;
maxValue 0.000375;
}
}
flowRateProfile constant 1;
massTotal 0;
SOI 0.0;
duration 120.0;
}
model750 // diameter 750 μm => 0.000750m
{
type patchInjection;
parcelBasisType fixed;
patch mouth;
U0 (4.0 0.0 0.0);
nParticle 1; // 1 particles = one parcel
parcelsPerSecond 1;
sizeDistribution
{
type uniform;
uniformDistribution
{
minValue 0.000750;
maxValue 0.000750;
}
}
flowRateProfile constant 1;
massTotal 0;
SOI 0.0;
duration 120.0;
}
*/
}
dispersionModel none;
patchInteractionModel multiInteraction;
heatTransferModel RanzMarshall;
compositionModel singleMixtureFraction;
phaseChangeModel liquidEvaporation;
devolatilisationModel none;
surfaceReactionModel none;
stochasticCollisionModel none;
surfaceFilmModel none;
radiation off;
multiInteractionCoeffs
{
oneInteractionOnly no;
model1 // for the walls: setting them all sticky
{
patchInteractionModel standardWallInteraction;
standardWallInteractionCoeffs
{
type stick;
}
writeToFile yes;
}
model2 // for the recycling patches
{
patchInteractionModel recycleInteraction;
recycleInteractionCoeffs
{
recyclePatches
(
(intake1 exhaust_minX)
(intake2 exhaust_minY)
(intake3 exhaust_maxX)
(intake4 exhaust_maxY)
);
recycleFraction 0.8;
}
}
}
RanzMarshallCoeffs
{
BirdCorrection true;
}
singleMixtureFractionCoeffs
{
phases
(
gas
{
}
liquid
{
H2O 1; // the liquid phase is 100% water
}
solid
{
C 1; // the solid phase is 100% carbon
/*
it is possible to set multiple solid components; their ratio sum must be 1, for example :
proteinA 0.7;
proteinB 0.3;
*/
}
);
YGasTot0 0;
YLiquidTot0 0.8; // 80% of the droplet is water
YSolidTot0 0.2; // 20% of the droplet is solid (protein nuclei)
}
liquidEvaporationCoeffs
{
enthalpyTransfer enthalpyDifference;
activeLiquids ( H2O );
}
}
cloudFunctions
{
// function to count particles hitting patches
// classified according to their size
/*
in the injection models set above we have
3 μm -> 2 parcels per second
6 μm -> 27 parcels per second
12 μm -> 9 parcels per second
20 μm -> 5 parcels per second
28 μm -> 3 parcels per second
36 μm -> 2 parcels per second
45 μm -> 2 parcels per second
therefore in the following "patchParticleHistogram1" we can set
nBins = 9
min = 0μm
max = 45μm
in this ways the particles hitting the patches will be classified in the following ranges:
1) 0μm to 5.01μm <- the 3μm particles will be counted in this range
2) 5.01μm to 10.01μm <- the 6μm particles will be counted in this range
3) 10.01μm to 15.01μm <- the 12μm particles will be counted in this range
4) 15.01μm to 20.01μm <- the 20μm particles will be counted in this range
5) 20.01μm to 25.01μm
6) 25.01μm to 30.01μm <- the 28μm particles will be counted in this range
7) 30.01μm to 35.01μm
8) 35.01μm to 40.01μm <- the 36μm particles will be counted in this range
9) 40.01μm to 45.01μm <- the 45μm particles will be counted in this range
*/
patchParticleHistogram1
{
type patchParticleHistogram;
patches
(
roof
floor
sideWall
humanBody
outlet
);
nBins 9;
min 0.0000001;
max 0.000045;
maxStoredParcels 100000000;
}
patchPostProcessing1
{
type patchPostProcessing;
fields (position origId d);
maxStoredParcels 100000000;
patches
(
roof
floor
sideWall
humanBody
outlet
);
}
}
// ************************************************************************* //

View File

@ -0,0 +1,10 @@
species
(
CO2
N2
O2
H2O
);
reactions
{}

View File

@ -0,0 +1,158 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2011 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object thermo.incompressiblePoly;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
/*
in order to use the Boussinesq approximation for the density is sufficient to use the icoPolynominial model by setting its coefficients in the following way
[>> BOUSSINESQ TO icoPolynomial converter]
Rearranging Boussinesq equation in the form of rho = A + B * T
rho = rho_0 - rho_0 * Beta * (T - T_0)
rho = rho_0 + rho_0 * Beta * T_0 - rho_0 * Beta * T
By using the following values :
rho_0 = 1;
T_0 = 298;
Beta = 0.0034; // thermal expansion coefficient of air : At normal standard conditions of 25 degree Celsius or 298 Kelvin, Thermal expansion coefficient of air is said to be around 0.0034/K.
A = rho_0 + rho_0 * Beta * T_0 = 1+1*0.0034*298 = 2.0132
B = -rho_0 * Beta = -0.0034
Therefore in the icoPolynomial subdictionaries in constant/thermo.incompressiblePoly we will set :
equationOfState
{
rhoCoeffs<8> ( 2.0132 -0.0034 0 0 0 0 0 0 ); // rho = A + B * T
}
*/
N2
{
specie
{
molWeight 28.0134;
}
equationOfState
{
rhoCoeffs<8> ( 2.0132 -0.0034 0 0 0 0 0 0 );
}
thermodynamics
{
Hf 0;
Sf 0;
CpCoeffs<8> ( 979.08 0.41787 -0.0011761 1.6742e-06 -7.2559e-10 0 0 0 );
}
transport
{
muCoeffs<8> ( 1.5068e-06 6.1598e-08 -1.8188e-11 0 0 0 0 0 );
kappaCoeffs<8> ( 0.0031494 8.4997e-05 -1.2621e-08 0 0 0 0 0 );
}
}
O2
{
specie
{
molWeight 31.9988;
}
equationOfState
{
rhoCoeffs<8> ( 2.0132 -0.0034 0 0 0 0 0 0 );
}
thermodynamics
{
Hf 0;
Sf 0;
CpCoeffs<8> ( 834.84 0.29297 -0.00014959 3.4143e-07 -2.2786e-10 0 0 0 );
}
transport
{
muCoeffs<8> ( 1.5068e-06 6.1598e-08 -1.8188e-11 0 0 0 0 0 );
kappaCoeffs<8> ( 0.00016082 8.5301e-05 -1.4998e-08 0 0 0 0 0 );
}
}
H2O
{
specie
{
molWeight 18.0153;
}
equationOfState
{
rhoCoeffs<8> ( 2.0132 -0.0034 0 0 0 0 0 0 );
}
thermodynamics
{
Hf -13423000;
Sf 10482;
CpCoeffs<8> ( 1563.1 1.604 -0.0029334 3.2168e-06 -1.1571e-09 0 0 0 );
}
transport
{
muCoeffs<8> ( 1.5068e-06 6.1598e-08 -1.8188e-11 0 0 0 0 0 );
kappaCoeffs<8> ( 0.0037972 0.00015336 -1.1859e-08 0 0 0 0 0 );
}
}
CO2
{
specie
{
molWeight 44.01;
}
// to be updated: following CO2 coefficients taken from 02 subdictionary
equationOfState
{
rhoCoeffs<8> ( 2.0132 -0.0034 0 0 0 0 0 0 );
}
thermodynamics
{
Hf 0;
Sf 0;
CpCoeffs<8> ( 834.84 0.29297 -0.00014959 3.4143e-07 -2.2786e-10 0 0 0 );
}
transport
{
muCoeffs<8> ( 1.5068e-06 6.1598e-08 -1.8188e-11 0 0 0 0 0 );
kappaCoeffs<8> ( 0.00016082 8.5301e-05 -1.4998e-08 0 0 0 0 0 );
}
}
air
{
specie
{
molWeight 28.85;
}
equationOfState
{
rhoCoeffs<8> ( 2.0132 -0.0034 0 0 0 0 0 0 );
}
thermodynamics
{
Hf 0;
Sf 0;
CpCoeffs<8> ( 948.76 0.39171 -0.00095999 1.393e-06 -6.2029e-10 0 0 0 );
}
transport
{
muCoeffs<8> ( 1.5061e-06 6.16e-08 -1.819e-11 0 0 0 0 0 );
kappaCoeffs<8> ( 0.0025219 8.506e-05 -1.312e-08 0 0 0 0 0 );
}
}
// ************************************************************************* //

View File

@ -0,0 +1,59 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2011 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object thermophysicalProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
thermoType
{
type heRhoThermo;
mixture reactingMixture;
transport polynomial;
thermo hPolynomial;
energy sensibleEnthalpy;
equationOfState icoPolynomial;
// the coefficients of the icoPolynomial model are set to follow
// the Boussinesq approximation; please inspect the
// "thermo.incompressiblePoly" file for details
specie specie;
}
dpdt no;
chemistryReader foamChemistryReader;
foamChemistryFile "<constant>/reactions";
foamChemistryThermoFile "<constant>/thermo.incompressiblePoly";
liquids
{
H2O;
}
solids
{
C
{
rho 2010;
Cp 710;
kappa 0.04;
Hf 0;
emissivity 1.0;
}
}
inertSpecie N2;
// ************************************************************************* //

View File

@ -0,0 +1,35 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2011 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object turbulenceProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
simulationType LES;
LES
{
LESModel kEqn;
turbulence on;
printCoeffs on;
delta cubeRootVol;
cubeRootVolCoeffs
{
deltaCoeff 1;
}
}
// ************************************************************************* //

View File

@ -0,0 +1,54 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2011 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object controlDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
application reactingParcelFoam;
startFrom startTime;
startTime 0;
stopAt endTime;
endTime 0.5;
deltaT 1e-6;
writeControl adjustable;
writeInterval 0.2;
purgeWrite 5;
writeFormat binary;
writePrecision 8;
writeCompression off;
timeFormat general;
timePrecision 8;
runTimeModifiable true;
adjustTimeStep yes;
maxCo 1.0;
maxDeltaT 1;
// ************************************************************************* //

View File

@ -0,0 +1,22 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2011 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object decomposeParDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
numberOfSubdomains 10;
method scotch;
// ************************************************************************* //

View File

@ -0,0 +1,53 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2011 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object fvSchemes;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
ddtSchemes
{
default Euler;
}
gradSchemes
{
default Gauss linear;
}
divSchemes
{
default Gauss upwind;
div(phi,K) Gauss linear;
div(B) Gauss linear;
div(U) Gauss linear;
div(((rho*nuEff)*dev2(T(grad(U))))) Gauss linear;
}
laplacianSchemes
{
default Gauss linear corrected;
}
interpolationSchemes
{
default linear;
}
snGradSchemes
{
default corrected;
}
// ************************************************************************* //

View File

@ -0,0 +1,107 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2011 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object fvSolution;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
solvers
{
rho
{
solver PCG;
preconditioner DIC;
tolerance 1e-05;
relTol 0.1;
}
rhoFinal
{
$rho;
tolerance 1e-05;
relTol 0;
}
"(U|k)"
{
solver smoothSolver;
smoother symGaussSeidel;
tolerance 1e-06;
relTol 0.1;
}
"(U|k)Final"
{
$U;
tolerance 1e-06;
relTol 0;
}
p_rgh
{
solver GAMG;
tolerance 0;
relTol 0.1;
smoother GaussSeidel;
}
p_rghFinal
{
$p_rgh;
tolerance 1e-06;
relTol 0;
}
Phi
{
$p_rgh;
}
"(Yi|O2|N2|H2O|CO2)"
{
solver PBiCGStab;
preconditioner DILU;
tolerance 1e-6;
relTol 0;
}
h
{
$Yi;
relTol 0.1;
}
hFinal
{
$Yi;
}
}
PIMPLE
{
transonic no;
nOuterCorrectors 1;
nCorrectors 2;
nNonOrthogonalCorrectors 0;
momentumPredictor yes;
}
relaxationFactors
{
equations
{
".*Final" 1;
}
}
// ************************************************************************* //

Binary file not shown.