From e54dae6db752ed19459c3c480327c32320f32c20 Mon Sep 17 00:00:00 2001
From: andy <a.heather@opencfd.co.uk>
Date: Mon, 18 Oct 2010 16:06:47 +0100
Subject: [PATCH] ENH: Encapsulated cloud sub-models in sub-dictionary

---
 .../Templates/KinematicCloud/KinematicCloud.C |  15 +-
 .../Templates/KinematicCloud/KinematicCloud.H |   6 +
 .../KinematicCloud/KinematicCloudI.H          |   8 +
 .../Templates/ReactingCloud/ReactingCloud.C   |   4 +-
 .../ReactingMultiphaseCloud.C                 |   4 +-
 .../Templates/ThermoCloud/ThermoCloud.C       |   2 +-
 .../constant/coalCloud1Properties             | 185 ++++++++--------
 .../constant/limestoneCloud1Properties        |  81 +++----
 .../filter/constant/reactingCloud1Properties  | 204 ++++++++----------
 .../constant/reactingCloud1Properties         | 159 +++++++-------
 .../constant/reactingCloud1Properties         | 201 ++++++++---------
 .../constant/reactingCloud1Properties         |  75 +++----
 .../constant/reactingCloud1Properties         | 195 ++++++++---------
 .../constant/reactingCloud1Properties         | 185 ++++++++--------
 .../panel/constant/reactingCloud1Properties   |  73 ++++---
 .../constant/reactingCloud1Properties         | 118 +++++-----
 .../constant/kinematicCloud1Properties        | 105 ++++-----
 .../constant/thermoCloud1Properties           |  79 +++----
 18 files changed, 866 insertions(+), 833 deletions(-)

diff --git a/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.C b/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.C
index 9666d617197..96209bde820 100644
--- a/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.C
+++ b/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.C
@@ -257,6 +257,7 @@ Foam::KinematicCloud<ParcelType>::KinematicCloud
         )
     ),
     constProps_(particleProperties_),
+    subModelProperties_(particleProperties_.subDict("subModels")),
     active_(particleProperties_.lookup("active")),
     parcelTypeId_(readLabel(particleProperties_.lookup("parcelTypeId"))),
     coupled_(particleProperties_.lookup("coupled")),
@@ -276,7 +277,7 @@ Foam::KinematicCloud<ParcelType>::KinematicCloud
     (
         DispersionModel<KinematicCloud<ParcelType> >::New
         (
-            particleProperties_,
+            subModelProperties_,
             *this
         )
     ),
@@ -284,7 +285,7 @@ Foam::KinematicCloud<ParcelType>::KinematicCloud
     (
         DragModel<KinematicCloud<ParcelType> >::New
         (
-            particleProperties_,
+            subModelProperties_,
             *this
         )
     ),
@@ -292,7 +293,7 @@ Foam::KinematicCloud<ParcelType>::KinematicCloud
     (
         InjectionModel<KinematicCloud<ParcelType> >::New
         (
-            particleProperties_,
+            subModelProperties_,
             *this
         )
     ),
@@ -300,7 +301,7 @@ Foam::KinematicCloud<ParcelType>::KinematicCloud
     (
         CollisionModel<KinematicCloud<ParcelType> >::New
         (
-            particleProperties_,
+            subModelProperties_,
             *this
         )
     ),
@@ -308,7 +309,7 @@ Foam::KinematicCloud<ParcelType>::KinematicCloud
     (
         PatchInteractionModel<KinematicCloud<ParcelType> >::New
         (
-            particleProperties_,
+            subModelProperties_,
             *this
         )
     ),
@@ -316,7 +317,7 @@ Foam::KinematicCloud<ParcelType>::KinematicCloud
     (
         PostProcessingModel<KinematicCloud<ParcelType> >::New
         (
-            this->particleProperties_,
+            subModelProperties_,
             *this
         )
     ),
@@ -324,7 +325,7 @@ Foam::KinematicCloud<ParcelType>::KinematicCloud
     (
         SurfaceFilmModel<KinematicCloud<ParcelType> >::New
         (
-            this->particleProperties_,
+            subModelProperties_,
             *this,
             g
         )
diff --git a/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.H b/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.H
index 1d0a9038102..9138688a134 100644
--- a/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.H
+++ b/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.H
@@ -115,6 +115,9 @@ protected:
         //- Dictionary of particle properties
         IOdictionary particleProperties_;
 
+        //- Sub-models dictionary
+        const dictionary& subModelProperties_;
+
         //- Parcel constant properties
         typename ParcelType::constantProperties constProps_;
 
@@ -275,6 +278,9 @@ public:
                 //- Return particle properties dictionary
                 inline const IOdictionary& particleProperties() const;
 
+                //- Return reference to the sub-models dictionary
+                inline const dictionary& subModelProperties() const;
+
                 //- Return the constant properties
                 inline const typename ParcelType::constantProperties&
                     constProps() const;
diff --git a/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloudI.H b/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloudI.H
index 536e4e67738..3bbc78c905a 100644
--- a/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloudI.H
+++ b/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloudI.H
@@ -56,6 +56,14 @@ Foam::KinematicCloud<ParcelType>::particleProperties() const
 }
 
 
+template<class ParcelType>
+inline const Foam::dictionary&
+Foam::KinematicCloud<ParcelType>::subModelProperties() const
+{
+    return subModelProperties_;
+}
+
+
 template<class ParcelType>
 inline const typename ParcelType::constantProperties&
 Foam::KinematicCloud<ParcelType>::constProps() const
diff --git a/src/lagrangian/intermediate/clouds/Templates/ReactingCloud/ReactingCloud.C b/src/lagrangian/intermediate/clouds/Templates/ReactingCloud/ReactingCloud.C
index f3fb165b0e8..2a54ef86724 100644
--- a/src/lagrangian/intermediate/clouds/Templates/ReactingCloud/ReactingCloud.C
+++ b/src/lagrangian/intermediate/clouds/Templates/ReactingCloud/ReactingCloud.C
@@ -183,7 +183,7 @@ Foam::ReactingCloud<ParcelType>::ReactingCloud
     (
         CompositionModel<ReactingCloud<ParcelType> >::New
         (
-            this->particleProperties(),
+            this->subModelProperties(),
             *this
         )
     ),
@@ -191,7 +191,7 @@ Foam::ReactingCloud<ParcelType>::ReactingCloud
     (
         PhaseChangeModel<ReactingCloud<ParcelType> >::New
         (
-            this->particleProperties(),
+            this->subModelProperties(),
             *this
         )
     ),
diff --git a/src/lagrangian/intermediate/clouds/Templates/ReactingMultiphaseCloud/ReactingMultiphaseCloud.C b/src/lagrangian/intermediate/clouds/Templates/ReactingMultiphaseCloud/ReactingMultiphaseCloud.C
index 451e3716d43..579191bc634 100644
--- a/src/lagrangian/intermediate/clouds/Templates/ReactingMultiphaseCloud/ReactingMultiphaseCloud.C
+++ b/src/lagrangian/intermediate/clouds/Templates/ReactingMultiphaseCloud/ReactingMultiphaseCloud.C
@@ -156,7 +156,7 @@ Foam::ReactingMultiphaseCloud<ParcelType>::ReactingMultiphaseCloud
     (
         DevolatilisationModel<ReactingMultiphaseCloud<ParcelType> >::New
         (
-            this->particleProperties(),
+            this->subModelProperties(),
             *this
         )
     ),
