diff --git a/src/finiteVolume/fields/fvPatchFields/derived/outletMappedUniformInlet/outletMappedUniformInletFvPatchField.C b/src/finiteVolume/fields/fvPatchFields/derived/outletMappedUniformInlet/outletMappedUniformInletFvPatchField.C index 86323db7ed90f9ef5a66d318c51e80db856b32c8..082588d127f5efb2680ec82ba32614f9f01a4425 100644 --- a/src/finiteVolume/fields/fvPatchFields/derived/outletMappedUniformInlet/outletMappedUniformInletFvPatchField.C +++ b/src/finiteVolume/fields/fvPatchFields/derived/outletMappedUniformInlet/outletMappedUniformInletFvPatchField.C @@ -42,7 +42,9 @@ outletMappedUniformInletFvPatchField : fixedValueFvPatchField<Type>(p, iF), outletPatchName_(), - phiName_("phi") + phiName_("phi"), + fraction_(1), + offset_(Zero) {} @@ -56,8 +58,10 @@ outletMappedUniformInletFvPatchField ) : fixedValueFvPatchField<Type>(p, iF, dict), - outletPatchName_(dict.lookup("outletPatch")), - phiName_(dict.getOrDefault<word>("phi", "phi")) + outletPatchName_(dict.get<word>("outletPatch")), + phiName_(dict.getOrDefault<word>("phi", "phi")), + fraction_(dict.getOrDefault<scalar>("fraction", 1)), + offset_(dict.getOrDefault<Type>("offset", Zero)) {} @@ -73,7 +77,9 @@ outletMappedUniformInletFvPatchField : fixedValueFvPatchField<Type>(ptf, p, iF, mapper), outletPatchName_(ptf.outletPatchName_), - phiName_(ptf.phiName_) + phiName_(ptf.phiName_), + fraction_(ptf.fraction_), + offset_(ptf.offset_) {} @@ -86,11 +92,12 @@ outletMappedUniformInletFvPatchField : fixedValueFvPatchField<Type>(ptf), outletPatchName_(ptf.outletPatchName_), - phiName_(ptf.phiName_) + phiName_(ptf.phiName_), + fraction_(ptf.fraction_), + offset_(ptf.offset_) {} - template<class Type> Foam::outletMappedUniformInletFvPatchField<Type>:: outletMappedUniformInletFvPatchField @@ -101,7 +108,9 @@ outletMappedUniformInletFvPatchField : fixedValueFvPatchField<Type>(ptf, iF), outletPatchName_(ptf.outletPatchName_), - phiName_(ptf.phiName_) + phiName_(ptf.phiName_), + fraction_(ptf.fraction_), + offset_(ptf.offset_) {} @@ -124,7 +133,7 @@ void Foam::outletMappedUniformInletFvPatchField<Type>::updateCoeffs() ); const fvPatch& p = this->patch(); - label outletPatchID = + const label outletPatchID = p.patch().boundaryMesh().findPatchID(outletPatchName_); if (outletPatchID < 0) @@ -139,12 +148,12 @@ void Foam::outletMappedUniformInletFvPatchField<Type>::updateCoeffs() const fvPatchField<Type>& outletPatchField = f.boundaryField()[outletPatchID]; - const surfaceScalarField& phi = + const auto& phi = this->db().objectRegistry::template lookupObject<surfaceScalarField> (phiName_); const scalarField& outletPatchPhi = phi.boundaryField()[outletPatchID]; - scalar sumOutletPatchPhi = gSum(outletPatchPhi); + const scalar sumOutletPatchPhi = gSum(outletPatchPhi); if (sumOutletPatchPhi > SMALL) { @@ -152,7 +161,7 @@ void Foam::outletMappedUniformInletFvPatchField<Type>::updateCoeffs() gSum(outletPatchPhi*outletPatchField) /sumOutletPatchPhi; - this->operator==(averageOutletField); + this->operator==(averageOutletField*fraction_ + offset_); } else { @@ -173,6 +182,8 @@ void Foam::outletMappedUniformInletFvPatchField<Type>::write(Ostream& os) const fvPatchField<Type>::write(os); os.writeEntry("outletPatch", outletPatchName_); os.writeEntryIfDifferent<word>("phi", "phi", phiName_); + os.writeEntry("fraction", fraction_); + os.writeEntry("offset", offset_); this->writeEntry("value", os); } diff --git a/src/finiteVolume/fields/fvPatchFields/derived/outletMappedUniformInlet/outletMappedUniformInletFvPatchField.H b/src/finiteVolume/fields/fvPatchFields/derived/outletMappedUniformInlet/outletMappedUniformInletFvPatchField.H index d340a153a66f33ecc2bf364f9deb1de8004838cc..0b586c771ca7ae56e79b7c247612766a738d76ba 100644 --- a/src/finiteVolume/fields/fvPatchFields/derived/outletMappedUniformInlet/outletMappedUniformInletFvPatchField.H +++ b/src/finiteVolume/fields/fvPatchFields/derived/outletMappedUniformInlet/outletMappedUniformInletFvPatchField.H @@ -6,6 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2011-2018 OpenFOAM Foundation + Copyright (C) 2020 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -30,33 +31,66 @@ Group grpInletBoundaryConditions Description - This boundary condition averages the field over the "outlet" patch specified - by name "outletPatch" and applies this as the uniform value of the field - over this patch. + The \c outletMappedUniformInlet is an inlet boundary condition that + - averages the patch field of \<Type\> over a specified "outlet" patch + and uniformly applies the averaged value over a specified inlet patch. + - optionally, the averaged value can be scaled + and/or offset by a pair of specified values. + + The governing equation of the boundary condition is: + + \f[ + \phi_{inlet} = f \phi_{outlet} + \phi_{offset} + \f] + + where + \vartable + \phi_{inlet} | Spatially-uniform patch-field value at an inlet patch + \phi_{outlet} | Averaged patch-field value at an outlet patch + f | User-defined fraction value + \phi_{offset} | User-defined offset value + \endvartable Usage - \table - Property | Description | Required | Default value - outletPatch | Name of outlet patch | yes | - phi | Flux field name | no | phi - \endtable - Example of the boundary condition specification: \verbatim <patchName> { - type outletMappedUniformInlet; - outletPatch aPatch; + // Mandatory entries (unmodifiable) + type outletMappedFilterInlet; + outletPatch <outletPatchName>; + + // Optional entries (unmodifiable) + fraction 0.1; + offset 10; // (1 0 0); phi phi; - value uniform 0; + + // Optional (inherited) entries + ... } \endverbatim + where the entries mean: + \table + Property | Description | Type | Reqd | Dflt + type | Type name: outletMappedUniformInlet | word | yes | - + outletPatch | Name of patch to be mapped | word | yes | - + fraction | Fraction value | scalar | no | 1 + offset | Offset value | Type | no | Zero + phi | Name of operand flux field | word | no | phi + \endtable + + The inherited entries are elaborated in: + - \link fixedValueFvPatchFields.H \endlink + See also - Foam::fixedValueFvPatchField + - Foam::fixedValueFvPatchField + - Foam::outletMappedUniformInletHeatAdditionFvPatchField + - Foam::outletMappedUniformInletTemperatureFvPatchField SourceFiles outletMappedUniformInletFvPatchField.C + outletMappedUniformInletFvPatchFields.C \*---------------------------------------------------------------------------*/ @@ -79,14 +113,20 @@ class outletMappedUniformInletFvPatchField : public fixedValueFvPatchField<Type> { - // Private data + // Private Data //- Name of the outlet patch to be mapped word outletPatchName_; - //- Name of the flux transporting the field + //- Name of operand flux field word phiName_; + //- Fraction value + scalar fraction_; + + //- Offset value + Type offset_; + public: @@ -112,7 +152,7 @@ public: ); //- Construct by mapping given outletMappedUniformInletFvPatchField - // onto a new patch + //- onto a new patch outletMappedUniformInletFvPatchField ( const outletMappedUniformInletFvPatchField<Type>&, @@ -156,7 +196,7 @@ public: } - // Member functions + // Member Functions // Access @@ -167,7 +207,7 @@ public: } - // Evaluation functions + // Evaluation //- Update the coefficients associated with the patch field virtual void updateCoeffs(); diff --git a/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/Allclean b/tutorials/lagrangian/reactingParcelFoam/airRecirculationRoom/Allclean new file mode 100755 index 0000000000000000000000000000000000000000..03b2910983b573a765ab70c007c5f22ab755ff7a --- /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 0000000000000000000000000000000000000000..b786949d3f57344359b24201e1e0ce1ee7be7556 --- /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 0000000000000000000000000000000000000000..5646a9b25d4bec5c92e90275cffe60b9cd751675 --- /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 0000000000000000000000000000000000000000..297ac5b4a3d815200644f00154676a08cb1a9a56 --- /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 0000000000000000000000000000000000000000..5e954e192cb13055495941cd1cabc43bed4ba46c --- /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 0000000000000000000000000000000000000000..87b46c7d00472bea0a1b05ea3dbb9c6e60d22dc1 --- /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 0000000000000000000000000000000000000000..853074e38b7d78921f1065976bbae37a27fa842c --- /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 0000000000000000000000000000000000000000..dc54a7b1fdc4d3cca5511d2aaf29fe16ddb30813 --- /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 0000000000000000000000000000000000000000..d173c380f63a8836b4774f050f0c6e04c9703614 --- /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 0000000000000000000000000000000000000000..64e0b6245f8b82d7f223d828ef0cda85e1c6939d --- /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 0000000000000000000000000000000000000000..f6afebac488e1312b695375a1cc2e7a934ae3b75 --- /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 0000000000000000000000000000000000000000..2293b77feec250c57c4db4a4a9028d174a19b3f9 --- /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 0000000000000000000000000000000000000000..8e4559684223c78ce9deefde15b674267d6e445f --- /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 0000000000000000000000000000000000000000..3d8763b484bdc67086088a2df8992dca63e9fbfb --- /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 0000000000000000000000000000000000000000..9639c36cb182b27a67b9f9dd314bfe73f3ee3c2f --- /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 0000000000000000000000000000000000000000..b4ba8e1d6ff8edfb9c4361be137f73aa05c61e61 --- /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 0000000000000000000000000000000000000000..83c040a0ea06bf2df52a2587be74fa756d884a98 --- /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 0000000000000000000000000000000000000000..4869701b0647fdc24f5cbfd4ccc5dcb344599bb4 --- /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 0000000000000000000000000000000000000000..3794d173496db0dfe0b251d8680b792f4cf9328b --- /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 0000000000000000000000000000000000000000..cb57b2045a74b7a38414c1f6d84c13925102d317 --- /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 0000000000000000000000000000000000000000..52be40887927fc89f5aa227a23d29b6347d3806d --- /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 0000000000000000000000000000000000000000..252135ac7773854a3969d2f28fa4c32bb43443b6 --- /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 0000000000000000000000000000000000000000..9738136dfde7b050fba1a2304d117ebffdd319cb --- /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 0000000000000000000000000000000000000000..9f9c66c61d7dd669d464bf028ed6f7d4b31735c3 --- /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 0000000000000000000000000000000000000000..2236b34a0b6bdda5798488569758cc27addf1d6c --- /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 0000000000000000000000000000000000000000..d4f97b35ccbf580d0ce6c292e6f7ff4536ece17c --- /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 0000000000000000000000000000000000000000..d4940ab312af26bcda3258ef9438b168a44e9a02 --- /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 0000000000000000000000000000000000000000..a57f7522486a26e9241474e6b249ade3f65b9965 --- /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 0000000000000000000000000000000000000000..af91e74a72b81c40c1c2bdb5f93357c9fedf950b --- /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 0000000000000000000000000000000000000000..5e954e192cb13055495941cd1cabc43bed4ba46c --- /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 0000000000000000000000000000000000000000..263a4e5b5af8e07c9a7f30b7f7b462bd168606cd --- /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 0000000000000000000000000000000000000000..2b42c9b848b71adfdea5f9d85dd54dc40283fdb0 --- /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 0000000000000000000000000000000000000000..5da2c053c242ad93f1cc5b43e61adf1dc1880f36 --- /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 0000000000000000000000000000000000000000..c06176876c5d6891521abd1a0792f373b8aa1ca5 --- /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 0000000000000000000000000000000000000000..fb1f3847301c377e02e12439ba58cbf303af3ef9 --- /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 0000000000000000000000000000000000000000..fe4bfdcee39da626372e262cf59191432ec0bd72 --- /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 0000000000000000000000000000000000000000..f9174c7abe9b3ec9b171b02426f037cfce50f448 --- /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 0000000000000000000000000000000000000000..de895c17857ada44860ae46ffb8ea69787be5ec4 --- /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 0000000000000000000000000000000000000000..6ebdf3d7fab04762c0edd72761f1b3e5dc45c4c6 --- /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 0000000000000000000000000000000000000000..b40d0a718179b31295ce35ebf9396f0f48e4bbe8 --- /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 0000000000000000000000000000000000000000..3d8763b484bdc67086088a2df8992dca63e9fbfb --- /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 0000000000000000000000000000000000000000..1110f585a65c85ecf7145c751f1ccaf58a8cc316 --- /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 0000000000000000000000000000000000000000..c83a13ecf5fe5aaf7e40f34071c6fe403cc5e421 --- /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 0000000000000000000000000000000000000000..250c26062678b570ae6f0ea8bf54d5f5cfde9649 --- /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 0000000000000000000000000000000000000000..e6669a9f1cb60b044b6f6034ad5707850a10d039 --- /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 0000000000000000000000000000000000000000..3ff84b4fa2aa7fc6e3a4d8ed461158023110d0e2 --- /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 0000000000000000000000000000000000000000..b5ad6f3b00aa373d1efdf0daccdcbd71dbd1adc5 --- /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 "<constant>/reactions"; + +foamChemistryThermoFile "<constant>/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 0000000000000000000000000000000000000000..475f41de2874dfab5d68c27f83222bde09422263 --- /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 0000000000000000000000000000000000000000..b87c0325e3459e7808de510f6aa8d44b49bc65c4 --- /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 0000000000000000000000000000000000000000..3794d173496db0dfe0b251d8680b792f4cf9328b --- /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 0000000000000000000000000000000000000000..cdf205768473613fbc844defe4caa745d33ea6bc --- /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 0000000000000000000000000000000000000000..b26f80c17d19eb45a4872eed181a46b60ba05aff --- /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 0000000000000000000000000000000000000000..a9e8a74a6c87a5534c4473e35469b5811e6d5486 Binary files /dev/null and b/tutorials/resources/geometry/roomRecirculation.stl.gz differ