diff --git a/src/lagrangian/intermediate/Make/files b/src/lagrangian/intermediate/Make/files
index 44d371fdefa154b35a84bf3bc5ac81a7776f3432..7e2bd41a8ee8002979b2f967396f8f4845f1b627 100644
--- a/src/lagrangian/intermediate/Make/files
+++ b/src/lagrangian/intermediate/Make/files
@@ -22,44 +22,43 @@ clouds/derived/basicReactingMultiphaseCloud/basicReactingMultiphaseCloud.C
 /* kinematic parcel sub-models */
 KINEMATICPARCEL=$(DERIVEDPARCELS)/basicKinematicParcel
 $(KINEMATICPARCEL)/defineBasicKinematicParcel.C
-$(KINEMATICPARCEL)/makeBasicKinematicParcelDispersionModels.C
-$(KINEMATICPARCEL)/makeBasicKinematicParcelDragModels.C
-$(KINEMATICPARCEL)/makeBasicKinematicParcelInjectionModels.C
-$(KINEMATICPARCEL)/makeBasicKinematicParcelWallInteractionModels.C
+$(KINEMATICPARCEL)/submodels/makeBasicKinematicParcelDispersionModels.C
+$(KINEMATICPARCEL)/submodels/makeBasicKinematicParcelDragModels.C
+$(KINEMATICPARCEL)/submodels/makeBasicKinematicParcelInjectionModels.C
+$(KINEMATICPARCEL)/submodels/makeBasicKinematicParcelWallInteractionModels.C
 
 /* thermo parcel sub-models */
 THERMOPARCEL=$(DERIVEDPARCELS)/basicThermoParcel
 $(THERMOPARCEL)/defineBasicThermoParcel.C
-$(THERMOPARCEL)/makeBasicThermoParcelDispersionModels.C
-$(THERMOPARCEL)/makeBasicThermoParcelDragModels.C
-$(THERMOPARCEL)/makeBasicThermoParcelHeatTransferModels.C
-$(THERMOPARCEL)/makeBasicThermoParcelInjectionModels.C
-$(THERMOPARCEL)/makeBasicThermoParcelWallInteractionModels.C
+$(THERMOPARCEL)/submodels/makeBasicThermoParcelDispersionModels.C
+$(THERMOPARCEL)/submodels/makeBasicThermoParcelDragModels.C
+$(THERMOPARCEL)/submodels/makeBasicThermoParcelHeatTransferModels.C
+$(THERMOPARCEL)/submodels/makeBasicThermoParcelInjectionModels.C
+$(THERMOPARCEL)/submodels/makeBasicThermoParcelWallInteractionModels.C
 
 /* reacting parcel sub-models */
 REACTINGPARCEL=$(DERIVEDPARCELS)/basicReactingParcel
 $(REACTINGPARCEL)/defineBasicReactingParcel.C
-$(REACTINGPARCEL)/makeBasicReactingParcelCompositionModels.C
-$(REACTINGPARCEL)/makeBasicReactingParcelDispersionModels.C
-$(REACTINGPARCEL)/makeBasicReactingParcelDragModels.C
-$(REACTINGPARCEL)/makeBasicReactingParcelHeatTransferModels.C
-$(REACTINGPARCEL)/makeBasicReactingParcelInjectionModels.C
-$(REACTINGPARCEL)/makeBasicReactingParcelPhaseChangeModels.C
-$(REACTINGPARCEL)/makeBasicReactingParcelSurfaceReactionModels.C
-$(REACTINGPARCEL)/makeBasicReactingParcelWallInteractionModels.C
+$(REACTINGPARCEL)/submodels/makeBasicReactingParcelCompositionModels.C
+$(REACTINGPARCEL)/submodels/makeBasicReactingParcelDispersionModels.C
+$(REACTINGPARCEL)/submodels/makeBasicReactingParcelDragModels.C
+$(REACTINGPARCEL)/submodels/makeBasicReactingParcelHeatTransferModels.C
+$(REACTINGPARCEL)/submodels/makeBasicReactingParcelInjectionModels.C
+$(REACTINGPARCEL)/submodels/makeBasicReactingParcelPhaseChangeModels.C
+$(REACTINGPARCEL)/submodels/makeBasicReactingParcelWallInteractionModels.C
 
 /* reacting multiphase parcel sub-models */
 REACTINGMPPARCEL=$(DERIVEDPARCELS)/basicReactingMultiphaseParcel
 $(REACTINGMPPARCEL)/defineBasicReactingMultiphaseParcel.C
-$(REACTINGMPPARCEL)/makeBasicReactingMultiphaseParcelCompositionModels.C
-$(REACTINGMPPARCEL)/makeBasicReactingMultiphaseParcelDevolatilisationModels.C
-$(REACTINGMPPARCEL)/makeBasicReactingMultiphaseParcelDispersionModels.C
-$(REACTINGMPPARCEL)/makeBasicReactingMultiphaseParcelDragModels.C
-$(REACTINGMPPARCEL)/makeBasicReactingMultiphaseParcelHeatTransferModels.C
-$(REACTINGMPPARCEL)/makeBasicReactingMultiphaseParcelInjectionModels.C
-$(REACTINGMPPARCEL)/makeBasicReactingMultiphaseParcelPhaseChangeModels.C
-$(REACTINGMPPARCEL)/makeBasicReactingMultiphaseParcelSurfaceReactionModels.C
-$(REACTINGMPPARCEL)/makeBasicReactingMultiphaseParcelWallInteractionModels.C
+$(REACTINGMPPARCEL)/submodels/makeBasicReactingMultiphaseParcelCompositionModels.C
+$(REACTINGMPPARCEL)/submodels/makeBasicReactingMultiphaseParcelDevolatilisationModels.C
+$(REACTINGMPPARCEL)/submodels/makeBasicReactingMultiphaseParcelDispersionModels.C
+$(REACTINGMPPARCEL)/submodels/makeBasicReactingMultiphaseParcelDragModels.C
+$(REACTINGMPPARCEL)/submodels/makeBasicReactingMultiphaseParcelHeatTransferModels.C
+$(REACTINGMPPARCEL)/submodels/makeBasicReactingMultiphaseParcelInjectionModels.C
+$(REACTINGMPPARCEL)/submodels/makeBasicReactingMultiphaseParcelPhaseChangeModels.C
+$(REACTINGMPPARCEL)/submodels/makeBasicReactingMultiphaseParcelSurfaceReactionModels.C
+$(REACTINGMPPARCEL)/submodels/makeBasicReactingMultiphaseParcelWallInteractionModels.C
 
 /* bolt-on models */
 submodels/addOns/radiation/absorptionEmission/cloudAbsorptionEmission/cloudAbsorptionEmission.C
diff --git a/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.C b/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.C
index 3b92b98f0aa951087e4586eff6d084ae038e4590..6584495b637853554f99e2ea7d0d3a3d693778bb 100644
--- a/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.C
+++ b/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.C
@@ -253,8 +253,7 @@ void Foam::KinematicCloud<ParcelType>::info() const
         << "    Current number of parcels       = "
         << returnReduce(this->size(), sumOp<label>()) << nl
         << "    Current mass in system          = "
-        << returnReduce(massInSystem(), sumOp<scalar>()) << nl
-        << endl;
+        << returnReduce(massInSystem(), sumOp<scalar>()) << nl;
 }
 
 
diff --git a/src/lagrangian/intermediate/clouds/Templates/ReactingCloud/ReactingCloud.C b/src/lagrangian/intermediate/clouds/Templates/ReactingCloud/ReactingCloud.C
index 640ce508d510a7e513b7784681bceb2da6195daf..15a088c000ba0613e58e5c03e32bb9b84cedb073 100644
--- a/src/lagrangian/intermediate/clouds/Templates/ReactingCloud/ReactingCloud.C
+++ b/src/lagrangian/intermediate/clouds/Templates/ReactingCloud/ReactingCloud.C
@@ -28,7 +28,6 @@ License
 
 #include "CompositionModel.H"
 #include "PhaseChangeModel.H"
-#include "SurfaceReactionModel.H"
 
 // * * * * * * * * * * * Protected Member Functions  * * * * * * * * * * * * //
 