@@ -164,7 +164,7 @@ Foam::ReactingMultiphaseCloud<ParcelType>::ReactingMultiphaseCloud
     (
         SurfaceReactionModel<ReactingMultiphaseCloud<ParcelType> >::New
         (
-            this->particleProperties(),
+            this->subModelProperties(),
             *this
         )
     ),
diff --git a/src/lagrangian/intermediate/clouds/Templates/ThermoCloud/ThermoCloud.C b/src/lagrangian/intermediate/clouds/Templates/ThermoCloud/ThermoCloud.C
index 26cbeedcc6a..f141c29f7b0 100644
--- a/src/lagrangian/intermediate/clouds/Templates/ThermoCloud/ThermoCloud.C
+++ b/src/lagrangian/intermediate/clouds/Templates/ThermoCloud/ThermoCloud.C
@@ -158,7 +158,7 @@ Foam::ThermoCloud<ParcelType>::ThermoCloud
     (
         HeatTransferModel<ThermoCloud<ParcelType> >::New
         (
-            this->particleProperties(),
+            this->subModelProperties(),
             *this
         )
     ),
diff --git a/tutorials/lagrangian/coalChemistryFoam/simplifiedSiwek/constant/coalCloud1Properties b/tutorials/lagrangian/coalChemistryFoam/simplifiedSiwek/constant/coalCloud1Properties
index 8ea186c54b6..cafc1da63fd 100644
--- a/tutorials/lagrangian/coalChemistryFoam/simplifiedSiwek/constant/coalCloud1Properties
+++ b/tutorials/lagrangian/coalChemistryFoam/simplifiedSiwek/constant/coalCloud1Properties
@@ -17,30 +17,6 @@ FoamFile
 
 active          true;
 
-InjectionModel  ManualInjection;
-
-DragModel       SphereDrag;
-
-DispersionModel StochasticDispersionRAS;
-
-PatchInteractionModel StandardWallInteraction;
-
-HeatTransferModel RanzMarshall;
-
-CompositionModel SingleMixtureFraction;
-
-PhaseChangeModel LiquidEvaporation;
-
-DevolatilisationModel ConstantRateDevolatilisation;
-
-SurfaceReactionModel COxidationKineticDiffusionLimitedRate;
-
-PostProcessingModel none;
-
-CollisionModel  none;
-
-SurfaceFilmModel none;
-
 radiation       on;
 
 coupled         true;
@@ -94,85 +70,112 @@ particleForces
     paramagnetic        off;
 }
 
-ManualInjectionCoeffs
+subModels
 {
-    massTotal       massTotal [ 1 0 0 0 0 ] 0.0001;
-    parcelBasisType mass;
-    SOI             0;
-    positionsFile   "coalCloud1Positions";
-    U0              ( 0 -10 0 );
-    parcelPDF
+    InjectionModel  ManualInjection;
+
+    DragModel       SphereDrag;
+
+    DispersionModel StochasticDispersionRAS;
+
+    PatchInteractionModel StandardWallInteraction;
+
+    HeatTransferModel RanzMarshall;
+
+    CompositionModel SingleMixtureFraction;
+
+    PhaseChangeModel LiquidEvaporation;
+
+    DevolatilisationModel ConstantRateDevolatilisation;
+
+    SurfaceReactionModel COxidationKineticDiffusionLimitedRate;
+
+    PostProcessingModel none;
+
+    CollisionModel  none;
+
+    SurfaceFilmModel none;
+
+    ManualInjectionCoeffs
     {
-        pdfType         RosinRammler;
-        RosinRammlerPDF
+        massTotal       massTotal [ 1 0 0 0 0 ] 0.0001;
+        parcelBasisType mass;
+        SOI             0;
+        positionsFile   "coalCloud1Positions";
+        U0              ( 0 -10 0 );
+        parcelPDF
         {
-            minValue        5e-06;
-            maxValue        0.0005;
-            d               5e-05;
-            n               0.5;
+            pdfType         RosinRammler;
+            RosinRammlerPDF
+            {
+                minValue        5e-06;
+                maxValue        0.0005;
+                d               5e-05;
+                n               0.5;
+            }
         }
     }
-}
 
-StandardWallInteractionCoeffs
-{
-    type            rebound;
-    e               1;
-    mu              0;
-}
+    StandardWallInteractionCoeffs
+    {
+        type            rebound;
+        e               1;
+        mu              0;
+    }
 
-RanzMarshallCoeffs
-{
-    BirdCorrection  true;
-}
+    RanzMarshallCoeffs
+    {
+        BirdCorrection  true;
+    }
 
-SingleMixtureFractionCoeffs
-{
-    phases
-    (
-        gas
-        {
-            CH4 0.604;
-            H2 0.099;
-            CO2 0.297;
-        }
-        liquid
-        {
-            H2O 1;
-        }
-        solid
-        {
-            ash 0.136304;
-            C 0.863696;
-        }
-    );
-    YGasTot0        0.211;
-    YLiquidTot0     0.026;
-    YSolidTot0      0.763;
-}
+    SingleMixtureFractionCoeffs
+    {
+        phases
+        (
+            gas
+            {
+                CH4 0.604;
+                H2 0.099;
+                CO2 0.297;
+            }
+            liquid
+            {
+                H2O 1;
+            }
+            solid
+            {
+                ash 0.136304;
+                C 0.863696;
+            }
+        );
+        YGasTot0        0.211;
+        YLiquidTot0     0.026;
+        YSolidTot0      0.763;
+    }
 
-LiquidEvaporationCoeffs
-{
-    enthalpyTransfer enthalpyDifference;
+    LiquidEvaporationCoeffs
+    {
+        enthalpyTransfer enthalpyDifference;
 
-    activeLiquids
-    (
-        H2O
-    );
-}
+        activeLiquids
+        (
+            H2O
+        );
+    }
 
-ConstantRateDevolatilisationCoeffs
-{
-    A0              A0 [ 0 0 -1 0 0 ] 12;
-    volatileResidualCoeff 0.001;
-}
+    ConstantRateDevolatilisationCoeffs
+    {
+        A0              A0 [ 0 0 -1 0 0 ] 12;
+        volatileResidualCoeff 0.001;
+    }
 
-COxidationKineticDiffusionLimitedRateCoeffs
-{
-    Sb              Sb [ 0 0 0 0 0 ] 2.667;
-    C1              C1 [ 0 0 0 0 0] 5.0E-12;
-    C2              C2 [ 0 0 0 0 0] 0.002;
-    E               E  [ 0 0 0 0 0] 7.9E+07;
+    COxidationKineticDiffusionLimitedRateCoeffs
+    {
+        Sb              Sb [ 0 0 0 0 0 ] 2.667;
+        C1              C1 [ 0 0 0 0 0] 5.0E-12;
+        C2              C2 [ 0 0 0 0 0] 0.002;
+        E               E  [ 0 0 0 0 0] 7.9E+07;
+    }
 }
 
 
diff --git a/tutorials/lagrangian/coalChemistryFoam/simplifiedSiwek/constant/limestoneCloud1Properties b/tutorials/lagrangian/coalChemistryFoam/simplifiedSiwek/constant/limestoneCloud1Properties
index db47f7306b1..91e44fbaeee 100644
--- a/tutorials/lagrangian/coalChemistryFoam/simplifiedSiwek/constant/limestoneCloud1Properties
+++ b/tutorials/lagrangian/coalChemistryFoam/simplifiedSiwek/constant/limestoneCloud1Properties
@@ -17,22 +17,6 @@ FoamFile
 
 active          true;
 
