diff --git a/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/Allclean b/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/Allclean new file mode 100755 index 0000000000..03b2910983 --- /dev/null +++ b/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/Allclean @@ -0,0 +1,9 @@ +#!/bin/sh +cd "${0%/*}" || exit # Run from this directory +#------------------------------------------------------------------------------ + +(cd steady && ./Allclean) + +(cd transient && ./Allclean) + +#------------------------------------------------------------------------------ \ No newline at end of file diff --git a/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/Allrun b/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/Allrun new file mode 100755 index 0000000000..b786949d3f --- /dev/null +++ b/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/Allrun @@ -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) + +#------------------------------------------------------------------------------ diff --git a/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/steady/0.orig/T b/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/steady/0.orig/T new file mode 100644 index 0000000000..5646a9b25d --- /dev/null +++ b/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/steady/0.orig/T @@ -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; + } +} + + +// ************************************************************************* // diff --git a/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/steady/0.orig/U b/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/steady/0.orig/U new file mode 100644 index 0000000000..297ac5b4a3 --- /dev/null +++ b/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/steady/0.orig/U @@ -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; + } +} + + +// ************************************************************************* // diff --git a/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/steady/0.orig/alphat b/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/steady/0.orig/alphat new file mode 100644 index 0000000000..5e954e192c --- /dev/null +++ b/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/steady/0.orig/alphat @@ -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; + } +} + + +// ************************************************************************* // diff --git a/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/steady/0.orig/k b/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/steady/0.orig/k new file mode 100644 index 0000000000..87b46c7d00 --- /dev/null +++ b/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/steady/0.orig/k @@ -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; + } +} + + +// ************************************************************************* // diff --git a/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/steady/0.orig/nut b/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/steady/0.orig/nut new file mode 100644 index 0000000000..853074e38b --- /dev/null +++ b/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/steady/0.orig/nut @@ -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; + } +} + + +// ************************************************************************* // diff --git a/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/steady/0.orig/omega b/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/steady/0.orig/omega new file mode 100644 index 0000000000..dc54a7b1fd --- /dev/null +++ b/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/steady/0.orig/omega @@ -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; + } +} + + +// ************************************************************************* // diff --git a/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/steady/0.orig/p b/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/steady/0.orig/p new file mode 100644 index 0000000000..d173c380f6 --- /dev/null +++ b/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/steady/0.orig/p @@ -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; + } +} + + +// ************************************************************************* // diff --git a/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/steady/Allclean b/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/steady/Allclean new file mode 100755 index 0000000000..64e0b6245f --- /dev/null +++ b/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/steady/Allclean @@ -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 + +#------------------------------------------------------------------------------ diff --git a/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/steady/Allrun-parallel b/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/steady/Allrun-parallel new file mode 100755 index 0000000000..f6afebac48 --- /dev/null +++ b/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/steady/Allrun-parallel @@ -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 + +#------------------------------------------------------------------------------ \ No newline at end of file diff --git a/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/steady/Allrun.pre b/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/steady/Allrun.pre new file mode 100755 index 0000000000..2293b77fee --- /dev/null +++ b/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/steady/Allrun.pre @@ -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 + +#------------------------------------------------------------------------------ \ No newline at end of file diff --git a/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/steady/constant/fvOptions b/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/steady/constant/fvOptions new file mode 100644 index 0000000000..8e45596842 --- /dev/null +++ b/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/steady/constant/fvOptions @@ -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; +} + + +// ************************************************************************* // diff --git a/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/steady/constant/g b/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/steady/constant/g new file mode 100644 index 0000000000..3d8763b484 --- /dev/null +++ b/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/steady/constant/g @@ -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); + + +// ************************************************************************* // diff --git a/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/steady/constant/thermophysicalProperties b/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/steady/constant/thermophysicalProperties new file mode 100644 index 0000000000..9639c36cb1 --- /dev/null +++ b/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/steady/constant/thermophysicalProperties @@ -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 + } +} + + +// ************************************************************************* // diff --git a/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/steady/constant/turbulenceProperties b/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/steady/constant/turbulenceProperties new file mode 100644 index 0000000000..b4ba8e1d6f --- /dev/null +++ b/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/steady/constant/turbulenceProperties @@ -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; +} + + +// ************************************************************************* // diff --git a/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/steady/system/blockMeshDict b/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/steady/system/blockMeshDict new file mode 100644 index 0000000000..83c040a0ea --- /dev/null +++ b/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/steady/system/blockMeshDict @@ -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) + ); + } +); + + +// ************************************************************************* // diff --git a/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/steady/system/controlDict b/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/steady/system/controlDict new file mode 100644 index 0000000000..4869701b06 --- /dev/null +++ b/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/steady/system/controlDict @@ -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; + } +} + + +// ************************************************************************* // diff --git a/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/steady/system/decomposeParDict b/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/steady/system/decomposeParDict new file mode 100644 index 0000000000..3794d17349 --- /dev/null +++ b/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/steady/system/decomposeParDict @@ -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; + + +// ************************************************************************* // diff --git a/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/steady/system/fvSchemes b/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/steady/system/fvSchemes new file mode 100644 index 0000000000..cb57b2045a --- /dev/null +++ b/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/steady/system/fvSchemes @@ -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; +} + + +// ************************************************************************* // diff --git a/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/steady/system/fvSolution b/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/steady/system/fvSolution new file mode 100644 index 0000000000..52be408879 --- /dev/null +++ b/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/steady/system/fvSolution @@ -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; + } +} + + +// ************************************************************************* // diff --git a/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/steady/system/snappyHexMeshDict b/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/steady/system/snappyHexMeshDict new file mode 100644 index 0000000000..252135ac77 --- /dev/null +++ b/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/steady/system/snappyHexMeshDict @@ -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; + + +// ************************************************************************* // diff --git a/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/steady/system/surfaceFeatureExtractDict b/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/steady/system/surfaceFeatureExtractDict new file mode 100644 index 0000000000..9738136dfd --- /dev/null +++ b/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/steady/system/surfaceFeatureExtractDict @@ -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; + } +} + + +// ************************************************************************* // diff --git a/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/transient/0.orig/CO2 b/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/transient/0.orig/CO2 new file mode 100644 index 0000000000..9f9c66c61d --- /dev/null +++ b/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/transient/0.orig/CO2 @@ -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; + } +} + + +// ************************************************************************* // diff --git a/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/transient/0.orig/G b/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/transient/0.orig/G new file mode 100644 index 0000000000..2236b34a0b --- /dev/null +++ b/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/transient/0.orig/G @@ -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; + } +} + + +// ************************************************************************* // diff --git a/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/transient/0.orig/H2O b/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/transient/0.orig/H2O new file mode 100644 index 0000000000..d4f97b35cc --- /dev/null +++ b/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/transient/0.orig/H2O @@ -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; + } +} + + +// ************************************************************************* // diff --git a/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/transient/0.orig/N2 b/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/transient/0.orig/N2 new file mode 100644 index 0000000000..d4940ab312 --- /dev/null +++ b/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/transient/0.orig/N2 @@ -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; + } +} + + +// ************************************************************************* // diff --git a/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/transient/0.orig/O2 b/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/transient/0.orig/O2 new file mode 100644 index 0000000000..a57f752248 --- /dev/null +++ b/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/transient/0.orig/O2 @@ -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; + } +} + + +// ************************************************************************* // diff --git a/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/transient/0.orig/T b/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/transient/0.orig/T new file mode 100644 index 0000000000..af91e74a72 --- /dev/null +++ b/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/transient/0.orig/T @@ -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; + } +} + + +// ************************************************************************* // diff --git a/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/transient/0.orig/alphat b/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/transient/0.orig/alphat new file mode 100644 index 0000000000..5e954e192c --- /dev/null +++ b/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/transient/0.orig/alphat @@ -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; + } +} + + +// ************************************************************************* // diff --git a/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/transient/0.orig/k b/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/transient/0.orig/k new file mode 100644 index 0000000000..263a4e5b5a --- /dev/null +++ b/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/transient/0.orig/k @@ -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; + } +} + + +// ************************************************************************* // diff --git a/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/transient/0.orig/nut b/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/transient/0.orig/nut new file mode 100644 index 0000000000..2b42c9b848 --- /dev/null +++ b/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/transient/0.orig/nut @@ -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; + } +} + + +// ************************************************************************* // diff --git a/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/transient/0.orig/omega b/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/transient/0.orig/omega new file mode 100644 index 0000000000..5da2c053c2 --- /dev/null +++ b/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/transient/0.orig/omega @@ -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; + } +} + + +// ************************************************************************* // diff --git a/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/transient/0.orig/p_rgh b/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/transient/0.orig/p_rgh new file mode 100644 index 0000000000..c06176876c --- /dev/null +++ b/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/transient/0.orig/p_rgh @@ -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; + } +} + + +// ************************************************************************* // diff --git a/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/transient/Allclean b/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/transient/Allclean new file mode 100755 index 0000000000..fb1f384730 --- /dev/null +++ b/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/transient/Allclean @@ -0,0 +1,8 @@ +#!/bin/sh +cd "${0%/*}" || exit # Run from this directory +. ${WM_PROJECT_DIR:?}/bin/tools/CleanFunctions # Tutorial clean functions +#------------------------------------------------------------------------------ + +cleanCase0 + +#------------------------------------------------------------------------------ diff --git a/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/transient/Allrun b/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/transient/Allrun new file mode 100755 index 0000000000..fe4bfdcee3 --- /dev/null +++ b/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/transient/Allrun @@ -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) + +#------------------------------------------------------------------------------ diff --git a/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/transient/Allrun-parallel b/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/transient/Allrun-parallel new file mode 100755 index 0000000000..f9174c7abe --- /dev/null +++ b/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/transient/Allrun-parallel @@ -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) + +#------------------------------------------------------------------------------ diff --git a/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/transient/constant/chemistryProperties b/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/transient/constant/chemistryProperties new file mode 100644 index 0000000000..de895c1785 --- /dev/null +++ b/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/transient/constant/chemistryProperties @@ -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; +} + + +// ************************************************************************* // diff --git a/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/transient/constant/combustionProperties b/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/transient/constant/combustionProperties new file mode 100644 index 0000000000..6ebdf3d7fa --- /dev/null +++ b/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/transient/constant/combustionProperties @@ -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; + + +// ************************************************************************* // diff --git a/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/transient/constant/fvOptions b/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/transient/constant/fvOptions new file mode 100644 index 0000000000..b40d0a7181 --- /dev/null +++ b/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/transient/constant/fvOptions @@ -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; +} + + +// ************************************************************************* // diff --git a/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/transient/constant/g b/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/transient/constant/g new file mode 100644 index 0000000000..3d8763b484 --- /dev/null +++ b/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/transient/constant/g @@ -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); + + +// ************************************************************************* // diff --git a/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/transient/constant/particleTrackProperties b/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/transient/constant/particleTrackProperties new file mode 100644 index 0000000000..1110f585a6 --- /dev/null +++ b/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/transient/constant/particleTrackProperties @@ -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; + + +// ************************************************************************* // diff --git a/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/transient/constant/radiationProperties b/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/transient/constant/radiationProperties new file mode 100644 index 0000000000..c83a13ecf5 --- /dev/null +++ b/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/transient/constant/radiationProperties @@ -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; + + +// ************************************************************************* // diff --git a/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/transient/constant/reactingCloud1Properties b/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/transient/constant/reactingCloud1Properties new file mode 100644 index 0000000000..250c260626 --- /dev/null +++ b/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/transient/constant/reactingCloud1Properties @@ -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 + ); + } +} + + +// ************************************************************************* // diff --git a/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/transient/constant/reactions b/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/transient/constant/reactions new file mode 100644 index 0000000000..e6669a9f1c --- /dev/null +++ b/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/transient/constant/reactions @@ -0,0 +1,10 @@ +species +( + CO2 + N2 + O2 + H2O +); + +reactions +{} diff --git a/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/transient/constant/thermo.incompressiblePoly b/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/transient/constant/thermo.incompressiblePoly new file mode 100644 index 0000000000..3ff84b4fa2 --- /dev/null +++ b/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/transient/constant/thermo.incompressiblePoly @@ -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 ); + } +} + + +// ************************************************************************* // diff --git a/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/transient/constant/thermophysicalProperties b/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/transient/constant/thermophysicalProperties new file mode 100644 index 0000000000..b5ad6f3b00 --- /dev/null +++ b/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/transient/constant/thermophysicalProperties @@ -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 "/reactions"; + +foamChemistryThermoFile "/thermo.incompressiblePoly"; + +liquids +{ + H2O; +} + +solids +{ + C + { + rho 2010; + Cp 710; + kappa 0.04; + Hf 0; + emissivity 1.0; + } +} + +inertSpecie N2; + + +// ************************************************************************* // diff --git a/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/transient/constant/turbulenceProperties b/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/transient/constant/turbulenceProperties new file mode 100644 index 0000000000..475f41de28 --- /dev/null +++ b/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/transient/constant/turbulenceProperties @@ -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; + } +} + + +// ************************************************************************* // diff --git a/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/transient/system/controlDict b/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/transient/system/controlDict new file mode 100644 index 0000000000..b87c0325e3 --- /dev/null +++ b/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/transient/system/controlDict @@ -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; + + +// ************************************************************************* // diff --git a/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/transient/system/decomposeParDict b/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/transient/system/decomposeParDict new file mode 100644 index 0000000000..3794d17349 --- /dev/null +++ b/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/transient/system/decomposeParDict @@ -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; + + +// ************************************************************************* // diff --git a/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/transient/system/fvSchemes b/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/transient/system/fvSchemes new file mode 100644 index 0000000000..cdf2057684 --- /dev/null +++ b/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/transient/system/fvSchemes @@ -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; +} + + +// ************************************************************************* // diff --git a/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/transient/system/fvSolution b/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/transient/system/fvSolution new file mode 100644 index 0000000000..b26f80c17d --- /dev/null +++ b/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/transient/system/fvSolution @@ -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; + } +} + + +// ************************************************************************* // diff --git a/tutorials/resources/geometry/roomRecirculation.stl.gz b/tutorials/resources/geometry/roomRecirculation.stl.gz new file mode 100644 index 0000000000..a9e8a74a6c Binary files /dev/null and b/tutorials/resources/geometry/roomRecirculation.stl.gz differ