@@ -97,15 +96,8 @@ Foam::ReactingCloud<ParcelType>::ReactingCloud
             *this
         )
     ),
-    surfaceReactionModel_
-    (
-        SurfaceReactionModel<ReactingCloud<ParcelType> >::New
-        (
-            this->particleProperties(),
-            *this
-        )
-    ),
-    rhoTrans_(thermo.composition().Y().size())
+    rhoTrans_(thermo.composition().Y().size()),
+    dMassPhaseChange_(0.0)
 {
     // Set storage for mass source fields and initialise to zero
     forAll(rhoTrans_, i)
@@ -224,4 +216,21 @@ void Foam::ReactingCloud<ParcelType>::evolve()
 }
 
 
+template<class ParcelType>
+void Foam::ReactingCloud<ParcelType>::info() const
+{
+    ThermoCloud<ParcelType>::info();
+
+    Info<< "    Mass transfer phase change      = "
+        << returnReduce(dMassPhaseChange_, sumOp<scalar>()) << nl;
+}
+
+
+template<class ParcelType>
+void Foam::ReactingCloud<ParcelType>::addToMassPhaseChange(const scalar dMass)
+{
+    dMassPhaseChange_ += dMass;
+}
+
+
 // ************************************************************************* //
diff --git a/src/lagrangian/intermediate/clouds/Templates/ReactingCloud/ReactingCloud.H b/src/lagrangian/intermediate/clouds/Templates/ReactingCloud/ReactingCloud.H
index ee541dd6d9026ce563b5e17e7c5ccb6df13acf02..3af70b1904ee2bd8e733815b4d1948d9fb0b2bb5 100644
--- a/src/lagrangian/intermediate/clouds/Templates/ReactingCloud/ReactingCloud.H
+++ b/src/lagrangian/intermediate/clouds/Templates/ReactingCloud/ReactingCloud.H
@@ -30,7 +30,6 @@ Description
     - Adds to thermodynamic cloud
       - Variable composition (single phase)
       - Phase change
-      - Surface reactions
 
 SourceFiles
     ReactingCloudI.H
@@ -62,9 +61,6 @@ class CompositionModel;
 template<class CloudType>
 class PhaseChangeModel;
 
-template<class CloudType>
-class SurfaceReactionModel;
-
 /*---------------------------------------------------------------------------*\
                       Class ReactingCloud Declaration
 \*---------------------------------------------------------------------------*/
@@ -97,13 +93,6 @@ class ReactingCloud
             autoPtr<PhaseChangeModel<ReactingCloud<ParcelType> > >
                 phaseChangeModel_;
 
-            //- Reacting surface reaction model
-            autoPtr
-            <
-                SurfaceReactionModel<ReactingCloud<ParcelType> >
-            >
-            surfaceReactionModel_;
-
 
         // Sources
 
@@ -111,6 +100,12 @@ class ReactingCloud
             PtrList<DimensionedField<scalar, volMesh> > rhoTrans_;
 
 
+        // Check
+
+            //- Total mass transferred to continuous phase via phase change
+            scalar dMassPhaseChange_;
+
+
     // Private Member Functions
 
         //- Disallow default bitwise copy construct
@@ -168,10 +163,6 @@ public:
                 inline const PhaseChangeModel<ReactingCloud<ParcelType> >&
                     phaseChange() const;
 
-                //- Return reference to reacting surface reaction model
-                inline const SurfaceReactionModel<ReactingCloud<ParcelType> >&
-                    surfaceReaction() const;
-
 
             // Sources
 
@@ -196,6 +187,15 @@ public:
                         Srho1() const;
 
 
+        // Check
+
+            //- Print cloud information
+            void info() const;
+
+            //- Add to cumulative phase change mass transfer
+            void addToMassPhaseChange(const scalar dMass);
+
+
         // Cloud evolution functions
 
             //- Add new parcel
diff --git a/src/lagrangian/intermediate/clouds/Templates/ReactingCloud/ReactingCloudI.H b/src/lagrangian/intermediate/clouds/Templates/ReactingCloud/ReactingCloudI.H
index 146db083cc0194a996636eb3704165ab818db803..4bf20a37a9c2cb70e64a6f197e11ece9277aacdd 100644
--- a/src/lagrangian/intermediate/clouds/Templates/ReactingCloud/ReactingCloudI.H
+++ b/src/lagrangian/intermediate/clouds/Templates/ReactingCloud/ReactingCloudI.H
@@ -66,14 +66,6 @@ Foam::ReactingCloud<ParcelType>::phaseChange() const
 }
 
 
-template<class ParcelType>
-inline const Foam::SurfaceReactionModel<Foam::ReactingCloud<ParcelType> >&
-Foam::ReactingCloud<ParcelType>::surfaceReaction() const
-{
-    return surfaceReactionModel_;
-}
-
-
 template<class ParcelType>
 inline Foam::DimensionedField<Foam::scalar, Foam::volMesh>&
 Foam::ReactingCloud<ParcelType>::rhoTrans(const label i)
diff --git a/src/lagrangian/intermediate/clouds/Templates/ReactingMultiphaseCloud/ReactingMultiphaseCloud.C b/src/lagrangian/intermediate/clouds/Templates/ReactingMultiphaseCloud/ReactingMultiphaseCloud.C
index 79a0581acdef22ac302df6001644606739465b2f..708a3f72239ac43fc279246e82053839298ba241 100644
--- a/src/lagrangian/intermediate/clouds/Templates/ReactingMultiphaseCloud/ReactingMultiphaseCloud.C
+++ b/src/lagrangian/intermediate/clouds/Templates/ReactingMultiphaseCloud/ReactingMultiphaseCloud.C
@@ -26,7 +26,6 @@ License
 
 #include "ReactingMultiphaseCloud.H"
 
-#include "CompositionModel.H"
 #include "DevolatilisationModel.H"
 #include "SurfaceReactionModel.H"
 
@@ -93,7 +92,16 @@ Foam::ReactingMultiphaseCloud<ParcelType>::ReactingMultiphaseCloud
             this->particleProperties(),
             *this
         )
-    )
+    ),
+    surfaceReactionModel_
+    (
+        SurfaceReactionModel<ReactingMultiphaseCloud<ParcelType> >::New
+        (
+            this->particleProperties(),
+            *this
+        )
+    ),
+    dMassDevolatilisation_(0.0)
 {}
 
 
@@ -185,4 +193,35 @@ void Foam::ReactingMultiphaseCloud<ParcelType>::evolve()
 }
 
 
+template<class ParcelType>
+void Foam::ReactingMultiphaseCloud<ParcelType>::info() const
+{
+    ReactingCloud<ParcelType>::info();
+    Info<< "    Mass transfer devolatilisation  = "
+        << returnReduce(dMassDevolatilisation_, sumOp<scalar>()) << nl;
+    Info<< "    Mass transfer surface reaction  = "
+        << returnReduce(dMassSurfaceReaction_, sumOp<scalar>()) << nl;
+}
+
+
+template<class ParcelType>
+void Foam::ReactingMultiphaseCloud<ParcelType>::addToMassDevolatilisation
+(
+    const scalar dMass
+)
+{
+    dMassDevolatilisation_ += dMass;
+}
+
+
+template<class ParcelType>
+void Foam::ReactingMultiphaseCloud<ParcelType>::addToMassSurfaceReaction
+(
+    const scalar dMass
+)
+{
+    dMassSurfaceReaction_ += dMass;
+}
+
+
 // ************************************************************************* //
diff --git a/src/lagrangian/intermediate/clouds/Templates/ReactingMultiphaseCloud/ReactingMultiphaseCloud.H b/src/lagrangian/intermediate/clouds/Templates/ReactingMultiphaseCloud/ReactingMultiphaseCloud.H
index 16e1140876c5f403b1faa355b67cf6b64d09b60d..b78a5c024262fa59c97ed3fa5e86544a634dc13e 100644
--- a/src/lagrangian/intermediate/clouds/Templates/ReactingMultiphaseCloud/ReactingMultiphaseCloud.H
+++ b/src/lagrangian/intermediate/clouds/Templates/ReactingMultiphaseCloud/ReactingMultiphaseCloud.H
@@ -28,8 +28,9 @@ Class
 Description
     Templated base class for multiphase reacting cloud
     - Adds to reacting cloud