-InjectionModel  ManualInjection;
-
-DragModel       SphereDrag;
-
-DispersionModel StochasticDispersionRAS;
-
-PatchInteractionModel StandardWallInteraction;
-
-HeatTransferModel RanzMarshall;
-
-PostProcessingModel none;
-
-CollisionModel  none;
-
-SurfaceFilmModel none;
-
 radiation       on;
 
 coupled         true;
@@ -79,36 +63,55 @@ particleForces
     paramagnetic        off;
 }
 
-ManualInjectionCoeffs
+subModels
 {
-    massTotal       massTotal [ 1 0 0 0 0 ] 0.0001;
-    parcelBasisType mass;
-    SOI             0;
-    positionsFile   "limestonePositions";
-    U0              ( 0 0 0 );
-    parcelPDF
+    InjectionModel  ManualInjection;
+
+    DragModel       SphereDrag;
+
+    DispersionModel StochasticDispersionRAS;
+
+    PatchInteractionModel StandardWallInteraction;
+
+    HeatTransferModel RanzMarshall;
+
+    PostProcessingModel none;
+
+    CollisionModel  none;
+
+    SurfaceFilmModel none;
+
+    ManualInjectionCoeffs
     {
-        pdfType         RosinRammler;
-        RosinRammlerPDF
+        massTotal       massTotal [ 1 0 0 0 0 ] 0.0001;
+        parcelBasisType mass;
+        SOI             0;
+        positionsFile   "limestonePositions";
+        U0              ( 0 0 0 );
+        parcelPDF
         {
-            minValue        5e-06;
-            maxValue        0.000565;
-            d               4.8e-05;
-            n               0.5;
+            pdfType         RosinRammler;
+            RosinRammlerPDF
+            {
+                minValue        5e-06;
+                maxValue        0.000565;
+                d               4.8e-05;
+                n               0.5;
+            }
         }
     }
-}
 
-StandardWallInteractionCoeffs
-{
-    type            rebound;
-    e               1;
-    mu              0;
-}
+    StandardWallInteractionCoeffs
+    {
+        type            rebound;
+        e               1;
+        mu              0;
+    }
 
-RanzMarshallCoeffs
-{
-    BirdCorrection  false;
+    RanzMarshallCoeffs
+    {
+        BirdCorrection  false;
+    }
 }
 
 
diff --git a/tutorials/lagrangian/porousExplicitSourceReactingParcelFoam/filter/constant/reactingCloud1Properties b/tutorials/lagrangian/porousExplicitSourceReactingParcelFoam/filter/constant/reactingCloud1Properties
index 4534388250f..94e51f9d762 100644
--- a/tutorials/lagrangian/porousExplicitSourceReactingParcelFoam/filter/constant/reactingCloud1Properties
+++ b/tutorials/lagrangian/porousExplicitSourceReactingParcelFoam/filter/constant/reactingCloud1Properties
@@ -17,31 +17,6 @@ FoamFile
 
 active          true;
 
-InjectionModel  ReactingMultiphaseLookupTableInjection;
-//InjectionModel  ManualInjection;
-
-DragModel       SphereDrag;
-
-DispersionModel none;
-
-PatchInteractionModel LocalInteraction;
-
-HeatTransferModel RanzMarshall;
-
-CompositionModel SingleMixtureFraction;
-
-PhaseChangeModel LiquidEvaporation;
-
-PostProcessingModel PatchPostProcessing;
-
-DevolatilisationModel none;
-
-SurfaceReactionModel none;
-
-SurfaceFilmModel none;
-
-CollisionModel none;
-
 radiation       off;
 
 coupled         true;
@@ -95,102 +70,111 @@ particleForces
     paramagnetic        off;
 }
 
-ManualInjectionCoeffs
+subModels
 {
-    massTotal       massTotal [ 1 0 0 0 0 ] 1e-3;
-    parcelBasisType mass;
-    SOI             0.5;
-    positionsFile   "reactingCloud1Positions";
-    U0              ( 0 0 0 );
-    parcelPDF
+    InjectionModel  ReactingMultiphaseLookupTableInjection;
+
+    DragModel       SphereDrag;
+
+    DispersionModel none;
+
+    PatchInteractionModel LocalInteraction;
+
+    HeatTransferModel RanzMarshall;
+
+    CompositionModel SingleMixtureFraction;
+
+    PhaseChangeModel LiquidEvaporation;
+
+    PostProcessingModel PatchPostProcessing;
+
+    DevolatilisationModel none;
+
+    SurfaceReactionModel none;
+
+    SurfaceFilmModel none;
+
+    CollisionModel none;
+
+    ReactingMultiphaseLookupTableInjectionCoeffs
     {
-        pdfType         uniform;
-        uniformPDF
-        {
-            minValue        1e-04;
-            maxValue        1e-04;
-        }
+        massTotal       massTotal [ 1 0 0 0 0 ] 1e-2;
+        parcelBasisType mass;
+        SOI             0.5;
+        inputFile       "parcelInjectionProperties";
+        duration        1.0;
+        parcelsPerSecond 250;
     }
-}
 
-ReactingMultiphaseLookupTableInjectionCoeffs
-{
-    massTotal       massTotal [ 1 0 0 0 0 ] 1e-2;
-    parcelBasisType mass;
-    SOI             0.5;
-    inputFile       "parcelInjectionProperties";
-    duration        1.0;
-    parcelsPerSecond 250;
-}
-
-StandardWallInteractionCoeffs
-{
-    type            rebound;
-}
+    StandardWallInteractionCoeffs
+    {
+        type            rebound;
+    }
 
-LocalInteractionCoeffs
-{
-    patches
-    (
-        walls
-        {
-            type    rebound;
-        }
-        cycLeft_half0
-        {
-            type    rebound;
-        }
-        cycLeft_half1
-        {
-            type    rebound;
-        }
-    );
-}
+    LocalInteractionCoeffs
+    {
+        patches
+        (
+            walls
+            {
+                type    rebound;
+            }
+            cycLeft_half0
+            {
+                type    rebound;
+            }
+            cycLeft_half1
+            {
+                type    rebound;
+            }
+        );
+    }
 
-RanzMarshallCoeffs
-{
-    BirdCorrection  true;
-}
+    RanzMarshallCoeffs
+    {
+        BirdCorrection  true;
+    }
 
-SingleMixtureFractionCoeffs
-{
-    phases
-    (
-        gas
-        {
-        }
-        liquid
-        {
-            H2O 1;
-        }
-        solid
-        {
-        }
-    );
-    YGasTot0        0;
-    YLiquidTot0     1;
-    YSolidTot0      0;
-}
+    SingleMixtureFractionCoeffs
+    {
+        phases
+        (
+            gas
+            {
+            }
+            liquid
+            {
+                H2O 1;
+            }
+            solid
+            {
+            }
+        );
+        YGasTot0        0;
+        YLiquidTot0     1;
+        YSolidTot0      0;
+    }
 
-LiquidEvaporationCoeffs
-{
-    enthalpyTransfer enthalpyDifference;
+    LiquidEvaporationCoeffs
+    {
+        enthalpyTransfer enthalpyDifference;
 
-    activeLiquids
-    (
-        H2O
-    );
-}
+        activeLiquids
+        (
+            H2O
+        );
+    }
 
-PatchPostProcessingCoeffs
-{
-    maxStoredParcels 20;
+    PatchPostProcessingCoeffs
+    {
+        maxStoredParcels 20;
 
-    patches
-    (
-        cycLeft_half0
-        cycLeft_half1
-    );
+        patches
+        (
+            cycLeft_half0
+            cycLeft_half1
+        );
+    }
 }
 
 
