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