-      - Devolatilisatsion
       - multiphase composition
+      - devolatilisatsion
+      - surface reactions
 
 SourceFiles
     ReactingMultiphaseCloudI.H
@@ -53,6 +54,9 @@ namespace Foam
 template<class CloudType>
 class DevolatilisationModel;
 
+template<class CloudType>
+class SurfaceReactionModel;
+
 /*---------------------------------------------------------------------------*\
                    Class ReactingMultiphaseCloud Declaration
 \*---------------------------------------------------------------------------*/
@@ -78,6 +82,23 @@ class ReactingMultiphaseCloud
             >
             devolatilisationModel_;
 
+            //- Surface reaction model
+            autoPtr
+            <
+                SurfaceReactionModel<ReactingMultiphaseCloud<ParcelType> >
+            >
+            surfaceReactionModel_;
+
+
+        // Check
+
+            //- Total mass transferred to continuous phase via devolatilisation
+            scalar dMassDevolatilisation_;
+
+            //- Total mass transferred to continuous phase via surface
+            //  reactions
+            scalar dMassSurfaceReaction_;
+
 
     // Private Member Functions
 
@@ -125,6 +146,25 @@ public:
                 >&
                 devolatilisation() const;
 
+                //- Return reference to reacting surface reaction model
+                inline const SurfaceReactionModel
+                <
+                    ReactingMultiphaseCloud<ParcelType>
+                >&
+                surfaceReaction() const;
+
+
+        // Check
+
+            //- Print cloud information
+            void info() const;
+
+            //- Add to cumulative volatilisation mass transfer
+            void addToMassDevolatilisation(const scalar dMass);
+
+            //- Add to cumulative surface reaction transfer
+            void addToMassSurfaceReaction(const scalar dMass);
+
 
         // Cloud evolution functions
 
diff --git a/src/lagrangian/intermediate/clouds/Templates/ReactingMultiphaseCloud/ReactingMultiphaseCloudI.H b/src/lagrangian/intermediate/clouds/Templates/ReactingMultiphaseCloud/ReactingMultiphaseCloudI.H
index f27fae24eaf8cbb80843f6fbf4028f1a53581ffa..752f2b8ca3227be1259e380d1f6b01f5beb4dc9d 100644
--- a/src/lagrangian/intermediate/clouds/Templates/ReactingMultiphaseCloud/ReactingMultiphaseCloudI.H
+++ b/src/lagrangian/intermediate/clouds/Templates/ReactingMultiphaseCloud/ReactingMultiphaseCloudI.H
@@ -37,4 +37,15 @@ Foam::ReactingMultiphaseCloud<ParcelType>::devolatilisation() const
 }
 
 
+template<class ParcelType>
+inline const Foam::SurfaceReactionModel
+<
+    Foam::ReactingMultiphaseCloud<ParcelType>
+>&
+Foam::ReactingMultiphaseCloud<ParcelType>::surfaceReaction() const
+{
+    return surfaceReactionModel_;
+}
+
+
 // ************************************************************************* //
diff --git a/src/lagrangian/intermediate/clouds/Templates/ThermoCloud/ThermoCloud.C b/src/lagrangian/intermediate/clouds/Templates/ThermoCloud/ThermoCloud.C
index 05a0b5f2aa4befbf23fd95c823b045c92cd1820e..b54624bb812417af3ee50c8b40e6d0ef205700b0 100644
--- a/src/lagrangian/intermediate/clouds/Templates/ThermoCloud/ThermoCloud.C
+++ b/src/lagrangian/intermediate/clouds/Templates/ThermoCloud/ThermoCloud.C
@@ -215,4 +215,11 @@ void Foam::ThermoCloud<ParcelType>::evolve()
 }
 
 
+template<class ParcelType>
+void Foam::ThermoCloud<ParcelType>::info() const
+{
+    KinematicCloud<ParcelType>::info();
+}
+
+
 // ************************************************************************* //
diff --git a/src/lagrangian/intermediate/clouds/Templates/ThermoCloud/ThermoCloud.H b/src/lagrangian/intermediate/clouds/Templates/ThermoCloud/ThermoCloud.H
index 13c560b152558657c161d2e4bd29cec4379a5751..d845b725b19d6e85213e6a7a5eb38decf2ec5701 100644
--- a/src/lagrangian/intermediate/clouds/Templates/ThermoCloud/ThermoCloud.H
+++ b/src/lagrangian/intermediate/clouds/Templates/ThermoCloud/ThermoCloud.H
@@ -197,6 +197,12 @@ public:
                     inline tmp<volScalarField> sigmap() const;
 
 
+        // Check
+
+            //- Print cloud information
+            void info() const;
+
+
         // Cloud evolution functions
 
             //- Add new parcel
diff --git a/src/lagrangian/intermediate/parcels/Templates/ReactingMultiphaseParcel/ReactingMultiphaseParcel.C b/src/lagrangian/intermediate/parcels/Templates/ReactingMultiphaseParcel/ReactingMultiphaseParcel.C
index 0ab68ded742c8c3e17c2d0f93b3d8c14c9d4dafc..bc132bb6f345ed6d7a42919d8e02c1f2d0e77a89 100644
--- a/src/lagrangian/intermediate/parcels/Templates/ReactingMultiphaseParcel/ReactingMultiphaseParcel.C
+++ b/src/lagrangian/intermediate/parcels/Templates/ReactingMultiphaseParcel/ReactingMultiphaseParcel.C
@@ -402,6 +402,8 @@ void Foam::ReactingMultiphaseParcel<ParcelType>::calcDevolatilisation
         scalar volatileMass = YGas_[i]*dMassTot;
         dMassMT[id] += volatileMass;
     }
+
+    td.cloud().addToMassDevolatilisation(dMassTot);
 }
 
 
@@ -446,6 +448,8 @@ void Foam::ReactingMultiphaseParcel<ParcelType>::calcSurfaceReactions
         dMassSR,
         dhRet
     );
+
+    // TODO: td.cloud().addToMassDevolatilisation(sum(dMassSR));
 }
 
 
diff --git a/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcel.C b/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcel.C
index 266f6e25301424d1cf46a7cfee223abf78b2aa44..01fa099a9256bea336855cb42f4423a2a7edaee8 100644
--- a/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcel.C
+++ b/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcel.C
@@ -61,6 +61,7 @@ void Foam::ReactingParcel<ParcelType>::calcCoupled
     const scalar np0 = this->nParticle_;
     const scalar T0 = this->T_;
 
+
     // ~~~~~~~~~~~~~~~~~~~~~~~~~
     // Initialise transfer terms
     // ~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -75,11 +76,6 @@ void Foam::ReactingParcel<ParcelType>::calcCoupled
     // - components exist in particle already
     scalarList dMassMT(td.cloud().gases().size(), 0.0);
 
-    // Mass transfer due to surface reactions from particle to carrier phase
-    // - components do not necessarily exist in particle already
-    scalarList dMassSR(td.cloud().gases().size(), 0.0);
-
-
     // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     // Calculate velocity - update U
     // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -100,23 +96,8 @@ void Foam::ReactingParcel<ParcelType>::calcCoupled
     scalarField X = td.cliud().composition().X(0, YMixture_);
     calcPhaseChange(td, dt, T, X, dMassMT);
 
-
-    // ~~~~~~~~~~~~~~~~~~~~~~~~~~~
-    // Calculate surface reactions
-    // ~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-    // Initialise enthalpy retention to zero
-    scalar dhRet = 0.0;
-
-    calcSurfaceReactions(td, dt, celli, T0, T1, dMassMT, dMassSR, dhRet);
-
     // New total mass
-    const scalar mass1 = mass0 - sum(dMassMT) - sum(dMassSR);
-
-    // Add retained enthalpy from surface reaction to particle and remove
-    // from gas
-    T1 += dhRet/(0.5*(mass0 + mass1)*cp0);
-    dhTrans -= dhRet;
+    const scalar mass1 = mass0 - sum(dMassMT);
 
 
     // ~~~~~~~~~~~~~~~~~~~~~~~