diff --git a/tutorials/lagrangian/porousExplicitSourceReactingParcelFoam/parcelInBox/constant/reactingCloud1Properties b/tutorials/lagrangian/porousExplicitSourceReactingParcelFoam/parcelInBox/constant/reactingCloud1Properties
index dc6f9aba8bd..7243712aab8 100644
--- a/tutorials/lagrangian/porousExplicitSourceReactingParcelFoam/parcelInBox/constant/reactingCloud1Properties
+++ b/tutorials/lagrangian/porousExplicitSourceReactingParcelFoam/parcelInBox/constant/reactingCloud1Properties
@@ -17,30 +17,6 @@ FoamFile
 
 active          true;
 
-InjectionModel  ManualInjection;
-
-DragModel       SphereDrag;
-
-DispersionModel none;
-
-PatchInteractionModel StandardWallInteraction;
-
-HeatTransferModel RanzMarshall;
-
-CompositionModel SingleMixtureFraction;
-
-PhaseChangeModel LiquidEvaporation;
-
-DevolatilisationModel none;
-
-SurfaceReactionModel none;
-
-PostProcessingModel none;
-
-SurfaceFilmModel none;
-
-CollisionModel none;
-
 radiation       off;
 
 coupled         false;
@@ -96,71 +72,98 @@ particleForces
     paramagnetic    off;
 }
 
-ManualInjectionCoeffs
+subModels
 {
-    massTotal       massTotal [ 1 0 0 0 0 ] 5.23599e-10; // 1 droplet of density 1000 kg/m3
-    parcelBasisType mass;
-    SOI             0;
-    positionsFile   "reactingCloud1Positions";
-    U0              (0 0 0);
-    parcelPDF
+    InjectionModel  ManualInjection;
+
+    DragModel       SphereDrag;
+
+    DispersionModel none;
+
+    PatchInteractionModel StandardWallInteraction;
+
+    HeatTransferModel RanzMarshall;
+
+    CompositionModel SingleMixtureFraction;
+
+    PhaseChangeModel LiquidEvaporation;
+
+    DevolatilisationModel none;
+
+    SurfaceReactionModel none;
+
+    PostProcessingModel none;
+
+    SurfaceFilmModel none;
+
+    CollisionModel none;
+
+    ManualInjectionCoeffs
     {
-        pdfType         uniform;
-        uniformPDF
+        massTotal       massTotal [ 1 0 0 0 0 ] 5.23599e-10; // 1 droplet of density 1000 kg/m3
+        parcelBasisType mass;
+        SOI             0;
+        positionsFile   "reactingCloud1Positions";
+        U0              (0 0 0);
+        parcelPDF
         {
-            minValue        100e-06;
-            maxValue        100e-06;
+            pdfType         uniform;
+            uniformPDF
+            {
+                minValue        100e-06;
+                maxValue        100e-06;
+            }
         }
     }
-}
-StandardWallInteractionCoeffs
-{
-    type            rebound;
-}
+    StandardWallInteractionCoeffs
+    {
+        type            rebound;
+    }
 
-RanzMarshallCoeffs
-{
-    BirdCorrection  off;
-}
+    RanzMarshallCoeffs
+    {
+        BirdCorrection  off;
+    }
 
-SingleMixtureFractionCoeffs
-{
-    phases
-    (
-        gas
-        {
-        }
-        liquid
-        {
-            H2O 1;
-        }
-        solid
-        {
-        }
-    );
-    YGasTot0        0;
-    YLiquidTot0     1;
-    YSolidTot0      0;
-}
+    SingleMixtureFractionCoeffs
+    {
+        phases
+        (
+            gas
+            {
+            }
+            liquid
+            {
+                H2O 1;
+            }
+            solid
+            {
+            }
+        );
+        YGasTot0        0;
+        YLiquidTot0     1;
+        YSolidTot0      0;
+    }
 
-LiquidEvaporationCoeffs
-{
-    enthalpyTransfer enthalpyDifference; // latentHeat;
+    LiquidEvaporationCoeffs
+    {
+        enthalpyTransfer enthalpyDifference; // latentHeat;
 
-    activeLiquids
-    (
-        H2O
-    );
-}
+        activeLiquids
+        (
+            H2O
+        );
+    }
 
-PatchPostProcessingCoeffs
-{
-    maxStoredParcels 100;
+    PatchPostProcessingCoeffs
+    {
+        maxStoredParcels 100;
 
-    patches
-    (
-        outlet
-    );
+        patches
+        (
+            outlet
+        );
+    }
 }
 
 
diff --git a/tutorials/lagrangian/porousExplicitSourceReactingParcelFoam/verticalChannel/constant/reactingCloud1Properties b/tutorials/lagrangian/porousExplicitSourceReactingParcelFoam/verticalChannel/constant/reactingCloud1Properties
index 44a046965f7..c97747abb3a 100644
--- a/tutorials/lagrangian/porousExplicitSourceReactingParcelFoam/verticalChannel/constant/reactingCloud1Properties
+++ b/tutorials/lagrangian/porousExplicitSourceReactingParcelFoam/verticalChannel/constant/reactingCloud1Properties
@@ -17,30 +17,6 @@ FoamFile
 
 active          true;
 
-InjectionModel  PatchInjection;
-
-DragModel       SphereDrag;
-
-DispersionModel StochasticDispersionRAS;
-
-PatchInteractionModel StandardWallInteraction;
-
-HeatTransferModel RanzMarshall;
-
-CompositionModel SingleMixtureFraction;
-
-PhaseChangeModel LiquidEvaporation;
-
-DevolatilisationModel none;
-
-SurfaceReactionModel none;
-
-PostProcessingModel PatchPostProcessing;
-
-SurfaceFilmModel none;
-
-CollisionModel none;
-
 radiation       off;
 
 coupled         true;
@@ -96,93 +72,120 @@ particleForces
     paramagnetic    off;
 }
 
-PatchInjectionCoeffs
+subModels
 {
-    SOI             0.01;
-    massTotal       massTotal [ 1 0 0 0 0 ] 8;
-    parcelBasisType mass;
-    patchName       inletCentral;
-    duration        10000;
-    parcelsPerSecond 1e5;
-    U0              (40 0 0);
-    flowRateProfile constant 1;
-    parcelPDF
+    InjectionModel  PatchInjection;
+
+    DragModel       SphereDrag;
+
+    DispersionModel StochasticDispersionRAS;
+
+    PatchInteractionModel StandardWallInteraction;
+
+    HeatTransferModel RanzMarshall;
+
+    CompositionModel SingleMixtureFraction;
+
+    PhaseChangeModel LiquidEvaporation;
+
+    DevolatilisationModel none;
+
+    SurfaceReactionModel none;
+
+    PostProcessingModel PatchPostProcessing;
+
+    SurfaceFilmModel none;
+
+    CollisionModel none;
+
+    PatchInjectionCoeffs
     {
-        pdfType         general;
-        generalPDF
+        SOI             0.01;
+        massTotal       massTotal [ 1 0 0 0 0 ] 8;
+        parcelBasisType mass;
+        patchName       inletCentral;
+        duration        10000;
+        parcelsPerSecond 1e5;
+        U0              (40 0 0);
+        flowRateProfile constant 1;
+        parcelPDF
         {
-            distribution
-            (
-                (10e-06      0.0025)
-                (15e-06      0.0528)
-                (20e-06      0.2795)
-                (25e-06      1.0918)
-                (30e-06      2.3988)
-                (35e-06      4.4227)
-                (40e-06      6.3888)
-                (45e-06      8.6721)
-                (50e-06      10.3153)
-                (55e-06      11.6259)
-                (60e-06      12.0030)
-                (65e-06      10.4175)
-                (70e-06      10.8427)
-                (75e-06      8.0016)
-                (80e-06      6.1333)
-                (85e-06      3.8827)
-                (90e-06      3.4688)
-            );
+            pdfType         general;
+            generalPDF
+            {
+                distribution
+                (
+                    (10e-06      0.0025)
+                    (15e-06      0.0528)
+                    (20e-06      0.2795)
+                    (25e-06      1.0918)
+                    (30e-06      2.3988)
+                    (35e-06      4.4227)
+                    (40e-06      6.3888)
+                    (45e-06      8.6721)
+                    (50e-06      10.3153)
+                    (55e-06      11.6259)
+                    (60e-06      12.0030)
+                    (65e-06      10.4175)
+                    (70e-06      10.8427)
+                    (75e-06      8.0016)
+                    (80e-06      6.1333)
+                    (85e-06      3.8827)
+                    (90e-06      3.4688)
+                );
+            }
         }
     }
-}
 
-StandardWallInteractionCoeffs
-{
-    type            rebound;
-}
+    StandardWallInteractionCoeffs
+    {
+        type            rebound;
+    }
 
-RanzMarshallCoeffs
-{
-    BirdCorrection  off;
-}
+    RanzMarshallCoeffs
+    {
+        BirdCorrection  off;
+    }
 
-SingleMixtureFractionCoeffs
-{
-    phases
-    (
-        gas
-        {
-        }
-        liquid
-        {
-            H2O 1;
-        }
-        solid
-        {
-        }
-    );
-    YGasTot0        0;
-    YLiquidTot0     1;
-    YSolidTot0      0;
-}
+    SingleMixtureFractionCoeffs
+    {
+        phases
+        (
+            gas
+            {
+            }
+            liquid
+            {
+                H2O 1;
+            }
+            solid
+            {
+            }
+        );
+        YGasTot0        0;
+        YLiquidTot0     1;
+        YSolidTot0      0;
+    }
 
-LiquidEvaporationCoeffs
-{
-    enthalpyTransfer enthalpyDifference;
+    LiquidEvaporationCoeffs
+    {
+        enthalpyTransfer enthalpyDifference;
 
-    activeLiquids
-    (
-        H2O
-    );
-}
+        activeLiquids
+        (
+            H2O
+        );
+    }
 
-PatchPostProcessingCoeffs
-{
-    maxStoredParcels 100;
+    PatchPostProcessingCoeffs
+    {
+        maxStoredParcels 100;
 
-    patches
-    (
-        outlet
-    );
+        patches
+        (
+            outlet
+        );
+    }
 }
 
 
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/evaporationTest/constant/reactingCloud1Properties b/tutorials/lagrangian/reactingParcelFilmFoam/evaporationTest/constant/reactingCloud1Properties
index 3f3b7a8aac9..4f1233285c9 100644
--- a/tutorials/lagrangian/reactingParcelFilmFoam/evaporationTest/constant/reactingCloud1Properties
+++ b/tutorials/lagrangian/reactingParcelFilmFoam/evaporationTest/constant/reactingCloud1Properties
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  1.6                                   |
+|  \\    /   O peration     | Version:  dev                                   |
 |   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
@@ -17,26 +17,6 @@ FoamFile
 
 active          false; // true;
 
-InjectionModel  none;
-
-DragModel       SphereDrag;
-
-DispersionModel none;
-
-PatchInteractionModel StandardWallInteraction;
-
-CollisionModel  none;
-
-HeatTransferModel none;
-
-CompositionModel SinglePhaseMixture;
-
-PhaseChangeModel none;
-
-PostProcessingModel none;
-
-SurfaceFilmModel ThermoSurfaceFilm;
-
 radiation       off;
 
 coupled         true;
@@ -88,24 +68,47 @@ particleForces
     paramagnetic    off;
 }
 
-StandardWallInteractionCoeffs
+subModels
 {
-    type            rebound;
-}
+    InjectionModel  none;
 
-SinglePhaseMixtureCoeffs
-{
-    phases
-    (
-        liquid
-        {
-            H2O 1;
-        }
-    );
-}
+    DragModel       SphereDrag;
+
+    DispersionModel none;
+
+    PatchInteractionModel StandardWallInteraction;
+
+    CollisionModel  none;
+
+    HeatTransferModel none;
+
+    CompositionModel SinglePhaseMixture;
 
-ThermoSurfaceFilmCoeffs
-{}
+    PhaseChangeModel none;
+
+    PostProcessingModel none;
+
+    SurfaceFilmModel ThermoSurfaceFilm;
+
+    StandardWallInteractionCoeffs
+    {
+        type            rebound;
+    }
+
+    SinglePhaseMixtureCoeffs
+    {
+        phases
+        (
+            liquid
+            {
+                H2O 1;
+            }
+        );
+    }
+
+    ThermoSurfaceFilmCoeffs
+    {}
+}
 
 
 // ************************************************************************* //
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/constant/reactingCloud1Properties b/tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/constant/reactingCloud1Properties
index 072f100d499..861b7a0a2cf 100644
--- a/tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/constant/reactingCloud1Properties
+++ b/tutorials/lagrangian/reactingParcelFilmFoam/hotBoxes/constant/reactingCloud1Properties
@@ -1,7 +1,7 @@
 /*--------------------------------*- C++ -*----------------------------------*\
 | =========                 |                                                 |
 | \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
-|  \\    /   O peration     | Version:  1.6                                   |
+|  \\    /   O peration     | Version:  dev                                   |
 |   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
 |    \\/     M anipulation  |                                                 |
 \*---------------------------------------------------------------------------*/
@@ -17,26 +17,6 @@ FoamFile
 
 active          true;
 
-InjectionModel  ConeInjectionMP;
-
-DragModel       SphereDrag;
-
-DispersionModel none;
-
-CollisionModel  none;
- 
-PatchInteractionModel StandardWallInteraction;
-
-HeatTransferModel none; //RanzMarshall;
-
-CompositionModel SinglePhaseMixture;
-
-PhaseChangeModel none; // LiquidEvaporation;
-
-PostProcessingModel none;
-
-SurfaceFilmModel ThermoSurfaceFilm; // none;
-
 radiation       off;
 
 coupled         true;
@@ -88,94 +68,117 @@ particleForces
     paramagnetic    off;
 }
 