@@ -126,7 +107,7 @@ void Foam::ReactingParcel<ParcelType>::calcCoupled
     // Transfer mass lost from particle to carrier mass source
     forAll(dMassMT, i)
     {
-        td.cloud().rhoTrans(i)[celli] += np0*(dMassMT[i] + dMassSR[i]);
+        td.cloud().rhoTrans(i)[celli] += np0*dMassMT[i];
     }
 
     // Update momentum transfer
@@ -194,6 +175,7 @@ void Foam::ReactingParcel<ParcelType>::calcUncoupled
     const scalar mass0 = this->mass();
     const scalar cp0 = this->cp_;
 
+
     // ~~~~~~~~~~~~~~~~~~~~~~~~~
     // Initialise transfer terms
     // ~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -208,10 +190,6 @@ void Foam::ReactingParcel<ParcelType>::calcUncoupled
     // - components exist in particle already
     scalarList dMassMT(td.cloud().gases().size(), 0.0);
 
-    // Mass transfer due to surface reactions from particle to carrier phase
-    // - components do not necessarily exist in particle already
-    scalarList dMassSR(td.cloud().gases().size(), 0.0);
-
 
     // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     // Calculate velocity - update U
@@ -231,7 +209,8 @@ void Foam::ReactingParcel<ParcelType>::calcUncoupled
     // Calculate phase change
     // ~~~~~~~~~~~~~~~~~~~~~~
     scalarField X = td.cloud().composition().X(0, YMixture_);
-    calcPhaseChange(td, dt, T, X, dMassMT);
+    scalar dMassPC = calcPhaseChange(td, dt, T, X, dMassMT);
+    T1 -= td.constProps().Lvap()*dMassPC/(0.5*mass0*cp0);
 
 
     // ~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -241,10 +220,8 @@ void Foam::ReactingParcel<ParcelType>::calcUncoupled
     // Initialise enthalpy retention to zero
     scalar dhRet = 0.0;
 
-    calcSurfaceReactions(td, dt, celli, T0, T1, dMassMT, dMassSR, dhRet);
-
     // New total mass
-    const scalar mass1 = mass0 - sum(dMassMT) - sum(dMassSR);
+    const scalar mass1 = mass0 - sum(dMassMT);
 
     // New specific heat capacity
     const scalar cp1 = cp0; // TODO: new cp1
@@ -312,6 +289,7 @@ void Foam::ReactingParcel<ParcelType>::calcPhaseChange
         dt
     );
 
+    td.cloud().addToMassPhaseChange(dMassTot);
     // TODO: Re-calculate mass fractions
 
 