-ConeInjectionCoeffs
+subModels
 {
-    SOI             0.000;
-    duration        10.000;
-    position        (0.5 0.8 1.45);
-    direction       (0 -0.5 -1);
-    massTotal       massTotal [ 1 0 0 0 0 ] 0.025; // 1e-3;
-    parcelsPerSecond 500;
-    parcelBasisType mass;
-    flowRateProfile constant 0.01;
-    Umag            constant 5;
-    thetaInner      constant 0;
-    thetaOuter      constant 30;
-
-    parcelPDF
+    InjectionModel  ConeInjectionMP;
+
+    DragModel       SphereDrag;
+
+    DispersionModel none;
+
+    CollisionModel  none;
+
+    PatchInteractionModel StandardWallInteraction;
+
+    HeatTransferModel none; //RanzMarshall;
+
+    CompositionModel SinglePhaseMixture;
+
+    PhaseChangeModel none; // LiquidEvaporation;
+
+    PostProcessingModel none;
+
+    SurfaceFilmModel ThermoSurfaceFilm; // none;
+
+    ConeInjectionCoeffs
     {
-        pdfType         RosinRammler;
-        RosinRammlerPDF
+        SOI             0.000;
+        duration        10.000;
+        position        (0.5 0.8 1.45);
+        direction       (0 -0.5 -1);
+        massTotal       massTotal [ 1 0 0 0 0 ] 0.025; // 1e-3;
+        parcelsPerSecond 500;
+        parcelBasisType mass;
+        flowRateProfile constant 0.01;
+        Umag            constant 5;
+        thetaInner      constant 0;
+        thetaOuter      constant 30;
+
+        parcelPDF
         {
-            minValue        5e-04;
-            maxValue        0.0012;
-            d               7.5e-05;
-            n               0.5;
+            pdfType         RosinRammler;
+            RosinRammlerPDF
+            {
+                minValue        5e-04;
+                maxValue        0.0012;
+                d               7.5e-05;
+                n               0.5;
+            }
         }
     }
-}
 
-ConeInjectionMPCoeffs
-{                    
-    SOI             0.000;
-    duration        20.000;
-    positionsFile   "reactingCloud1Positions";
-    axesFile        "reactingCloud1Axes";     
-    massTotal       massTotal [ 1 0 0 0 0 ] 10;
-    parcelsPerInjector 20000;                                            
-    parcelsPerSecond 500;                                                
-    parcelBasisType mass;                                                
-    flowRateProfile constant 0.1;                                        
-    Umag            constant 3.0;                                        
-    thetaInner      constant 0;                                          
-    thetaOuter      constant 45;                                         
-
-    parcelPDF                           
-    {                                   
-        pdfType         RosinRammler;   
-        RosinRammlerPDF                 
-        {                               
-            minValue        5e-04;      
-            maxValue        0.0012;     
-            d               7.5e-05;
-            n               0.5;    
-        }                               
-    }                                   
+    ConeInjectionMPCoeffs
+    {
+        SOI             0.000;
+        duration        20.000;
+        positionsFile   "reactingCloud1Positions";
+        axesFile        "reactingCloud1Axes";
+        massTotal       massTotal [ 1 0 0 0 0 ] 10;
+        parcelsPerInjector 20000;
+        parcelsPerSecond 500;
+        parcelBasisType mass;
+        flowRateProfile constant 0.1;
+        Umag            constant 3.0;
+        thetaInner      constant 0;
+        thetaOuter      constant 45;
+
+        parcelPDF
+        {
+            pdfType         RosinRammler;
+            RosinRammlerPDF
+            {
+                minValue        5e-04;
+                maxValue        0.0012;
+                d               7.5e-05;
+                n               0.5;
+            }
+        }
+
+    }
 
-}
 
+    StandardWallInteractionCoeffs
+    {
+        type            rebound;
+    }
 
-StandardWallInteractionCoeffs
-{
-    type            rebound;
-}
+    RanzMarshallCoeffs
+    {
+        BirdCorrection  false;
+    }
 
-RanzMarshallCoeffs
-{
-    BirdCorrection  false;
-}
+    SinglePhaseMixtureCoeffs
+    {
+        phases
+        (
+            liquid
+            {
+                H2O 1;
+            }
+        );
+    }
 
-SinglePhaseMixtureCoeffs
-{
-    phases
-    (
-        liquid
-        {
-            H2O 1;
-        }
-    );
-}
+    LiquidEvaporationCoeffs
+    {
+        activeLiquids
+        (
+            H2O
+        );
+    }
 
-LiquidEvaporationCoeffs
-{
-    activeLiquids
-    (
-        H2O
-    );
+    ThermoSurfaceFilmCoeffs
+    {}
 }
 
-ThermoSurfaceFilmCoeffs
-{}
-
 
 // ************************************************************************* //
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/multipleBoxes/constant/reactingCloud1Properties b/tutorials/lagrangian/reactingParcelFilmFoam/multipleBoxes/constant/reactingCloud1Properties
index 51f281bdad5..87e5b789a90 100644
--- a/tutorials/lagrangian/reactingParcelFilmFoam/multipleBoxes/constant/reactingCloud1Properties
+++ b/tutorials/lagrangian/reactingParcelFilmFoam/multipleBoxes/constant/reactingCloud1Properties
@@ -17,26 +17,6 @@ FoamFile
 
 active          true;
 
-InjectionModel  ConeInjectionMP;
-
-DragModel       SphereDrag;
-
-DispersionModel none;
-
-PatchInteractionModel StandardWallInteraction;
-
-HeatTransferModel none; //RanzMarshall;
-
-CompositionModel SinglePhaseMixture;
-
-PhaseChangeModel none; // LiquidEvaporation;
-
-PostProcessingModel none;
-
-CollisionModel none;
-
-SurfaceFilmModel ThermoSurfaceFilm; // none;
-
 radiation       off;
 
 coupled         true;
@@ -88,94 +68,117 @@ particleForces
     paramagnetic        off;
 }
 
-ConeInjectionCoeffs
+subModels
 {
-    SOI             0.000;
-    duration        10.000;
-    position        (0.5 0.8 1.45);
-    direction       (0 -0.5 -1);
-    massTotal       massTotal [ 1 0 0 0 0 ] 0.025; // 1e-3;
-    parcelsPerSecond 500;
-    parcelBasisType mass;
-    flowRateProfile constant 0.01;
-    Umag            constant 5;
-    thetaInner      constant 0;
-    thetaOuter      constant 30;
-
-    parcelPDF
+    InjectionModel  ConeInjectionMP;
+
+    DragModel       SphereDrag;
+
+    DispersionModel none;
+
+    PatchInteractionModel StandardWallInteraction;
+
+    HeatTransferModel none; //RanzMarshall;
+
+    CompositionModel SinglePhaseMixture;
+
+    PhaseChangeModel none; // LiquidEvaporation;
+
+    PostProcessingModel none;
+
+    CollisionModel none;
+
+    SurfaceFilmModel ThermoSurfaceFilm; // none;
+
+    ConeInjectionCoeffs
     {
-        pdfType         RosinRammler;
-        RosinRammlerPDF
+        SOI             0.000;
+        duration        10.000;
+        position        (0.5 0.8 1.45);
+        direction       (0 -0.5 -1);
+        massTotal       massTotal [ 1 0 0 0 0 ] 0.025; // 1e-3;
+        parcelsPerSecond 500;
+        parcelBasisType mass;
+        flowRateProfile constant 0.01;
+        Umag            constant 5;
+        thetaInner      constant 0;
+        thetaOuter      constant 30;
+
+        parcelPDF
         {
-            minValue        5e-04;
-            maxValue        0.0012;
-            d               7.5e-05;
-            n               0.5;
+            pdfType         RosinRammler;
+            RosinRammlerPDF
+            {
+                minValue        5e-04;
+                maxValue        0.0012;
+                d               7.5e-05;
+                n               0.5;
+            }
         }
     }
-}
 
-ConeInjectionMPCoeffs
-{
-    SOI             0.000;
-    duration        20.000;
-    positionsFile   "reactingCloud1Positions";
-    axesFile        "reactingCloud1Axes";
-    massTotal       massTotal [ 1 0 0 0 0 ] 10;
-    parcelsPerInjector 20000;
-    parcelsPerSecond 500;
-    parcelBasisType mass;
-    flowRateProfile constant 0.1;
-    Umag            constant 3.0;
-    thetaInner      constant 0;
-    thetaOuter      constant 45;
-
-    parcelPDF
+    ConeInjectionMPCoeffs
     {
-        pdfType         RosinRammler;
-        RosinRammlerPDF
+        SOI             0.000;
+        duration        20.000;
+        positionsFile   "reactingCloud1Positions";
+        axesFile        "reactingCloud1Axes";
+        massTotal       massTotal [ 1 0 0 0 0 ] 10;
+        parcelsPerInjector 20000;
+        parcelsPerSecond 500;
+        parcelBasisType mass;
+        flowRateProfile constant 0.1;
+        Umag            constant 3.0;
+        thetaInner      constant 0;
+        thetaOuter      constant 45;
+
+        parcelPDF
         {
-            minValue        5e-04;
-            maxValue        0.0012;
-            d               7.5e-05;
-            n               0.5;
+            pdfType         RosinRammler;
+            RosinRammlerPDF
+            {
+                minValue        5e-04;
+                maxValue        0.0012;
+                d               7.5e-05;
+                n               0.5;
+            }
         }
+
     }
 
-}
 
+    StandardWallInteractionCoeffs
+    {
+        type            rebound;
+    }
 
-StandardWallInteractionCoeffs
-{
-    type            rebound;
-}
+    RanzMarshallCoeffs
+    {
+        BirdCorrection  false;
+    }
 
-RanzMarshallCoeffs
-{
-    BirdCorrection  false;
-}
+    SinglePhaseMixtureCoeffs
+    {
+        phases
+        (
+            liquid
+            {
+                H2O 1;
+            }
+        );
+    }
 
-SinglePhaseMixtureCoeffs
-{
-    phases
-    (
-        liquid
-        {
-            H2O 1;
-        }
-    );
-}
+    LiquidEvaporationCoeffs
+    {
+        activeLiquids
+        (
+            H2O
+        );
+    }
 
-LiquidEvaporationCoeffs
-{
-    activeLiquids
-    (
-        H2O
-    );
+    ThermoSurfaceFilmCoeffs
+    {}
 }
 
-ThermoSurfaceFilmCoeffs
-{}
-
 
 // ************************************************************************* //
diff --git a/tutorials/lagrangian/reactingParcelFilmFoam/panel/constant/reactingCloud1Properties b/tutorials/lagrangian/reactingParcelFilmFoam/panel/constant/reactingCloud1Properties
index 73494b022da..bbce9a45bb9 100644
--- a/tutorials/lagrangian/reactingParcelFilmFoam/panel/constant/reactingCloud1Properties
+++ b/tutorials/lagrangian/reactingParcelFilmFoam/panel/constant/reactingCloud1Properties
@@ -17,26 +17,6 @@ FoamFile
 
 active          false; // true;
 
-InjectionModel  none;
-
-DragModel       SphereDrag;
-
-DispersionModel none;
-
-PatchInteractionModel StandardWallInteraction;
-
-HeatTransferModel none;
-
-CompositionModel SinglePhaseMixture;
-
-PhaseChangeModel none;
-
-PostProcessingModel none;
-
-CollisionModel none;
-
-SurfaceFilmModel ThermoSurfaceFilm;
-
 radiation       off;
 
 coupled         true;
@@ -88,24 +68,47 @@ particleForces
     paramagnetic        off;
 }
 
-StandardWallInteractionCoeffs
+subModels
 {
-    type            rebound;
-}
+    InjectionModel  none;
 
-SinglePhaseMixtureCoeffs
-{
-    phases
-    (
-        liquid
-        {
-            H2O 1;
-        }
-    );
-}
+    DragModel       SphereDrag;
+
+    DispersionModel none;
+
+    PatchInteractionModel StandardWallInteraction;
+
+    HeatTransferModel none;
+
+    CompositionModel SinglePhaseMixture;
+
+    PhaseChangeModel none;
 
-ThermoSurfaceFilmCoeffs
-{}
+    PostProcessingModel none;
+
+    CollisionModel none;
+
+    SurfaceFilmModel ThermoSurfaceFilm;
+
+    StandardWallInteractionCoeffs
+    {
+        type            rebound;
+    }
+
+    SinglePhaseMixtureCoeffs
+    {
+        phases
+        (
+            liquid
+            {
+                H2O 1;
+            }
+        );
+    }
+
+    ThermoSurfaceFilmCoeffs
+    {}
+}
 
 
 // ************************************************************************* //
diff --git a/tutorials/lagrangian/reactingParcelFoam/evaporationTest/constant/reactingCloud1Properties b/tutorials/lagrangian/reactingParcelFoam/evaporationTest/constant/reactingCloud1Properties
index ca70790376d..e783101066a 100644
--- a/tutorials/lagrangian/reactingParcelFoam/evaporationTest/constant/reactingCloud1Properties
+++ b/tutorials/lagrangian/reactingParcelFoam/evaporationTest/constant/reactingCloud1Properties
@@ -17,26 +17,6 @@ FoamFile
 
 active          true;
 
-InjectionModel  ManualInjection;
-
-DragModel       SphereDrag;
-
-DispersionModel none;
-
-PatchInteractionModel StandardWallInteraction;
-
-HeatTransferModel RanzMarshall;
-
-CompositionModel SinglePhaseMixture;
-
-PhaseChangeModel LiquidEvaporation;
-
-PostProcessingModel none;
-
-CollisionModel none;
-
-SurfaceFilmModel none;
-
 radiation       off;
 
 coupled         true;
@@ -88,53 +68,77 @@ particleForces
     paramagnetic        off;
 }
 
-ManualInjectionCoeffs
+subModels
 {
-    massTotal       massTotal [ 1 0 0 0 0 ] 1e-8;
-    parcelBasisType mass;
-    SOI             0;
-    positionsFile   "reactingCloud1Positions";
-    U0              ( 0 0 0 );
-    parcelPDF
+    InjectionModel  ManualInjection;
+
+    DragModel       SphereDrag;
+
+    DispersionModel none;
+
+    PatchInteractionModel StandardWallInteraction;
+
+    HeatTransferModel RanzMarshall;
+
+    CompositionModel SinglePhaseMixture;
+
+    PhaseChangeModel LiquidEvaporation;
+
+    PostProcessingModel none;
+
+    CollisionModel none;
+
+    SurfaceFilmModel none;
+
+    ManualInjectionCoeffs
     {
-        pdfType         uniform;
-        uniformPDF
+        massTotal       massTotal [ 1 0 0 0 0 ] 1e-8;
+        parcelBasisType mass;
+        SOI             0;
+        positionsFile   "reactingCloud1Positions";
+        U0              ( 0 0 0 );
+        parcelPDF
         {
-            minValue        1e-04;
-            maxValue        1e-04;
+            pdfType         uniform;
+            uniformPDF
+            {
+                minValue        1e-04;
+                maxValue        1e-04;
+            }
         }
     }
-}
 
-StandardWallInteractionCoeffs
-{
-    type            rebound;
-}
+    StandardWallInteractionCoeffs
+    {
+        type            rebound;
+    }
 
-RanzMarshallCoeffs
-{
-    BirdCorrection  true;
-}
+    RanzMarshallCoeffs
+    {
+        BirdCorrection  true;
+    }
 