diff --git a/src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/makeBasicKinematicParcelDispersionModels.C b/src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/submodels/makeBasicKinematicParcelDispersionModels.C
similarity index 96%
rename from src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/makeBasicKinematicParcelDispersionModels.C
rename to src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/submodels/makeBasicKinematicParcelDispersionModels.C
index 7a09f02321f62440099ab14329657fc7ae2915f2..f6444b1252fe479922e8b867a0ef06bf6629de33 100644
--- a/src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/makeBasicKinematicParcelDispersionModels.C
+++ b/src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/submodels/makeBasicKinematicParcelDispersionModels.C
@@ -31,6 +31,8 @@ License
 #include "GradientDispersionRAS.H"
 #include "StochasticDispersionRAS.H"
 
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
 namespace Foam
 {
     makeDispersionModel(KinematicCloud<basicKinematicParcel>);
diff --git a/src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/makeBasicKinematicParcelDragModels.C b/src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/submodels/makeBasicKinematicParcelDragModels.C
similarity index 95%
rename from src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/makeBasicKinematicParcelDragModels.C
rename to src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/submodels/makeBasicKinematicParcelDragModels.C
index e88f4e1d37b79258a3cf30a645aff5ffc926b703..6b10e4efb0356ff4e8e1d200e26f760efcbbf95e 100644
--- a/src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/makeBasicKinematicParcelDragModels.C
+++ b/src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/submodels/makeBasicKinematicParcelDragModels.C
@@ -30,6 +30,8 @@ License
 #include "NoDrag.H"
 #include "SphereDrag.H"
 
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
 namespace Foam
 {
     makeDragModel(KinematicCloud<basicKinematicParcel>);
diff --git a/src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/makeBasicKinematicParcelInjectionModels.C b/src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/submodels/makeBasicKinematicParcelInjectionModels.C
similarity index 95%
rename from src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/makeBasicKinematicParcelInjectionModels.C
rename to src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/submodels/makeBasicKinematicParcelInjectionModels.C
index e5cc927c67d55dec0ecebe1cb76d549227e632c3..c722ac91fdf74d5123add48d14f3399d5f8f3c91 100644
--- a/src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/makeBasicKinematicParcelInjectionModels.C
+++ b/src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/submodels/makeBasicKinematicParcelInjectionModels.C
@@ -31,6 +31,8 @@ License
 #include "ManualInjection.H"
 #include "ConeInjection.H"
 
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
 namespace Foam
 {
     makeInjectionModel(KinematicCloud<basicKinematicParcel>);
diff --git a/src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/makeBasicKinematicParcelWallInteractionModels.C b/src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/submodels/makeBasicKinematicParcelWallInteractionModels.C
similarity index 95%
rename from src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/makeBasicKinematicParcelWallInteractionModels.C
rename to src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/submodels/makeBasicKinematicParcelWallInteractionModels.C
index 95335509a6c280df7a2100678c058ed058557a88..544cddaf2ad164fd975e392223ba9eda0a0ff541 100644
--- a/src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/makeBasicKinematicParcelWallInteractionModels.C
+++ b/src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/submodels/makeBasicKinematicParcelWallInteractionModels.C
@@ -30,6 +30,8 @@ License
 #include "Rebound.H"
 #include "StandardWallInteraction.H"
 
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
 namespace Foam
 {
     makeWallInteractionModel(KinematicCloud<basicKinematicParcel>);
diff --git a/src/lagrangian/intermediate/parcels/derived/basicReactingMultiphaseParcel/makeBasicReactingMultiphaseParcelCompositionModels.C b/src/lagrangian/intermediate/parcels/derived/basicReactingMultiphaseParcel/submodels/makeBasicReactingMultiphaseParcelCompositionModels.C
similarity index 95%
rename from src/lagrangian/intermediate/parcels/derived/basicReactingMultiphaseParcel/makeBasicReactingMultiphaseParcelCompositionModels.C
rename to src/lagrangian/intermediate/parcels/derived/basicReactingMultiphaseParcel/submodels/makeBasicReactingMultiphaseParcelCompositionModels.C
index b598be99396d914057b64034080ab9696db059e2..4dd31ffb585177c7b2655b86d44ec288c03e32af 100644
--- a/src/lagrangian/intermediate/parcels/derived/basicReactingMultiphaseParcel/makeBasicReactingMultiphaseParcelCompositionModels.C
+++ b/src/lagrangian/intermediate/parcels/derived/basicReactingMultiphaseParcel/submodels/makeBasicReactingMultiphaseParcelCompositionModels.C
@@ -29,6 +29,8 @@ License
 
 #include "SingleMixtureFraction.H"
 
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
 namespace Foam
 {
     makeCompositionModel
diff --git a/src/lagrangian/intermediate/parcels/derived/basicReactingMultiphaseParcel/makeBasicReactingMultiphaseParcelDevolatilisationModels.C b/src/lagrangian/intermediate/parcels/derived/basicReactingMultiphaseParcel/submodels/makeBasicReactingMultiphaseParcelDevolatilisationModels.C
similarity index 96%
rename from src/lagrangian/intermediate/parcels/derived/basicReactingMultiphaseParcel/makeBasicReactingMultiphaseParcelDevolatilisationModels.C
rename to src/lagrangian/intermediate/parcels/derived/basicReactingMultiphaseParcel/submodels/makeBasicReactingMultiphaseParcelDevolatilisationModels.C
index 71c9d6e7c04639c151e3fac6ace62fc57a30702d..8704e48d801561ce3c543afc7e09d47090e50323 100644
--- a/src/lagrangian/intermediate/parcels/derived/basicReactingMultiphaseParcel/makeBasicReactingMultiphaseParcelDevolatilisationModels.C
+++ b/src/lagrangian/intermediate/parcels/derived/basicReactingMultiphaseParcel/submodels/makeBasicReactingMultiphaseParcelDevolatilisationModels.C
@@ -31,6 +31,8 @@ License
 #include "ConstantRateDevolatilisation.H"
 #include "SingleKineticRateDevolatilisation.H"
 
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
 namespace Foam
 {
     makeDevolatilisationModel
diff --git a/src/lagrangian/intermediate/parcels/derived/basicReactingMultiphaseParcel/makeBasicReactingMultiphaseParcelDispersionModels.C b/src/lagrangian/intermediate/parcels/derived/basicReactingMultiphaseParcel/submodels/makeBasicReactingMultiphaseParcelDispersionModels.C
similarity index 96%
rename from src/lagrangian/intermediate/parcels/derived/basicReactingMultiphaseParcel/makeBasicReactingMultiphaseParcelDispersionModels.C
rename to src/lagrangian/intermediate/parcels/derived/basicReactingMultiphaseParcel/submodels/makeBasicReactingMultiphaseParcelDispersionModels.C
index 5c96a859a796151fef9128ac72da7297c4ded499..8e4a77d5e3038ad65a0bf05d3ead1451bf64a6f9 100644
--- a/src/lagrangian/intermediate/parcels/derived/basicReactingMultiphaseParcel/makeBasicReactingMultiphaseParcelDispersionModels.C
+++ b/src/lagrangian/intermediate/parcels/derived/basicReactingMultiphaseParcel/submodels/makeBasicReactingMultiphaseParcelDispersionModels.C
@@ -31,6 +31,8 @@ License
 #include "GradientDispersionRAS.H"
 #include "StochasticDispersionRAS.H"
 
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
 namespace Foam
 {
     makeDispersionModel(KinematicCloud<basicReactingMultiphaseParcel>);
diff --git a/src/lagrangian/intermediate/parcels/derived/basicReactingMultiphaseParcel/makeBasicReactingMultiphaseParcelDragModels.C b/src/lagrangian/intermediate/parcels/derived/basicReactingMultiphaseParcel/submodels/makeBasicReactingMultiphaseParcelDragModels.C
similarity index 95%
rename from src/lagrangian/intermediate/parcels/derived/basicReactingMultiphaseParcel/makeBasicReactingMultiphaseParcelDragModels.C
rename to src/lagrangian/intermediate/parcels/derived/basicReactingMultiphaseParcel/submodels/makeBasicReactingMultiphaseParcelDragModels.C
index 253d546b7bd77de904d77caa27886449795e6f92..5e56985952fa0a004e1b4d7d38a1cebe9445ec76 100644
--- a/src/lagrangian/intermediate/parcels/derived/basicReactingMultiphaseParcel/makeBasicReactingMultiphaseParcelDragModels.C
+++ b/src/lagrangian/intermediate/parcels/derived/basicReactingMultiphaseParcel/submodels/makeBasicReactingMultiphaseParcelDragModels.C
@@ -30,6 +30,8 @@ License
 #include "NoDrag.H"
 #include "SphereDrag.H"
 
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
 namespace Foam
 {
     makeDragModel(KinematicCloud<basicReactingMultiphaseParcel>);
diff --git a/src/lagrangian/intermediate/parcels/derived/basicReactingMultiphaseParcel/makeBasicReactingMultiphaseParcelHeatTransferModels.C b/src/lagrangian/intermediate/parcels/derived/basicReactingMultiphaseParcel/submodels/makeBasicReactingMultiphaseParcelHeatTransferModels.C
similarity index 95%
rename from src/lagrangian/intermediate/parcels/derived/basicReactingMultiphaseParcel/makeBasicReactingMultiphaseParcelHeatTransferModels.C
rename to src/lagrangian/intermediate/parcels/derived/basicReactingMultiphaseParcel/submodels/makeBasicReactingMultiphaseParcelHeatTransferModels.C
index 1b6f4e06e1c149b8f7c51d7d3e040c11703328bf..f501421d8bb869808909eb53cad995167a36543f 100644
--- a/src/lagrangian/intermediate/parcels/derived/basicReactingMultiphaseParcel/makeBasicReactingMultiphaseParcelHeatTransferModels.C
+++ b/src/lagrangian/intermediate/parcels/derived/basicReactingMultiphaseParcel/submodels/makeBasicReactingMultiphaseParcelHeatTransferModels.C
@@ -30,6 +30,8 @@ License
 #include "NoHeatTransfer.H"
 #include "RanzMarshall.H"
 
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
 namespace Foam
 {
     makeHeatTransferModel(ThermoCloud<basicReactingMultiphaseParcel>);
diff --git a/src/lagrangian/intermediate/parcels/derived/basicReactingMultiphaseParcel/makeBasicReactingMultiphaseParcelInjectionModels.C b/src/lagrangian/intermediate/parcels/derived/basicReactingMultiphaseParcel/submodels/makeBasicReactingMultiphaseParcelInjectionModels.C
similarity index 96%
rename from src/lagrangian/intermediate/parcels/derived/basicReactingMultiphaseParcel/makeBasicReactingMultiphaseParcelInjectionModels.C
rename to src/lagrangian/intermediate/parcels/derived/basicReactingMultiphaseParcel/submodels/makeBasicReactingMultiphaseParcelInjectionModels.C
index 53bed2ed119c52fb9675c6c634b0feba01552922..6d8b5aeac9166c03c4569deb6b097e088a9a4088 100644
--- a/src/lagrangian/intermediate/parcels/derived/basicReactingMultiphaseParcel/makeBasicReactingMultiphaseParcelInjectionModels.C
+++ b/src/lagrangian/intermediate/parcels/derived/basicReactingMultiphaseParcel/submodels/makeBasicReactingMultiphaseParcelInjectionModels.C
@@ -31,6 +31,8 @@ License
 #include "ManualInjection.H"
 #include "ConeInjection.H"
 
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
 namespace Foam
 {
     makeInjectionModel(KinematicCloud<basicReactingMultiphaseParcel>);
diff --git a/src/lagrangian/intermediate/parcels/derived/basicReactingMultiphaseParcel/makeBasicReactingMultiphaseParcelPhaseChangeModels.C b/src/lagrangian/intermediate/parcels/derived/basicReactingMultiphaseParcel/submodels/makeBasicReactingMultiphaseParcelPhaseChangeModels.C
similarity index 95%
rename from src/lagrangian/intermediate/parcels/derived/basicReactingMultiphaseParcel/makeBasicReactingMultiphaseParcelPhaseChangeModels.C
rename to src/lagrangian/intermediate/parcels/derived/basicReactingMultiphaseParcel/submodels/makeBasicReactingMultiphaseParcelPhaseChangeModels.C
index 76383aaf1130fc8eb880877ecd46aeea3d90a352..88300dffb16b3e7b9d77172bbd85c4cc8748ce7d 100644
--- a/src/lagrangian/intermediate/parcels/derived/basicReactingMultiphaseParcel/makeBasicReactingMultiphaseParcelPhaseChangeModels.C
+++ b/src/lagrangian/intermediate/parcels/derived/basicReactingMultiphaseParcel/submodels/makeBasicReactingMultiphaseParcelPhaseChangeModels.C
@@ -29,6 +29,8 @@ License
 
 #include "NoPhaseChange.H"
 
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
 namespace Foam
 {
     makePhaseChangeModel
diff --git a/src/lagrangian/intermediate/parcels/derived/basicReactingMultiphaseParcel/makeBasicReactingMultiphaseParcelSurfaceReactionModels.C b/src/lagrangian/intermediate/parcels/derived/basicReactingMultiphaseParcel/submodels/makeBasicReactingMultiphaseParcelSurfaceReactionModels.C
similarity index 88%
rename from src/lagrangian/intermediate/parcels/derived/basicReactingMultiphaseParcel/makeBasicReactingMultiphaseParcelSurfaceReactionModels.C
rename to src/lagrangian/intermediate/parcels/derived/basicReactingMultiphaseParcel/submodels/makeBasicReactingMultiphaseParcelSurfaceReactionModels.C
index 26c983dfac8bb4a105bcb22c30a6e331f6bca022..d0478807400a41a0d301e19faaffcc0be0bfa3a0 100644
--- a/src/lagrangian/intermediate/parcels/derived/basicReactingMultiphaseParcel/makeBasicReactingMultiphaseParcelSurfaceReactionModels.C
+++ b/src/lagrangian/intermediate/parcels/derived/basicReactingMultiphaseParcel/submodels/makeBasicReactingMultiphaseParcelSurfaceReactionModels.C
@@ -25,22 +25,24 @@ License
 \*---------------------------------------------------------------------------*/
 
 #include "basicReactingMultiphaseParcel.H"
-#include "ReactingCloud.H"
+#include "ReactingMultiphaseCloud.H"
 
 #include "NoSurfaceReaction.H"
 
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
 namespace Foam
 {
     makeSurfaceReactionModel
     (
-        ReactingCloud<basicReactingMultiphaseParcel>
+        ReactingMultiphaseCloud<basicReactingMultiphaseParcel>
     );
 
     // Add instances of surface reaction model to the table
     makeSurfaceReactionModelType
     (
         NoSurfaceReaction,
-        ReactingCloud,
+        ReactingMultiphaseCloud,
         basicReactingMultiphaseParcel
     );
 };
diff --git a/src/lagrangian/intermediate/parcels/derived/basicReactingMultiphaseParcel/makeBasicReactingMultiphaseParcelWallInteractionModels.C b/src/lagrangian/intermediate/parcels/derived/basicReactingMultiphaseParcel/submodels/makeBasicReactingMultiphaseParcelWallInteractionModels.C
similarity index 95%
rename from src/lagrangian/intermediate/parcels/derived/basicReactingMultiphaseParcel/makeBasicReactingMultiphaseParcelWallInteractionModels.C
rename to src/lagrangian/intermediate/parcels/derived/basicReactingMultiphaseParcel/submodels/makeBasicReactingMultiphaseParcelWallInteractionModels.C
index 19057c485ec2064e18e9902d28d6f7b92c8ba1d9..3e7d911f8f3fd5c1fe20c18dc94554967736fdb0 100644
--- a/src/lagrangian/intermediate/parcels/derived/basicReactingMultiphaseParcel/makeBasicReactingMultiphaseParcelWallInteractionModels.C
+++ b/src/lagrangian/intermediate/parcels/derived/basicReactingMultiphaseParcel/submodels/makeBasicReactingMultiphaseParcelWallInteractionModels.C
@@ -30,6 +30,8 @@ License
 #include "Rebound.H"
 #include "StandardWallInteraction.H"
 
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
 namespace Foam
 {
     makeWallInteractionModel(KinematicCloud<basicReactingMultiphaseParcel>);
diff --git a/src/lagrangian/intermediate/parcels/derived/basicReactingParcel/makeBasicReactingParcelSurfaceReactionModels.C b/src/lagrangian/intermediate/parcels/derived/basicReactingParcel/makeBasicReactingParcelSurfaceReactionModels.C
deleted file mode 100644
index 0cb133d8bab72efc283164d5fd0fec7e8081836e..0000000000000000000000000000000000000000
--- a/src/lagrangian/intermediate/parcels/derived/basicReactingParcel/makeBasicReactingParcelSurfaceReactionModels.C
+++ /dev/null
@@ -1,46 +0,0 @@
-/*---------------------------------------------------------------------------*\
-  =========                 |
-  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
-   \\    /   O peration     |
-    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
-     \\/     M anipulation  |
--------------------------------------------------------------------------------
-License
-    This file is part of OpenFOAM.
-
-    OpenFOAM is free software; you can redistribute it and/or modify it
-    under the terms of the GNU General Public License as published by the
-    Free Software Foundation; either version 2 of the License, or (at your
-    option) any later version.
-
-    OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
-    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-    for more details.
-
-    You should have received a copy of the GNU General Public License
-    along with OpenFOAM; if not, write to the Free Software Foundation,
-    Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
-\*---------------------------------------------------------------------------*/
-
-#include "basicReactingParcel.H"
-#include "ReactingCloud.H"
-
-#include "NoSurfaceReaction.H"
-
-namespace Foam
-{
-    makeSurfaceReactionModel(ReactingCloud<basicReactingParcel>);
-
-    // Add instances of surface reaction model to the table
-    makeSurfaceReactionModelType
-    (
-        NoSurfaceReaction,
-        ReactingCloud,
-        basicReactingParcel
-    );
-};
-
-
-// ************************************************************************* //
diff --git a/src/lagrangian/intermediate/parcels/derived/basicReactingParcel/makeBasicReactingParcelCompositionModels.C b/src/lagrangian/intermediate/parcels/derived/basicReactingParcel/submodels/makeBasicReactingParcelCompositionModels.C
similarity index 95%
rename from src/lagrangian/intermediate/parcels/derived/basicReactingParcel/makeBasicReactingParcelCompositionModels.C
rename to src/lagrangian/intermediate/parcels/derived/basicReactingParcel/submodels/makeBasicReactingParcelCompositionModels.C
index 786fa74ddc06c675eb66a01293b1a829036aba27..7010ab4f2cd60f267c18f9181262d873ce58453f 100644
--- a/src/lagrangian/intermediate/parcels/derived/basicReactingParcel/makeBasicReactingParcelCompositionModels.C
+++ b/src/lagrangian/intermediate/parcels/derived/basicReactingParcel/submodels/makeBasicReactingParcelCompositionModels.C
@@ -29,6 +29,8 @@ License
 
 #include "SinglePhaseMixture.H"
 
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
 namespace Foam
 {
     makeCompositionModel(ReactingCloud<basicReactingParcel>);
diff --git a/src/lagrangian/intermediate/parcels/derived/basicReactingParcel/makeBasicReactingParcelDispersionModels.C b/src/lagrangian/intermediate/parcels/derived/basicReactingParcel/submodels/makeBasicReactingParcelDispersionModels.C
similarity index 96%
rename from src/lagrangian/intermediate/parcels/derived/basicReactingParcel/makeBasicReactingParcelDispersionModels.C
rename to src/lagrangian/intermediate/parcels/derived/basicReactingParcel/submodels/makeBasicReactingParcelDispersionModels.C
index 80a351c7bb20d31d6bf4693c2861943658e5a3f2..d2b6132bcaa1d945630db56ed4d49c2c952433ae 100644
--- a/src/lagrangian/intermediate/parcels/derived/basicReactingParcel/makeBasicReactingParcelDispersionModels.C
+++ b/src/lagrangian/intermediate/parcels/derived/basicReactingParcel/submodels/makeBasicReactingParcelDispersionModels.C
@@ -31,6 +31,8 @@ License
 #include "GradientDispersionRAS.H"
 #include "StochasticDispersionRAS.H"
 
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
 namespace Foam
 {
     makeDispersionModel(KinematicCloud<basicReactingParcel>);
diff --git a/src/lagrangian/intermediate/parcels/derived/basicReactingParcel/makeBasicReactingParcelDragModels.C b/src/lagrangian/intermediate/parcels/derived/basicReactingParcel/submodels/makeBasicReactingParcelDragModels.C
similarity index 95%
rename from src/lagrangian/intermediate/parcels/derived/basicReactingParcel/makeBasicReactingParcelDragModels.C
rename to src/lagrangian/intermediate/parcels/derived/basicReactingParcel/submodels/makeBasicReactingParcelDragModels.C
index 178569796d6cbc677bd432e3a3f57ba1187c8b2a..0c43e221b1a42eeb12dd8f5afc8505dcb6626ff0 100644
--- a/src/lagrangian/intermediate/parcels/derived/basicReactingParcel/makeBasicReactingParcelDragModels.C
+++ b/src/lagrangian/intermediate/parcels/derived/basicReactingParcel/submodels/makeBasicReactingParcelDragModels.C
@@ -30,6 +30,8 @@ License
 #include "NoDrag.H"
 #include "SphereDrag.H"
 
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
 namespace Foam
 {
     makeDragModel(KinematicCloud<basicReactingParcel>);
diff --git a/src/lagrangian/intermediate/parcels/derived/basicReactingParcel/makeBasicReactingParcelHeatTransferModels.C b/src/lagrangian/intermediate/parcels/derived/basicReactingParcel/submodels/makeBasicReactingParcelHeatTransferModels.C
similarity index 95%
rename from src/lagrangian/intermediate/parcels/derived/basicReactingParcel/makeBasicReactingParcelHeatTransferModels.C
rename to src/lagrangian/intermediate/parcels/derived/basicReactingParcel/submodels/makeBasicReactingParcelHeatTransferModels.C
index e78caa71ec49c04380713ef94b0264f93b032edb..5bc2ea33a89138eae638d916392690bb8ba1b1b3 100644
--- a/src/lagrangian/intermediate/parcels/derived/basicReactingParcel/makeBasicReactingParcelHeatTransferModels.C
+++ b/src/lagrangian/intermediate/parcels/derived/basicReactingParcel/submodels/makeBasicReactingParcelHeatTransferModels.C
@@ -30,6 +30,8 @@ License
 #include "NoHeatTransfer.H"
 #include "RanzMarshall.H"
 
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
 namespace Foam
 {
     makeHeatTransferModel(ThermoCloud<basicReactingParcel>);
diff --git a/src/lagrangian/intermediate/parcels/derived/basicReactingParcel/makeBasicReactingParcelInjectionModels.C b/src/lagrangian/intermediate/parcels/derived/basicReactingParcel/submodels/makeBasicReactingParcelInjectionModels.C
similarity index 95%
rename from src/lagrangian/intermediate/parcels/derived/basicReactingParcel/makeBasicReactingParcelInjectionModels.C
rename to src/lagrangian/intermediate/parcels/derived/basicReactingParcel/submodels/makeBasicReactingParcelInjectionModels.C
index 77b71a75abf207bba9278568c9c724efda97460f..1af1e370884cf7f7f8b6c277ef19dea7b0bcbc4e 100644
--- a/src/lagrangian/intermediate/parcels/derived/basicReactingParcel/makeBasicReactingParcelInjectionModels.C
+++ b/src/lagrangian/intermediate/parcels/derived/basicReactingParcel/submodels/makeBasicReactingParcelInjectionModels.C
@@ -31,6 +31,8 @@ License
 #include "ManualInjection.H"
 #include "ConeInjection.H"
 
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
 namespace Foam
 {
     makeInjectionModel(KinematicCloud<basicReactingParcel>);
diff --git a/src/lagrangian/intermediate/parcels/derived/basicReactingParcel/makeBasicReactingParcelPhaseChangeModels.C b/src/lagrangian/intermediate/parcels/derived/basicReactingParcel/submodels/makeBasicReactingParcelPhaseChangeModels.C
similarity index 95%
rename from src/lagrangian/intermediate/parcels/derived/basicReactingParcel/makeBasicReactingParcelPhaseChangeModels.C
rename to src/lagrangian/intermediate/parcels/derived/basicReactingParcel/submodels/makeBasicReactingParcelPhaseChangeModels.C
index 537ff586faa8e502fa6484dffee437d99d72ecf2..65118fa8f7153df623633abee887dbebe9b1cee2 100644
--- a/src/lagrangian/intermediate/parcels/derived/basicReactingParcel/makeBasicReactingParcelPhaseChangeModels.C
+++ b/src/lagrangian/intermediate/parcels/derived/basicReactingParcel/submodels/makeBasicReactingParcelPhaseChangeModels.C
@@ -29,6 +29,8 @@ License
 
 #include "NoPhaseChange.H"
 
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
 namespace Foam
 {
     makePhaseChangeModel(ReactingCloud<basicReactingParcel>);
diff --git a/src/lagrangian/intermediate/parcels/derived/basicReactingParcel/makeBasicReactingParcelWallInteractionModels.C b/src/lagrangian/intermediate/parcels/derived/basicReactingParcel/submodels/makeBasicReactingParcelWallInteractionModels.C
similarity index 95%
rename from src/lagrangian/intermediate/parcels/derived/basicReactingParcel/makeBasicReactingParcelWallInteractionModels.C
rename to src/lagrangian/intermediate/parcels/derived/basicReactingParcel/submodels/makeBasicReactingParcelWallInteractionModels.C
index 364d6f031e4e506f198abcf1925d5186716748b4..637fd92aaede265680644ad8224f85f9d4528286 100644
--- a/src/lagrangian/intermediate/parcels/derived/basicReactingParcel/makeBasicReactingParcelWallInteractionModels.C
+++ b/src/lagrangian/intermediate/parcels/derived/basicReactingParcel/submodels/makeBasicReactingParcelWallInteractionModels.C
@@ -30,6 +30,8 @@ License
 #include "Rebound.H"
 #include "StandardWallInteraction.H"
 
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
 namespace Foam
 {
     makeWallInteractionModel(KinematicCloud<basicReactingParcel>);
diff --git a/src/lagrangian/intermediate/parcels/derived/basicThermoParcel/makeBasicThermoParcelDispersionModels.C b/src/lagrangian/intermediate/parcels/derived/basicThermoParcel/submodels/makeBasicThermoParcelDispersionModels.C
similarity index 96%
rename from src/lagrangian/intermediate/parcels/derived/basicThermoParcel/makeBasicThermoParcelDispersionModels.C
rename to src/lagrangian/intermediate/parcels/derived/basicThermoParcel/submodels/makeBasicThermoParcelDispersionModels.C
index f1ab424f9bab6113a373e34b735d8f3a13ebbaa8..86bc63c72a7626294862f46bf281dd0848d37225 100644
--- a/src/lagrangian/intermediate/parcels/derived/basicThermoParcel/makeBasicThermoParcelDispersionModels.C
+++ b/src/lagrangian/intermediate/parcels/derived/basicThermoParcel/submodels/makeBasicThermoParcelDispersionModels.C
@@ -30,6 +30,8 @@ License
 #include "GradientDispersionRAS.H"
 #include "StochasticDispersionRAS.H"
 
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
 namespace Foam
 {
     makeDispersionModel(KinematicCloud<basicThermoParcel>);
diff --git a/src/lagrangian/intermediate/parcels/derived/basicThermoParcel/makeBasicThermoParcelDragModels.C b/src/lagrangian/intermediate/parcels/derived/basicThermoParcel/submodels/makeBasicThermoParcelDragModels.C
similarity index 95%
rename from src/lagrangian/intermediate/parcels/derived/basicThermoParcel/makeBasicThermoParcelDragModels.C
rename to src/lagrangian/intermediate/parcels/derived/basicThermoParcel/submodels/makeBasicThermoParcelDragModels.C
index b477000cf52757a84ae0a148128eaf60800e4bff..aaeacca70c8c756689284602ed52ea9eb95e9598 100644
--- a/src/lagrangian/intermediate/parcels/derived/basicThermoParcel/makeBasicThermoParcelDragModels.C
+++ b/src/lagrangian/intermediate/parcels/derived/basicThermoParcel/submodels/makeBasicThermoParcelDragModels.C
@@ -29,6 +29,8 @@ License
 #include "NoDrag.H"
 #include "SphereDrag.H"
 
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
 namespace Foam
 {
     makeDragModel(KinematicCloud<basicThermoParcel>);
diff --git a/src/lagrangian/intermediate/parcels/derived/basicThermoParcel/makeBasicThermoParcelHeatTransferModels.C b/src/lagrangian/intermediate/parcels/derived/basicThermoParcel/submodels/makeBasicThermoParcelHeatTransferModels.C
similarity index 95%
rename from src/lagrangian/intermediate/parcels/derived/basicThermoParcel/makeBasicThermoParcelHeatTransferModels.C
rename to src/lagrangian/intermediate/parcels/derived/basicThermoParcel/submodels/makeBasicThermoParcelHeatTransferModels.C
index d8a3c67c97560553618be1ecb21cef4c8636fa22..afb3ae0833ba89d779c0ee14ba7c0d4544545f99 100644
--- a/src/lagrangian/intermediate/parcels/derived/basicThermoParcel/makeBasicThermoParcelHeatTransferModels.C
+++ b/src/lagrangian/intermediate/parcels/derived/basicThermoParcel/submodels/makeBasicThermoParcelHeatTransferModels.C
@@ -29,6 +29,8 @@ License
 #include "NoHeatTransfer.H"
 #include "RanzMarshall.H"
 
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
 namespace Foam
 {
     makeHeatTransferModel(ThermoCloud<basicThermoParcel>);
diff --git a/src/lagrangian/intermediate/parcels/derived/basicThermoParcel/makeBasicThermoParcelInjectionModels.C b/src/lagrangian/intermediate/parcels/derived/basicThermoParcel/submodels/makeBasicThermoParcelInjectionModels.C
similarity index 95%
rename from src/lagrangian/intermediate/parcels/derived/basicThermoParcel/makeBasicThermoParcelInjectionModels.C
rename to src/lagrangian/intermediate/parcels/derived/basicThermoParcel/submodels/makeBasicThermoParcelInjectionModels.C
index cb51b8685257ca1a7860fd0d30e7e421d21fd5e8..f2f433b0216ad9c4ab9b9542d016e11f42c8ae11 100644
--- a/src/lagrangian/intermediate/parcels/derived/basicThermoParcel/makeBasicThermoParcelInjectionModels.C
+++ b/src/lagrangian/intermediate/parcels/derived/basicThermoParcel/submodels/makeBasicThermoParcelInjectionModels.C
@@ -30,6 +30,8 @@ License
 #include "ManualInjection.H"
 #include "ConeInjection.H"
 
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
 namespace Foam
 {
     makeInjectionModel(KinematicCloud<basicThermoParcel>);
diff --git a/src/lagrangian/intermediate/parcels/derived/basicThermoParcel/makeBasicThermoParcelWallInteractionModels.C b/src/lagrangian/intermediate/parcels/derived/basicThermoParcel/submodels/makeBasicThermoParcelWallInteractionModels.C
similarity index 95%
rename from src/lagrangian/intermediate/parcels/derived/basicThermoParcel/makeBasicThermoParcelWallInteractionModels.C
rename to src/lagrangian/intermediate/parcels/derived/basicThermoParcel/submodels/makeBasicThermoParcelWallInteractionModels.C
index 03402510f6925d545dbbded33781f55c63d2bf14..361ffffdb10e8f21a636c54ca694e65054debe6e 100644
--- a/src/lagrangian/intermediate/parcels/derived/basicThermoParcel/makeBasicThermoParcelWallInteractionModels.C
+++ b/src/lagrangian/intermediate/parcels/derived/basicThermoParcel/submodels/makeBasicThermoParcelWallInteractionModels.C
@@ -29,6 +29,8 @@ License
 #include "Rebound.H"
 #include "StandardWallInteraction.H"
 
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
 namespace Foam
 {
     makeWallInteractionModel(KinematicCloud<basicThermoParcel>);
diff --git a/src/lagrangian/intermediate/submodels/Reacting/SurfaceReactionModel/NoSurfaceReaction/NoSurfaceReaction.C b/src/lagrangian/intermediate/submodels/ReactingMultiphase/SurfaceReactionModel/NoSurfaceReaction/NoSurfaceReaction.C
similarity index 100%
rename from src/lagrangian/intermediate/submodels/Reacting/SurfaceReactionModel/NoSurfaceReaction/NoSurfaceReaction.C
rename to src/lagrangian/intermediate/submodels/ReactingMultiphase/SurfaceReactionModel/NoSurfaceReaction/NoSurfaceReaction.C
diff --git a/src/lagrangian/intermediate/submodels/Reacting/SurfaceReactionModel/NoSurfaceReaction/NoSurfaceReaction.H b/src/lagrangian/intermediate/submodels/ReactingMultiphase/SurfaceReactionModel/NoSurfaceReaction/NoSurfaceReaction.H
similarity index 97%
rename from src/lagrangian/intermediate/submodels/Reacting/SurfaceReactionModel/NoSurfaceReaction/NoSurfaceReaction.H
rename to src/lagrangian/intermediate/submodels/ReactingMultiphase/SurfaceReactionModel/NoSurfaceReaction/NoSurfaceReaction.H
index 65ff10c0f29d74e73f6a9ff82dc9674d7446cf48..edb919a62142118d579d5c177c41420b515b31d7 100644
--- a/src/lagrangian/intermediate/submodels/Reacting/SurfaceReactionModel/NoSurfaceReaction/NoSurfaceReaction.H
+++ b/src/lagrangian/intermediate/submodels/ReactingMultiphase/SurfaceReactionModel/NoSurfaceReaction/NoSurfaceReaction.H
@@ -71,10 +71,10 @@ public:
     // Member Functions
 
         //- Flag to indicate whether model activates devolatisation model
-        bool active() const;
+        virtual bool active() const;
 
         //- Update surface reactions
-        void calculate
+        virtual void calculate
         (
             const scalar dt,
             const label celli,
diff --git a/src/lagrangian/intermediate/submodels/Reacting/SurfaceReactionModel/SurfaceReactionModel/NewSurfaceReactionModel.C b/src/lagrangian/intermediate/submodels/ReactingMultiphase/SurfaceReactionModel/SurfaceReactionModel/NewSurfaceReactionModel.C
similarity index 100%
rename from src/lagrangian/intermediate/submodels/Reacting/SurfaceReactionModel/SurfaceReactionModel/NewSurfaceReactionModel.C
rename to src/lagrangian/intermediate/submodels/ReactingMultiphase/SurfaceReactionModel/SurfaceReactionModel/NewSurfaceReactionModel.C
diff --git a/src/lagrangian/intermediate/submodels/Reacting/SurfaceReactionModel/SurfaceReactionModel/SurfaceReactionModel.C b/src/lagrangian/intermediate/submodels/ReactingMultiphase/SurfaceReactionModel/SurfaceReactionModel/SurfaceReactionModel.C
similarity index 100%
rename from src/lagrangian/intermediate/submodels/Reacting/SurfaceReactionModel/SurfaceReactionModel/SurfaceReactionModel.C
rename to src/lagrangian/intermediate/submodels/ReactingMultiphase/SurfaceReactionModel/SurfaceReactionModel/SurfaceReactionModel.C
diff --git a/src/lagrangian/intermediate/submodels/Reacting/SurfaceReactionModel/SurfaceReactionModel/SurfaceReactionModel.H b/src/lagrangian/intermediate/submodels/ReactingMultiphase/SurfaceReactionModel/SurfaceReactionModel/SurfaceReactionModel.H
similarity index 98%
rename from src/lagrangian/intermediate/submodels/Reacting/SurfaceReactionModel/SurfaceReactionModel/SurfaceReactionModel.H
rename to src/lagrangian/intermediate/submodels/ReactingMultiphase/SurfaceReactionModel/SurfaceReactionModel/SurfaceReactionModel.H
index 339af3560b1c67337962b2c0d53ccc41b8ae2b76..6b4f5be31cbe7161d420bc22be5a9b2895045ac7 100644
--- a/src/lagrangian/intermediate/submodels/Reacting/SurfaceReactionModel/SurfaceReactionModel/SurfaceReactionModel.H
+++ b/src/lagrangian/intermediate/submodels/ReactingMultiphase/SurfaceReactionModel/SurfaceReactionModel/SurfaceReactionModel.H
@@ -56,7 +56,6 @@ namespace Foam
 template<class CloudType>
 class SurfaceReactionModel
 {
-
     // Private data
 
         //- The cloud dictionary
@@ -129,7 +128,7 @@ public:
 
     // Member Functions
 
-        //- Flag to indicate whether model activates devolatisation model
+        //- Flag to indicate whether model activates surface reaction model
         virtual bool active() const = 0;
 
         //- Update surface reactions