-SinglePhaseMixtureCoeffs
-{
-    phases
-    (
-        liquid
-        {
-            H2O 1;
-        }
-    );
-}
+    SinglePhaseMixtureCoeffs
+    {
+        phases
+        (
+            liquid
+            {
+                H2O 1;
+            }
+        );
+    }
 
-LiquidEvaporationCoeffs
-{
-    enthalpyTransfer enthalpyDifference;
+    LiquidEvaporationCoeffs
+    {
+        enthalpyTransfer enthalpyDifference;
 
-    activeLiquids
-    (
-        H2O
-    );
+        activeLiquids
+        (
+            H2O
+        );
+    }
 }
 
+
 // ************************************************************************* //
diff --git a/tutorials/lagrangian/rhoPisoTwinParcelFoam/simplifiedSiwek/constant/kinematicCloud1Properties b/tutorials/lagrangian/rhoPisoTwinParcelFoam/simplifiedSiwek/constant/kinematicCloud1Properties
index f8223e42b59..e10e6a2c463 100644
--- a/tutorials/lagrangian/rhoPisoTwinParcelFoam/simplifiedSiwek/constant/kinematicCloud1Properties
+++ b/tutorials/lagrangian/rhoPisoTwinParcelFoam/simplifiedSiwek/constant/kinematicCloud1Properties
@@ -17,20 +17,6 @@ FoamFile
 
 active          true;
 
-InjectionModel  ManualInjection;
-
-DragModel       SphereDrag;
-
-DispersionModel StochasticDispersionRAS;
-
-PatchInteractionModel StandardWallInteraction;
-
-PostProcessingModel none;
-
-SurfaceFilmModel none;
-
-CollisionModel none;
-
 coupled         true;
 
 cellValueSourceCorrection on;
@@ -66,54 +52,71 @@ particleForces
     paramagnetic        off;
 }
 
-ManualInjectionCoeffs
+subModels
 {
-    massTotal       massTotal [ 1 0 0 0 0 ] 0.0002;
-    parcelBasisType mass;
-    SOI             0;
-    positionsFile   "kinematicCloud1Positions";
-    U0              ( 0 0 0 );
-    parcelPDF
+    InjectionModel  ManualInjection;
+
+    DragModel       SphereDrag;
+
+    DispersionModel StochasticDispersionRAS;
+
+    PatchInteractionModel StandardWallInteraction;
+
+    PostProcessingModel none;
+
+    SurfaceFilmModel none;
+
+    CollisionModel none;
+
+    ManualInjectionCoeffs
     {
-        pdfType         RosinRammler;
-        RosinRammlerPDF
+        massTotal       massTotal [ 1 0 0 0 0 ] 0.0002;
+        parcelBasisType mass;
+        SOI             0;
+        positionsFile   "kinematicCloud1Positions";
+        U0              ( 0 0 0 );
+        parcelPDF
         {
-            minValue        5e-05;
-            maxValue        0.0001;
-            d               7.5e-05;
-            n               0.5;
+            pdfType         RosinRammler;
+            RosinRammlerPDF
+            {
+                minValue        5e-05;
+                maxValue        0.0001;
+                d               7.5e-05;
+                n               0.5;
+            }
         }
     }
-}
 
-ConeInjectionCoeffs
-{
-    SOI             0.001;
-    duration        0.005;
-    position        ( 0.25 0.25 0.05 );
-    direction       ( 0 -1 0 );
-    parcelsPerSecond 10000;
-    flowRateProfile Constant 0.01;
-    Umag            Constant 50;
-    thetaInner      Constant 0;
-    thetaOuter      Constant 30;
-
-    parcelPDF
+    ConeInjectionCoeffs
     {
-        pdfType         RosinRammler;
-        RosinRammlerPDF
+        SOI             0.001;
+        duration        0.005;
+        position        ( 0.25 0.25 0.05 );
+        direction       ( 0 -1 0 );
+        parcelsPerSecond 10000;
+        flowRateProfile Constant 0.01;
+        Umag            Constant 50;
+        thetaInner      Constant 0;
+        thetaOuter      Constant 30;
+
+        parcelPDF
         {
-            minValue        5e-05;
-            maxValue        0.0001;
-            d               ( 7.5e-05 );
-            n               ( 0.5 );
+            pdfType         RosinRammler;
+            RosinRammlerPDF
+            {
+                minValue        5e-05;
+                maxValue        0.0001;
+                d               ( 7.5e-05 );
+                n               ( 0.5 );
+            }
         }
     }
-}
 
-StandardWallInteractionCoeffs
-{
-    type            rebound;
+    StandardWallInteractionCoeffs
+    {
+        type            rebound;
+    }
 }
 
 
diff --git a/tutorials/lagrangian/rhoPisoTwinParcelFoam/simplifiedSiwek/constant/thermoCloud1Properties b/tutorials/lagrangian/rhoPisoTwinParcelFoam/simplifiedSiwek/constant/thermoCloud1Properties
index 25a6be3624a..7817e80b7be 100644
--- a/tutorials/lagrangian/rhoPisoTwinParcelFoam/simplifiedSiwek/constant/thermoCloud1Properties
+++ b/tutorials/lagrangian/rhoPisoTwinParcelFoam/simplifiedSiwek/constant/thermoCloud1Properties
@@ -17,22 +17,6 @@ FoamFile
 
 active          true;
 
-InjectionModel  ManualInjection;
-
-DragModel       SphereDrag;
-
-DispersionModel StochasticDispersionRAS;
-
-PatchInteractionModel StandardWallInteraction;
-
-HeatTransferModel RanzMarshall;
-
-PostProcessingModel none;
-
-CollisionModel none;
-
-SurfaceFilmModel none;
-
 radiation       off;
 
 coupled         true;
@@ -79,35 +63,54 @@ particleForces
     paramagnetic        off;
 }
 
-ManualInjectionCoeffs
+subModels
 {
-    massTotal       massTotal [ 1 0 0 0 0 ] 0.0001;
-    parcelBasisType mass;
-    SOI             0;
-    positionsFile   "thermoCloud1Positions";
-    U0              ( 0 0 0 );
-    parcelPDF
+    InjectionModel  ManualInjection;
+
+    DragModel       SphereDrag;
+
+    DispersionModel StochasticDispersionRAS;
+
+    PatchInteractionModel StandardWallInteraction;
+
+    HeatTransferModel RanzMarshall;
+
+    PostProcessingModel none;
+
+    CollisionModel none;
+
+    SurfaceFilmModel none;
+
+    ManualInjectionCoeffs
     {
-        pdfType         RosinRammler;
-        RosinRammlerPDF
+        massTotal       massTotal [ 1 0 0 0 0 ] 0.0001;
+        parcelBasisType mass;
+        SOI             0;
+        positionsFile   "thermoCloud1Positions";
+        U0              ( 0 0 0 );
+        parcelPDF
         {
-            minValue        5e-06;
-            maxValue        0.0005;
-            d               5e-05;
-            n               0.5;
+            pdfType         RosinRammler;
+            RosinRammlerPDF
+            {
+                minValue        5e-06;
+                maxValue        0.0005;
+                d               5e-05;
+                n               0.5;
+            }
         }
     }
-}
 
-StandardWallInteractionCoeffs
-{
-    type            rebound;
-}
+    StandardWallInteractionCoeffs
+    {
+        type            rebound;
+    }
 
-RanzMarshallCoeffs
-{
-    // thermal shielding
-    BirdCorrection  false;
+    RanzMarshallCoeffs
+    {
+        // thermal shielding
+        BirdCorrection  false;
+    }
 }
 
 
-- 
GitLab