From 0e527a8f8310a6deedc8e9cd9d075984f106fb41 Mon Sep 17 00:00:00 2001
From: andy <a.heather@opencfd.co.uk>
Date: Wed, 3 Jun 2009 15:25:40 +0100
Subject: [PATCH] updates to the sub-model build system

---
 .../{submodels => }/makeCoalParcelSubmodels.C | 20 ++---
 src/lagrangian/coalCombustion/Make/files      |  2 +-
 .../makeCoalParcelSurfaceReactionModels.H     |  8 +-
 src/lagrangian/intermediate/Make/files        | 39 +++------
 ...keBasicReactingMultiphaseParcelSubmodels.C | 20 ++---
 .../makeBasicReactingParcelSubmodels.C        | 16 ++--
 .../makeBasicTrackedReactingParcelSubmodels.C | 19 +++--
 .../defineBasicKinematicParcel.C              |  3 +
 .../makeBasicKinematicParcelSubmodels.C}      | 18 ++--
 ...makeBasicKinematicParcelDispersionModels.C | 68 ---------------
 .../makeBasicKinematicParcelInjectionModels.C | 76 -----------------
 ...sicKinematicParcelPatchInteractionModels.C | 62 --------------
 .../defineBasicThermoParcel.C                 |  3 +
 ...els.C => makeBasicThermoParcelSubmodels.C} | 43 ++++------
 .../makeBasicThermoParcelDispersionModels.C   | 67 ---------------
 .../makeBasicThermoParcelDragModels.C         | 44 ----------
 .../makeBasicThermoParcelHeatTransferModels.C | 44 ----------
 .../makeBasicThermoParcelInjectionModels.C    | 78 ------------------
 ...akeBasicThermoParcelPostProcessingModels.C | 54 ------------
 .../createReactingMultiphaseParcelTypes.H     |  2 +-
 .../include/makeParcelDispersionModels.H      | 74 +++++++++++++++++
 .../makeParcelDragModels.H}                   | 22 +++--
 .../include/makeParcelHeatTransferModels.H    | 61 ++++++++++++++
 .../include/makeParcelInjectionModels.H       | 82 +++++++++++++++++++
 .../makeParcelPatchInteractionModels.H        | 68 +++++++++++++++
 .../makeParcelPostProcessingModels.H}         | 42 ++++++----
 ...eactingMultiphaseParcelCompositionModels.H |  8 +-
 ...ngMultiphaseParcelDevolatilisationModels.H |  8 +-
 ...eReactingMultiphaseParcelInjectionModels.H |  8 +-
 ...ingMultiphaseParcelSurfaceReactionModels.H |  8 +-
 .../makeReactingParcelCompositionModels.H     |  8 +-
 .../makeReactingParcelDispersionModels.H      |  8 +-
 .../makeReactingParcelDragModels.H            |  8 +-
 .../makeReactingParcelHeatTransferModels.H    |  8 +-
 .../makeReactingParcelInjectionModels.H       |  8 +-
 ...makeReactingParcelPatchInteractionModels.H |  8 +-
 .../makeReactingParcelPhaseChangeModels.H     |  8 +-
 .../makeReactingParcelPostProcessingModels.H  |  8 +-
 38 files changed, 466 insertions(+), 665 deletions(-)
 rename src/lagrangian/coalCombustion/CoalParcel/{submodels => }/makeCoalParcelSubmodels.C (79%)
 rename src/lagrangian/coalCombustion/{CoalParcel/submodels => include}/makeCoalParcelSurfaceReactionModels.H (95%)
 rename src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/{submodels => }/makeBasicReactingMultiphaseParcelSubmodels.C (77%)
 rename src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/{submodels => }/makeBasicReactingParcelSubmodels.C (80%)
 rename src/lagrangian/intermediate/parcels/derived/BasicTrackedReactingParcel/{submodels => }/makeBasicTrackedReactingParcelSubmodels.C (78%)
 rename src/lagrangian/intermediate/{submodels/IO/IOList/makeParcelIOLists.C => parcels/derived/basicKinematicParcel/makeBasicKinematicParcelSubmodels.C} (73%)
 delete mode 100644 src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/submodels/makeBasicKinematicParcelDispersionModels.C
 delete mode 100644 src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/submodels/makeBasicKinematicParcelInjectionModels.C
 delete mode 100644 src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/submodels/makeBasicKinematicParcelPatchInteractionModels.C
 rename src/lagrangian/intermediate/parcels/derived/basicThermoParcel/{submodels/makeBasicThermoParcelPatchInteractionModels.C => makeBasicThermoParcelSubmodels.C} (69%)
 delete mode 100644 src/lagrangian/intermediate/parcels/derived/basicThermoParcel/submodels/makeBasicThermoParcelDispersionModels.C
 delete mode 100644 src/lagrangian/intermediate/parcels/derived/basicThermoParcel/submodels/makeBasicThermoParcelDragModels.C
 delete mode 100644 src/lagrangian/intermediate/parcels/derived/basicThermoParcel/submodels/makeBasicThermoParcelHeatTransferModels.C
 delete mode 100644 src/lagrangian/intermediate/parcels/derived/basicThermoParcel/submodels/makeBasicThermoParcelInjectionModels.C
 delete mode 100644 src/lagrangian/intermediate/parcels/derived/basicThermoParcel/submodels/makeBasicThermoParcelPostProcessingModels.C
 create mode 100644 src/lagrangian/intermediate/parcels/include/makeParcelDispersionModels.H
 rename src/lagrangian/intermediate/parcels/{derived/basicKinematicParcel/submodels/makeBasicKinematicParcelDragModels.C => include/makeParcelDragModels.H} (67%)
 create mode 100644 src/lagrangian/intermediate/parcels/include/makeParcelHeatTransferModels.H
 create mode 100644 src/lagrangian/intermediate/parcels/include/makeParcelInjectionModels.H
 create mode 100644 src/lagrangian/intermediate/parcels/include/makeParcelPatchInteractionModels.H
 rename src/lagrangian/intermediate/parcels/{derived/basicKinematicParcel/submodels/makeBasicKinematicParcelPostProcessingModels.C => include/makeParcelPostProcessingModels.H} (50%)
 rename src/lagrangian/intermediate/parcels/{derived/BasicReactingMultiphaseParcel/submodels => include}/makeReactingMultiphaseParcelCompositionModels.H (92%)
 rename src/lagrangian/intermediate/parcels/{derived/BasicReactingMultiphaseParcel/submodels => include}/makeReactingMultiphaseParcelDevolatilisationModels.H (93%)
 rename src/lagrangian/intermediate/parcels/{derived/BasicReactingMultiphaseParcel/submodels => include}/makeReactingMultiphaseParcelInjectionModels.H (94%)
 rename src/lagrangian/intermediate/parcels/{derived/BasicReactingMultiphaseParcel/submodels => include}/makeReactingMultiphaseParcelSurfaceReactionModels.H (92%)
 rename src/lagrangian/intermediate/parcels/{derived/BasicReactingParcel/submodels => include}/makeReactingParcelCompositionModels.H (92%)
 rename src/lagrangian/intermediate/parcels/{derived/BasicReactingParcel/submodels => include}/makeReactingParcelDispersionModels.H (94%)
 rename src/lagrangian/intermediate/parcels/{derived/BasicReactingParcel/submodels => include}/makeReactingParcelDragModels.H (93%)
 rename src/lagrangian/intermediate/parcels/{derived/BasicReactingParcel/submodels => include}/makeReactingParcelHeatTransferModels.H (93%)
 rename src/lagrangian/intermediate/parcels/{derived/BasicReactingParcel/submodels => include}/makeReactingParcelInjectionModels.H (95%)
 rename src/lagrangian/intermediate/parcels/{derived/BasicReactingParcel/submodels => include}/makeReactingParcelPatchInteractionModels.H (94%)
 rename src/lagrangian/intermediate/parcels/{derived/BasicReactingParcel/submodels => include}/makeReactingParcelPhaseChangeModels.H (93%)
 rename src/lagrangian/intermediate/parcels/{derived/BasicReactingParcel/submodels => include}/makeReactingParcelPostProcessingModels.H (93%)

diff --git a/src/lagrangian/coalCombustion/CoalParcel/submodels/makeCoalParcelSubmodels.C b/src/lagrangian/coalCombustion/CoalParcel/makeCoalParcelSubmodels.C
similarity index 79%
rename from src/lagrangian/coalCombustion/CoalParcel/submodels/makeCoalParcelSubmodels.C
rename to src/lagrangian/coalCombustion/CoalParcel/makeCoalParcelSubmodels.C
index 479a121f8e4..d4541a50390 100644
--- a/src/lagrangian/coalCombustion/CoalParcel/submodels/makeCoalParcelSubmodels.C
+++ b/src/lagrangian/coalCombustion/CoalParcel/makeCoalParcelSubmodels.C
@@ -49,22 +49,22 @@ License
 namespace Foam
 {
     // Kinematic sub-models
-    createReactingDispersionModelType(CoalParcel);
-    createReactingDragModelType(CoalParcel);
-    createReactingMultiphaseInjectionModelType(CoalParcel);
-    createReactingPatchInteractionModelType(CoalParcel);
-    createReactingPostProcessingModelType(CoalParcel);
+    makeReactingDispersionModels(CoalParcel);
+    makeReactingDragModels(CoalParcel);
+    makeReactingMultiphaseInjectionModels(CoalParcel);
+    makeReactingPatchInteractionModels(CoalParcel);
+    makeReactingPostProcessingModels(CoalParcel);
 
     // Thermo sub-models
-    createReactingHeatTransferModelType(CoalParcel);
+    makeReactingHeatTransferModels(CoalParcel);
 
     // Reacting sub-models
-    createReactingMultiphaseCompositionModelType(CoalParcel);
-    createReactingPhaseChangeModelType(CoalParcel);
+    makeReactingMultiphaseCompositionModels(CoalParcel);
+    makeReactingPhaseChangeModels(CoalParcel);
 
     // Reacting multiphase sub-models
-    createReactingMultiphaseDevolatilisationModelType(CoalParcel);
-    createCoalSurfaceReactionModelType(CoalParcel);
+    makeReactingMultiphaseDevolatilisationModels(CoalParcel);
+    makeCoalSurfaceReactionModels(CoalParcel);
 };
 
 
diff --git a/src/lagrangian/coalCombustion/Make/files b/src/lagrangian/coalCombustion/Make/files
index 4a7cb52d25d..2c7aac61ab9 100755
--- a/src/lagrangian/coalCombustion/Make/files
+++ b/src/lagrangian/coalCombustion/Make/files
@@ -3,6 +3,6 @@ CoalCloud/defineCoalCloud.C
 
 /* Coal parcel and sub-models */
 CoalParcel/defineCoalParcel.C
-CoalParcel/submodels/makeCoalParcelSubmodels.C
+CoalParcel/makeCoalParcelSubmodels.C
 
 LIB = $(FOAM_LIBBIN)/libcoalCombustion
diff --git a/src/lagrangian/coalCombustion/CoalParcel/submodels/makeCoalParcelSurfaceReactionModels.H b/src/lagrangian/coalCombustion/include/makeCoalParcelSurfaceReactionModels.H
similarity index 95%
rename from src/lagrangian/coalCombustion/CoalParcel/submodels/makeCoalParcelSurfaceReactionModels.H
rename to src/lagrangian/coalCombustion/include/makeCoalParcelSurfaceReactionModels.H
index d943084ce0c..61892e2e0ce 100644
--- a/src/lagrangian/coalCombustion/CoalParcel/submodels/makeCoalParcelSurfaceReactionModels.H
+++ b/src/lagrangian/coalCombustion/include/makeCoalParcelSurfaceReactionModels.H
@@ -39,21 +39,21 @@ License
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-#define createCoalSurfaceReactionModelType(ParcelType)                        \
+#define makeCoalSurfaceReactionModels(ParcelType)                             \
                                                                               \
-    createCoalSurfaceReactionModelThermoType                                  \
+    makeCoalSurfaceReactionModelThermoType                                    \
     (                                                                         \
         ParcelType,                                                           \
         specieConstProperties                                                 \
     );                                                                        \
-    createCoalSurfaceReactionModelThermoType                                  \
+    makeCoalSurfaceReactionModelThermoType                                    \
     (                                                                         \
         ParcelType,                                                           \
         specieReactingProperties                                              \
     );
 
 
-#define createCoalSurfaceReactionModelThermoType(ParcelType, ThermoType)      \
+#define makeCoalSurfaceReactionModelThermoType(ParcelType, ThermoType)        \
                                                                               \
     makeSurfaceReactionModel                                                  \
     (                                                                         \
diff --git a/src/lagrangian/intermediate/Make/files b/src/lagrangian/intermediate/Make/files
index c67e9e606d3..de8bcd33212 100644
--- a/src/lagrangian/intermediate/Make/files
+++ b/src/lagrangian/intermediate/Make/files
@@ -1,10 +1,10 @@
 PARCELS=parcels
-DERIVEDPARCELS=$(PARCELS)/derived
 BASEPARCELS=$(PARCELS)/baseClasses
+DERIVEDPARCELS=$(PARCELS)/derived
 
 CLOUDS=clouds
-DERIVEDCLOUDS=$(CLOUDS)/derived
 BASECLOUDS=$(CLOUDS)/baseClasses
+DERIVEDCLOUDS=$(CLOUDS)/derived
 
 
 /* Parcels */
@@ -30,41 +30,32 @@ $(DERIVEDCLOUDS)/BasicTrackedReactingCloud/defineBasicTrackedReactingCloud.C
 KINEMATICPARCEL=$(DERIVEDPARCELS)/basicKinematicParcel
 $(KINEMATICPARCEL)/basicKinematicParcel.C
 $(KINEMATICPARCEL)/defineBasicKinematicParcel.C
-$(KINEMATICPARCEL)/submodels/makeBasicKinematicParcelDispersionModels.C
-$(KINEMATICPARCEL)/submodels/makeBasicKinematicParcelDragModels.C
-$(KINEMATICPARCEL)/submodels/makeBasicKinematicParcelInjectionModels.C
-$(KINEMATICPARCEL)/submodels/makeBasicKinematicParcelPatchInteractionModels.C
-$(KINEMATICPARCEL)/submodels/makeBasicKinematicParcelPostProcessingModels.C
+$(KINEMATICPARCEL)/makeBasicKinematicParcelSubmodels.C
 
 
 /* thermo parcel sub-models */
 THERMOPARCEL=$(DERIVEDPARCELS)/basicThermoParcel
 $(THERMOPARCEL)/basicThermoParcel.C
 $(THERMOPARCEL)/defineBasicThermoParcel.C
-$(THERMOPARCEL)/submodels/makeBasicThermoParcelDispersionModels.C
-$(THERMOPARCEL)/submodels/makeBasicThermoParcelDragModels.C
-$(THERMOPARCEL)/submodels/makeBasicThermoParcelHeatTransferModels.C
-$(THERMOPARCEL)/submodels/makeBasicThermoParcelInjectionModels.C
-$(THERMOPARCEL)/submodels/makeBasicThermoParcelPatchInteractionModels.C
-$(THERMOPARCEL)/submodels/makeBasicThermoParcelPostProcessingModels.C
+$(THERMOPARCEL)/makeBasicThermoParcelSubmodels.C
 
 
 /* reacting parcel sub-models */
 REACTINGPARCEL=$(DERIVEDPARCELS)/BasicReactingParcel
 $(REACTINGPARCEL)/defineBasicReactingParcel.C
-$(REACTINGPARCEL)/submodels/makeBasicReactingParcelSubmodels.C
+$(REACTINGPARCEL)/makeBasicReactingParcelSubmodels.C
 
 
 /* tracked reacting parcel sub-models */
 TRACKEDREACTINGPARCEL=$(DERIVEDPARCELS)/BasicTrackedReactingParcel
 $(TRACKEDREACTINGPARCEL)/defineTrackedReactingParcel.C
-$(TRACKEDREACTINGPARCEL)/submodels/makeBasicTrackedReactingParcelSubmodels.C
+$(TRACKEDREACTINGPARCEL)/makeBasicTrackedReactingParcelSubmodels.C
 
 
 /* reacting multiphase parcel sub-models */
-/*REACTINGMPPARCEL=$(DERIVEDPARCELS)/BasicReactingMultiphaseParcel
+REACTINGMPPARCEL=$(DERIVEDPARCELS)/BasicReactingMultiphaseParcel
 $(REACTINGMPPARCEL)/defineBasicReactingMultiphaseParcel.C
-$(REACTINGMPPARCEL)/submodels/makeBasicReactingMultiphaseSubmodels.C
+$(REACTINGMPPARCEL)/makeBasicReactingMultiphaseParcelSubmodels.C
 
 
 /* bolt-on models */
@@ -72,6 +63,11 @@ submodels/addOns/radiation/absorptionEmission/cloudAbsorptionEmission/cloudAbsor
 submodels/addOns/radiation/scatter/cloudScatter/cloudScatter.C
 
 
+/* data entries */
+submodels/IO/DataEntry/makeDataEntries.C
+submodels/IO/DataEntry/polynomial/polynomial.C
+
+
 /* integration schemes */
 IntegrationScheme/makeIntegrationSchemes.C
 
@@ -86,13 +82,4 @@ phaseProperties/phaseProperties/phasePropertiesIO.C
 phaseProperties/phasePropertiesList/phasePropertiesList.C
 
 
-/* data entries */
-submodels/IO/DataEntry/makeDataEntries.C
-submodels/IO/DataEntry/polynomial/polynomial.C
-
-
-/* IOLists */
-submodels/IO/IOList/makeParcelIOLists.C
-
-
 LIB = $(FOAM_LIBBIN)/liblagrangianIntermediate
diff --git a/src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/submodels/makeBasicReactingMultiphaseParcelSubmodels.C b/src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/makeBasicReactingMultiphaseParcelSubmodels.C
similarity index 77%
rename from src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/submodels/makeBasicReactingMultiphaseParcelSubmodels.C
rename to src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/makeBasicReactingMultiphaseParcelSubmodels.C
index 3e9cf9b4d7d..e795bd4281b 100644
--- a/src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/submodels/makeBasicReactingMultiphaseParcelSubmodels.C
+++ b/src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/makeBasicReactingMultiphaseParcelSubmodels.C
@@ -49,25 +49,25 @@ License
 namespace Foam
 {
     // Kinematic sub-models
-    createReactingDispersionModelType(BasicReactingMultiphaseParcel);
-    createReactingDragModelType(BasicReactingMultiphaseParcel);
-    createReactingMultiphaseInjectionModelType(BasicReactingMultiphaseParcel);
-    createReactingPatchInteractionModelType(BasicReactingMultiphaseParcel);
-    createReactingPostProcessingModelType(BasicReactingMultiphaseParcel);
+    makeReactingDispersionModels(BasicReactingMultiphaseParcel);
+    makeReactingDragModels(BasicReactingMultiphaseParcel);
+    makeReactingMultiphaseInjectionModels(BasicReactingMultiphaseParcel);
+    makeReactingPatchInteractionModels(BasicReactingMultiphaseParcel);
+    makeReactingPostProcessingModels(BasicReactingMultiphaseParcel);
 
     // Thermo sub-models
-    createReactingHeatTransferModelType(BasicReactingMultiphaseParcel);
+    makeReactingHeatTransferModels(BasicReactingMultiphaseParcel);
 
     // Reacting sub-models
-    createReactingMultiphaseCompositionModelType(BasicReactingMultiphaseParcel);
-    createReactingPhaseChangeModelType(BasicReactingMultiphaseParcel);
+    makeReactingMultiphaseCompositionModels(BasicReactingMultiphaseParcel);
+    makeReactingPhaseChangeModels(BasicReactingMultiphaseParcel);
 
     // Reacting multiphase sub-models
-    createReactingMultiphaseDevolatilisationModelType
+    makeReactingMultiphaseDevolatilisationModels
     (
         BasicReactingMultiphaseParcel
     );
-    createReactingMultiphaseSurfaceReactionModelType
+    makeReactingMultiphaseSurfaceReactionModels
     (
         BasicReactingMultiphaseParcel
     );
diff --git a/src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeBasicReactingParcelSubmodels.C b/src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/makeBasicReactingParcelSubmodels.C
similarity index 80%
rename from src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeBasicReactingParcelSubmodels.C
rename to src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/makeBasicReactingParcelSubmodels.C
index be7df8268d1..a07bda2b659 100644
--- a/src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeBasicReactingParcelSubmodels.C
+++ b/src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/makeBasicReactingParcelSubmodels.C
@@ -45,18 +45,18 @@ License
 namespace Foam
 {
     // Kinematic sub-models
-    createReactingDispersionModelType(BasicReactingParcel);
-    createReactingDragModelType(BasicReactingParcel);
-    createReactingInjectionModelType(BasicReactingParcel);
-    createReactingPatchInteractionModelType(BasicReactingParcel);
-    createReactingPostProcessingModelType(BasicReactingParcel);
+    makeReactingDispersionModels(BasicReactingParcel);
+    makeReactingDragModels(BasicReactingParcel);
+    makeReactingInjectionModels(BasicReactingParcel);
+    makeReactingPatchInteractionModels(BasicReactingParcel);
+    makeReactingPostProcessingModels(BasicReactingParcel);
 
     // Thermo sub-models
-    createReactingHeatTransferModelType(BasicReactingParcel);
+    makeReactingHeatTransferModels(BasicReactingParcel);
 
     // Reacting sub-models
-    createReactingCompositionModelType(BasicReactingParcel);
-    createReactingPhaseChangeModelType(BasicReactingParcel);
+    makeReactingCompositionModels(BasicReactingParcel);
+    makeReactingPhaseChangeModels(BasicReactingParcel);
 };
 
 
diff --git a/src/lagrangian/intermediate/parcels/derived/BasicTrackedReactingParcel/submodels/makeBasicTrackedReactingParcelSubmodels.C b/src/lagrangian/intermediate/parcels/derived/BasicTrackedReactingParcel/makeBasicTrackedReactingParcelSubmodels.C
similarity index 78%
rename from src/lagrangian/intermediate/parcels/derived/BasicTrackedReactingParcel/submodels/makeBasicTrackedReactingParcelSubmodels.C
rename to src/lagrangian/intermediate/parcels/derived/BasicTrackedReactingParcel/makeBasicTrackedReactingParcelSubmodels.C
index e81e981f998..a5d4cd1eeae 100644
--- a/src/lagrangian/intermediate/parcels/derived/BasicTrackedReactingParcel/submodels/makeBasicTrackedReactingParcelSubmodels.C
+++ b/src/lagrangian/intermediate/parcels/derived/BasicTrackedReactingParcel/makeBasicTrackedReactingParcelSubmodels.C
@@ -26,14 +26,17 @@ License
 
 #include "BasicTrackedReactingParcel.H"
 
+// Kinematic
 #include "makeReactingParcelDispersionModels.H"
 #include "makeReactingParcelDragModels.H"
 #include "makeReactingParcelInjectionModels.H"
 #include "makeReactingParcelPatchInteractionModels.H"
 #include "makeReactingParcelPostProcessingModels.H"
 
+// Thermo
 #include "makeReactingParcelHeatTransferModels.H"
 
+// Reacting
 #include "makeReactingParcelCompositionModels.H"
 #include "makeReactingParcelPhaseChangeModels.H"
 
@@ -42,18 +45,18 @@ License
 namespace Foam
 {
     // Kinematic sub-models
-    createReactingDispersionModelType(BasicTrackedReactingParcel);
-    createReactingDragModelType(BasicTrackedReactingParcel);
-    createReactingInjectionModelType(BasicTrackedReactingParcel);
-    createReactingPatchInteractionModelType(BasicTrackedReactingParcel);
-    createReactingPostProcessingModelType(BasicTrackedReactingParcel);
+    makeReactingDispersionModels(BasicTrackedReactingParcel);
+    makeReactingDragModels(BasicTrackedReactingParcel);
+    makeReactingInjectionModels(BasicTrackedReactingParcel);
+    makeReactingPatchInteractionModels(BasicTrackedReactingParcel);
+    makeReactingPostProcessingModels(BasicTrackedReactingParcel);
 
     // Thermo sub-models
-    createReactingHeatTransferModelType(BasicTrackedReactingParcel);
+    makeReactingHeatTransferModels(BasicTrackedReactingParcel);
 
     // Reacting sub-models
-    createReactingCompositionModelType(BasicTrackedReactingParcel);
-    createReactingPhaseChangeModelType(BasicTrackedReactingParcel);
+    makeReactingCompositionModels(BasicTrackedReactingParcel);
+    makeReactingPhaseChangeModels(BasicTrackedReactingParcel);
 };
 
 
diff --git a/src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/defineBasicKinematicParcel.C b/src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/defineBasicKinematicParcel.C
index b5b577c0fc7..e7c1b578da4 100644
--- a/src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/defineBasicKinematicParcel.C
+++ b/src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/defineBasicKinematicParcel.C
@@ -26,6 +26,7 @@ License
 
 #include "basicKinematicParcel.H"
 #include "KinematicCloud.H"
+#include "makeParcelIOList.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
@@ -34,6 +35,8 @@ namespace Foam
     defineTemplateTypeNameAndDebug(Cloud<basicKinematicParcel>, 0);
 
     defineParcelTypeNameAndDebug(KinematicCloud<basicKinematicParcel>, 0);
+
+    makeParcelIOList(basicKinematicParcel);
 };
 
 
diff --git a/src/lagrangian/intermediate/submodels/IO/IOList/makeParcelIOLists.C b/src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/makeBasicKinematicParcelSubmodels.C
similarity index 73%
rename from src/lagrangian/intermediate/submodels/IO/IOList/makeParcelIOLists.C
rename to src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/makeBasicKinematicParcelSubmodels.C
index 2decc76d4b9..9bb80337651 100644
--- a/src/lagrangian/intermediate/submodels/IO/IOList/makeParcelIOLists.C
+++ b/src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/makeBasicKinematicParcelSubmodels.C
@@ -24,17 +24,25 @@ License
 
 \*---------------------------------------------------------------------------*/
 
-#include "makeParcelIOList.H"
-
 #include "basicKinematicParcel.H"
-#include "basicThermoParcel.H"
+
+// Kinematic
+#include "makeParcelDispersionModels.H"
+#include "makeParcelDragModels.H"
+#include "makeParcelInjectionModels.H"
+#include "makeParcelPatchInteractionModels.H"
+#include "makeParcelPostProcessingModels.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 namespace Foam
 {
-    makeParcelIOList(basicKinematicParcel);
-    makeParcelIOList(basicThermoParcel);
+    // Kinematic sub-models
+    makeParcelDispersionModels(basicKinematicParcel);
+    makeParcelDragModels(basicKinematicParcel);
+    makeParcelInjectionModels(basicKinematicParcel);
+    makeParcelPatchInteractionModels(basicKinematicParcel);
+    makeParcelPostProcessingModels(basicKinematicParcel);
 };
 
 
diff --git a/src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/submodels/makeBasicKinematicParcelDispersionModels.C b/src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/submodels/makeBasicKinematicParcelDispersionModels.C
deleted file mode 100644
index f6444b1252f..00000000000
--- a/src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/submodels/makeBasicKinematicParcelDispersionModels.C
+++ /dev/null
@@ -1,68 +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 "basicKinematicParcel.H"
-#include "KinematicCloud.H"
-
-#include "NoDispersion.H"
-#include "GradientDispersionRAS.H"
-#include "StochasticDispersionRAS.H"
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-namespace Foam
-{
-    makeDispersionModel(KinematicCloud<basicKinematicParcel>);
-
-    defineNamedTemplateTypeNameAndDebug
-    (
-        DispersionRASModel<KinematicCloud<basicKinematicParcel> >,
-        0
-    );
-
-    // Add instances of dispersion model to the table
-    makeDispersionModelType
-    (
-        NoDispersion,
-        KinematicCloud,
-        basicKinematicParcel
-    );
-    makeDispersionModelType
-    (
-        GradientDispersionRAS,
-        KinematicCloud,
-        basicKinematicParcel
-    );
-    makeDispersionModelType
-    (
-        StochasticDispersionRAS,
-        KinematicCloud,
-        basicKinematicParcel
-    );
-};
-
-
-// ************************************************************************* //
diff --git a/src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/submodels/makeBasicKinematicParcelInjectionModels.C b/src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/submodels/makeBasicKinematicParcelInjectionModels.C
deleted file mode 100644
index 9c406339f51..00000000000
--- a/src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/submodels/makeBasicKinematicParcelInjectionModels.C
+++ /dev/null
@@ -1,76 +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 "basicKinematicParcel.H"
-#include "KinematicCloud.H"
-
-#include "ConeInjection.H"
-#include "FieldActivatedInjection.H"
-#include "KinematicLookupTableInjection.H"
-#include "ManualInjection.H"
-#include "NoInjection.H"
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-namespace Foam
-{
-    makeInjectionModel(KinematicCloud<basicKinematicParcel>);
-
-    // Add instances of injection model to the table
-    makeInjectionModelType
-    (
-        ConeInjection,
-        KinematicCloud,
-        basicKinematicParcel
-    );
-    makeInjectionModelType
-    (
-        FieldActivatedInjection,
-        KinematicCloud,
-        basicKinematicParcel
-    );
-    makeInjectionModelType
-    (
-        KinematicLookupTableInjection,
-        KinematicCloud,
-        basicKinematicParcel
-    );
-    makeInjectionModelType
-    (
-        ManualInjection,
-        KinematicCloud,
-        basicKinematicParcel
-    );
-    makeInjectionModelType
-    (
-        NoInjection,
-        KinematicCloud,
-        basicKinematicParcel
-    );
-};
-
-
-// ************************************************************************* //
diff --git a/src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/submodels/makeBasicKinematicParcelPatchInteractionModels.C b/src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/submodels/makeBasicKinematicParcelPatchInteractionModels.C
deleted file mode 100644
index 2cc9f83d583..00000000000
--- a/src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/submodels/makeBasicKinematicParcelPatchInteractionModels.C
+++ /dev/null
@@ -1,62 +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 "basicKinematicParcel.H"
-#include "KinematicCloud.H"
-
-#include "LocalInteraction.H"
-#include "Rebound.H"
-#include "StandardWallInteraction.H"
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-namespace Foam
-{
-    makePatchInteractionModel(KinematicCloud<basicKinematicParcel>);
-
-    // Add instances of patch interaction model to the table
-    makePatchInteractionModelType
-    (
-        LocalInteraction,
-        KinematicCloud,
-        basicKinematicParcel
-    );
-    makePatchInteractionModelType
-    (
-        Rebound,
-        KinematicCloud,
-        basicKinematicParcel
-    );
-    makePatchInteractionModelType
-    (
-        StandardWallInteraction,
-        KinematicCloud,
-        basicKinematicParcel
-    );
-};
-
-
-// ************************************************************************* //
diff --git a/src/lagrangian/intermediate/parcels/derived/basicThermoParcel/defineBasicThermoParcel.C b/src/lagrangian/intermediate/parcels/derived/basicThermoParcel/defineBasicThermoParcel.C
index 7a05a3ec46b..4c38cff64c5 100644
--- a/src/lagrangian/intermediate/parcels/derived/basicThermoParcel/defineBasicThermoParcel.C
+++ b/src/lagrangian/intermediate/parcels/derived/basicThermoParcel/defineBasicThermoParcel.C
@@ -26,6 +26,7 @@ License
 
 #include "basicThermoParcel.H"
 #include "ThermoCloud.H"
+#include "makeParcelIOList.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
@@ -40,6 +41,8 @@ namespace Foam
     defineParcelTypeNameAndDebug(KinematicCloud<basicThermoParcel>, 0);
 
     defineParcelTypeNameAndDebug(ThermoCloud<basicThermoParcel>, 0);
+
+    makeParcelIOList(basicThermoParcel);
 };
 
 
diff --git a/src/lagrangian/intermediate/parcels/derived/basicThermoParcel/submodels/makeBasicThermoParcelPatchInteractionModels.C b/src/lagrangian/intermediate/parcels/derived/basicThermoParcel/makeBasicThermoParcelSubmodels.C
similarity index 69%
rename from src/lagrangian/intermediate/parcels/derived/basicThermoParcel/submodels/makeBasicThermoParcelPatchInteractionModels.C
rename to src/lagrangian/intermediate/parcels/derived/basicThermoParcel/makeBasicThermoParcelSubmodels.C
index 2f93f7aeed3..2496f39d436 100644
--- a/src/lagrangian/intermediate/parcels/derived/basicThermoParcel/submodels/makeBasicThermoParcelPatchInteractionModels.C
+++ b/src/lagrangian/intermediate/parcels/derived/basicThermoParcel/makeBasicThermoParcelSubmodels.C
@@ -25,37 +25,30 @@ License
 \*---------------------------------------------------------------------------*/
 
 #include "basicThermoParcel.H"
-#include "KinematicCloud.H"
 
-#include "LocalInteraction.H"
-#include "Rebound.H"
-#include "StandardWallInteraction.H"
+// Kinematic
+#include "makeParcelDispersionModels.H"
+#include "makeParcelDragModels.H"
+#include "makeParcelInjectionModels.H"
+#include "makeParcelPatchInteractionModels.H"
+#include "makeParcelPostProcessingModels.H"
+
+// Thermodynamic
+#include "makeParcelHeatTransferModels.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 namespace Foam
 {
-    makePatchInteractionModel(KinematicCloud<basicThermoParcel>);
-
-    // Add instances of patch interaction model to the table
-    makePatchInteractionModelType
-    (
-        LocalInteraction,
-        KinematicCloud,
-        basicThermoParcel
-    );
-    makePatchInteractionModelType
-    (
-        Rebound,
-        KinematicCloud,
-        basicThermoParcel
-    );
-    makePatchInteractionModelType
-    (
-        StandardWallInteraction,
-        KinematicCloud,
-        basicThermoParcel
-    );
+    // Kinematic sub-models
+    makeParcelDispersionModels(basicThermoParcel);
+    makeParcelDragModels(basicThermoParcel);
+    makeParcelInjectionModels(basicThermoParcel);
+    makeParcelPatchInteractionModels(basicThermoParcel);
+    makeParcelPostProcessingModels(basicThermoParcel);
+
+    // Thermo sub-models
+    makeParcelHeatTransferModels(basicThermoParcel);
 };
 
 
diff --git a/src/lagrangian/intermediate/parcels/derived/basicThermoParcel/submodels/makeBasicThermoParcelDispersionModels.C b/src/lagrangian/intermediate/parcels/derived/basicThermoParcel/submodels/makeBasicThermoParcelDispersionModels.C
deleted file mode 100644
index 86bc63c72a7..00000000000
--- a/src/lagrangian/intermediate/parcels/derived/basicThermoParcel/submodels/makeBasicThermoParcelDispersionModels.C
+++ /dev/null
@@ -1,67 +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 "basicThermoParcel.H"
-#include "KinematicCloud.H"
-#include "NoDispersion.H"
-#include "GradientDispersionRAS.H"
-#include "StochasticDispersionRAS.H"
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-namespace Foam
-{
-    makeDispersionModel(KinematicCloud<basicThermoParcel>);
-
-    defineNamedTemplateTypeNameAndDebug
-    (
-        DispersionRASModel<KinematicCloud<basicThermoParcel> >,
-        0
-    );
-
-    // Add instances of dispersion model to the table
-    makeDispersionModelType
-    (
-        NoDispersion,
-        KinematicCloud,
-        basicThermoParcel
-    );
-    makeDispersionModelType
-    (
-        GradientDispersionRAS,
-        KinematicCloud,
-        basicThermoParcel
-    );
-    makeDispersionModelType
-    (
-        StochasticDispersionRAS,
-        KinematicCloud,
-        basicThermoParcel
-    );
-};
-
-
-// ************************************************************************* //
diff --git a/src/lagrangian/intermediate/parcels/derived/basicThermoParcel/submodels/makeBasicThermoParcelDragModels.C b/src/lagrangian/intermediate/parcels/derived/basicThermoParcel/submodels/makeBasicThermoParcelDragModels.C
deleted file mode 100644
index aaeacca70c8..00000000000
--- a/src/lagrangian/intermediate/parcels/derived/basicThermoParcel/submodels/makeBasicThermoParcelDragModels.C
+++ /dev/null
@@ -1,44 +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 "basicThermoParcel.H"
-#include "KinematicCloud.H"
-#include "NoDrag.H"
-#include "SphereDrag.H"
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-namespace Foam
-{
-    makeDragModel(KinematicCloud<basicThermoParcel>);
-
-    // Add instances of drag model to the table
-    makeDragModelType(NoDrag, KinematicCloud, basicThermoParcel);
-    makeDragModelType(SphereDrag, KinematicCloud, basicThermoParcel);
-};
-
-
-// ************************************************************************* //
diff --git a/src/lagrangian/intermediate/parcels/derived/basicThermoParcel/submodels/makeBasicThermoParcelHeatTransferModels.C b/src/lagrangian/intermediate/parcels/derived/basicThermoParcel/submodels/makeBasicThermoParcelHeatTransferModels.C
deleted file mode 100644
index afb3ae0833b..00000000000
--- a/src/lagrangian/intermediate/parcels/derived/basicThermoParcel/submodels/makeBasicThermoParcelHeatTransferModels.C
+++ /dev/null
@@ -1,44 +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 "basicThermoParcel.H"
-#include "ThermoCloud.H"
-#include "NoHeatTransfer.H"
-#include "RanzMarshall.H"
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-namespace Foam
-{
-    makeHeatTransferModel(ThermoCloud<basicThermoParcel>);
-
-    // Add instances of heat transfer model to the table
-    makeHeatTransferModelType(NoHeatTransfer, ThermoCloud, basicThermoParcel);
-    makeHeatTransferModelType(RanzMarshall, ThermoCloud, basicThermoParcel);
-};
-
-
-// ************************************************************************* //
diff --git a/src/lagrangian/intermediate/parcels/derived/basicThermoParcel/submodels/makeBasicThermoParcelInjectionModels.C b/src/lagrangian/intermediate/parcels/derived/basicThermoParcel/submodels/makeBasicThermoParcelInjectionModels.C
deleted file mode 100644
index 2635b239377..00000000000
--- a/src/lagrangian/intermediate/parcels/derived/basicThermoParcel/submodels/makeBasicThermoParcelInjectionModels.C
+++ /dev/null
@@ -1,78 +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 "basicThermoParcel.H"
-#include "ThermoCloud.H"
-
-#include "ConeInjection.H"
-#include "FieldActivatedInjection.H"
-#include "ManualInjection.H"
-#include "NoInjection.H"
-#include "ThermoLookupTableInjection.H"
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-namespace Foam
-{
-    makeInjectionModel(KinematicCloud<basicThermoParcel>);
-
-    // Add instances of injection model to the table
-
-    makeInjectionModelType
-    (
-        ConeInjection,
-        KinematicCloud,
-        basicThermoParcel
-    );
-    makeInjectionModelType
-    (
-        FieldActivatedInjection,
-        KinematicCloud,
-        basicThermoParcel
-    );
-    makeInjectionModelType
-    (
-        ManualInjection,
-        KinematicCloud,
-        basicThermoParcel
-    );
-    makeInjectionModelType
-    (
-        NoInjection,
-        KinematicCloud,
-        basicThermoParcel
-    );
-    makeInjectionModelType
-    (
-        ThermoLookupTableInjection,
-        KinematicCloud,
-        basicThermoParcel
-    );
-
-};
-
-
-// ************************************************************************* //
diff --git a/src/lagrangian/intermediate/parcels/derived/basicThermoParcel/submodels/makeBasicThermoParcelPostProcessingModels.C b/src/lagrangian/intermediate/parcels/derived/basicThermoParcel/submodels/makeBasicThermoParcelPostProcessingModels.C
deleted file mode 100644
index 65554340395..00000000000
--- a/src/lagrangian/intermediate/parcels/derived/basicThermoParcel/submodels/makeBasicThermoParcelPostProcessingModels.C
+++ /dev/null
@@ -1,54 +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 "basicThermoParcel.H"
-#include "KinematicCloud.H"
-#include "NoPostProcessing.H"
-#include "PatchPostProcessing.H"
-
-// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-
-namespace Foam
-{
-    makePostProcessingModel(KinematicCloud<basicThermoParcel>);
-
-    // Add instances of post-processing model to the table
-    makePostProcessingModelType
-    (
-        NoPostProcessing,
-        KinematicCloud,
-        basicThermoParcel
-    );
-    makePostProcessingModelType
-    (
-        PatchPostProcessing,
-        KinematicCloud,
-        basicThermoParcel
-    );
-};
-
-
-// ************************************************************************* //
diff --git a/src/lagrangian/intermediate/parcels/include/createReactingMultiphaseParcelTypes.H b/src/lagrangian/intermediate/parcels/include/createReactingMultiphaseParcelTypes.H
index 80e065083d9..97c6a1bb769 100644
--- a/src/lagrangian/intermediate/parcels/include/createReactingMultiphaseParcelTypes.H
+++ b/src/lagrangian/intermediate/parcels/include/createReactingMultiphaseParcelTypes.H
@@ -39,7 +39,7 @@ License
         ParcelType,                                                           \
         specieConstProperties                                                 \
     );                                                                        \
-    createReactingParcelThermoType                                            \
+    createReactingMultiphaseParcelThermoType                                  \
     (                                                                         \
         ParcelType,                                                           \
         specieReactingProperties                                              \
diff --git a/src/lagrangian/intermediate/parcels/include/makeParcelDispersionModels.H b/src/lagrangian/intermediate/parcels/include/makeParcelDispersionModels.H
new file mode 100644
index 00000000000..632ce5bff38
--- /dev/null
+++ b/src/lagrangian/intermediate/parcels/include/makeParcelDispersionModels.H
@@ -0,0 +1,74 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  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
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef makeParcelDispersionModels_h
+#define makeParcelDispersionModels_h
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#include "KinematicCloud.H"
+
+#include "NoDispersion.H"
+#include "GradientDispersionRAS.H"
+#include "StochasticDispersionRAS.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#define makeParcelDispersionModels(ParcelType)                                \
+                                                                              \
+    makeDispersionModel(KinematicCloud<ParcelType>);                          \
+                                                                              \
+    defineNamedTemplateTypeNameAndDebug                                       \
+    (                                                                         \
+        DispersionRASModel<KinematicCloud<ParcelType> >,                      \
+        0                                                                     \
+    );                                                                        \
+                                                                              \
+    makeDispersionModelType                                                   \
+    (                                                                         \
+        NoDispersion,                                                         \
+        KinematicCloud,                                                       \
+        ParcelType                                                            \
+    );                                                                        \
+    makeDispersionModelType                                                   \
+    (                                                                         \
+        GradientDispersionRAS,                                                \
+        KinematicCloud,                                                       \
+        ParcelType                                                            \
+    );                                                                        \
+    makeDispersionModelType                                                   \
+    (                                                                         \
+        StochasticDispersionRAS,                                              \
+        KinematicCloud,                                                       \
+        ParcelType                                                            \
+    );
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/submodels/makeBasicKinematicParcelDragModels.C b/src/lagrangian/intermediate/parcels/include/makeParcelDragModels.H
similarity index 67%
rename from src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/submodels/makeBasicKinematicParcelDragModels.C
rename to src/lagrangian/intermediate/parcels/include/makeParcelDragModels.H
index 6b10e4efb03..323a06f921e 100644
--- a/src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/submodels/makeBasicKinematicParcelDragModels.C
+++ b/src/lagrangian/intermediate/parcels/include/makeParcelDragModels.H
@@ -24,7 +24,11 @@ License
 
 \*---------------------------------------------------------------------------*/
 
-#include "basicKinematicParcel.H"
+#ifndef makeParcelDragModels_H
+#define makeParcelDragModels_H
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
 #include "KinematicCloud.H"
 
 #include "NoDrag.H"
@@ -32,14 +36,16 @@ License
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-namespace Foam
-{
-    makeDragModel(KinematicCloud<basicKinematicParcel>);
+#define makeParcelDragModels(ParcelType)                                     \
+                                                                             \
+    makeDragModel(KinematicCloud<ParcelType>);                               \
+                                                                             \
+    makeDragModelType(NoDrag, KinematicCloud, ParcelType);                   \
+    makeDragModelType(SphereDrag, KinematicCloud, ParcelType);
 
-    // Add instances of drag model to the table
-    makeDragModelType(NoDrag, KinematicCloud, basicKinematicParcel);
-    makeDragModelType(SphereDrag, KinematicCloud, basicKinematicParcel);
-};
 
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
 
 // ************************************************************************* //
diff --git a/src/lagrangian/intermediate/parcels/include/makeParcelHeatTransferModels.H b/src/lagrangian/intermediate/parcels/include/makeParcelHeatTransferModels.H
new file mode 100644
index 00000000000..dfe34098657
--- /dev/null
+++ b/src/lagrangian/intermediate/parcels/include/makeParcelHeatTransferModels.H
@@ -0,0 +1,61 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  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
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef makeParcelHeatTransferModels_H
+#define makeParcelHeatTransferModels_H
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#include "ThermoCloud.H"
+
+#include "NoHeatTransfer.H"
+#include "RanzMarshall.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#define makeParcelHeatTransferModels(ParcelType)                              \
+                                                                              \
+    makeHeatTransferModel(ThermoCloud<ParcelType>);                           \
+                                                                              \
+    makeHeatTransferModelType                                                 \
+    (                                                                         \
+        NoHeatTransfer,                                                       \
+        ThermoCloud,                                                          \
+        ParcelType                                                            \
+    );                                                                        \
+    makeHeatTransferModelType                                                 \
+    (                                                                         \
+        RanzMarshall,                                                         \
+        ThermoCloud,                                                          \
+        ParcelType                                                            \
+    );                                                                        \
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/src/lagrangian/intermediate/parcels/include/makeParcelInjectionModels.H b/src/lagrangian/intermediate/parcels/include/makeParcelInjectionModels.H
new file mode 100644
index 00000000000..3bd86d1f215
--- /dev/null
+++ b/src/lagrangian/intermediate/parcels/include/makeParcelInjectionModels.H
@@ -0,0 +1,82 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  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
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef makeParcelInjectionModels_H
+#define makeParcelInjectionModels_H
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#include "KinematicCloud.H"
+
+#include "ConeInjection.H"
+#include "FieldActivatedInjection.H"
+#include "KinematicLookupTableInjection.H"
+#include "ManualInjection.H"
+#include "NoInjection.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#define makeParcelInjectionModels(ParcelType)                                  \
+                                                                              \
+    makeInjectionModel(KinematicCloud<ParcelType>);                           \
+                                                                              \
+    makeInjectionModelType                                                    \
+    (                                                                         \
+        ConeInjection,                                                        \
+        KinematicCloud,                                                       \
+        ParcelType                                                            \
+    );                                                                        \
+    makeInjectionModelType                                                    \
+    (                                                                         \
+        FieldActivatedInjection,                                              \
+        KinematicCloud,                                                       \
+        ParcelType                                                            \
+    );                                                                        \
+    makeInjectionModelType                                                    \
+    (                                                                         \
+        KinematicLookupTableInjection,                                        \
+        KinematicCloud,                                                       \
+        ParcelType                                                            \
+    );                                                                        \
+    makeInjectionModelType                                                    \
+    (                                                                         \
+        ManualInjection,                                                      \
+        KinematicCloud,                                                       \
+        ParcelType                                                            \
+    );                                                                        \
+    makeInjectionModelType                                                    \
+    (                                                                         \
+        NoInjection,                                                          \
+        KinematicCloud,                                                       \
+        ParcelType                                                            \
+    );
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/src/lagrangian/intermediate/parcels/include/makeParcelPatchInteractionModels.H b/src/lagrangian/intermediate/parcels/include/makeParcelPatchInteractionModels.H
new file mode 100644
index 00000000000..778ef50d503
--- /dev/null
+++ b/src/lagrangian/intermediate/parcels/include/makeParcelPatchInteractionModels.H
@@ -0,0 +1,68 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  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
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef makeParcelPatchInteractionModels_H
+#define makeParcelPatchInteractionModels_H
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#include "KinematicCloud.H"
+
+#include "LocalInteraction.H"
+#include "Rebound.H"
+#include "StandardWallInteraction.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#define makeParcelPatchInteractionModels(ParcelType)                          \
+                                                                              \
+    makePatchInteractionModel(KinematicCloud<ParcelType>);                    \
+                                                                              \
+    makePatchInteractionModelType                                             \
+    (                                                                         \
+        LocalInteraction,                                                     \
+        KinematicCloud,                                                       \
+        ParcelType                                                            \
+    );                                                                        \
+    makePatchInteractionModelType                                             \
+    (                                                                         \
+        Rebound,                                                              \
+        KinematicCloud,                                                       \
+        ParcelType                                                            \
+    );                                                                        \
+    makePatchInteractionModelType                                             \
+    (                                                                         \
+        StandardWallInteraction,                                              \
+        KinematicCloud,                                                       \
+        ParcelType                                                            \
+    );
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/submodels/makeBasicKinematicParcelPostProcessingModels.C b/src/lagrangian/intermediate/parcels/include/makeParcelPostProcessingModels.H
similarity index 50%
rename from src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/submodels/makeBasicKinematicParcelPostProcessingModels.C
rename to src/lagrangian/intermediate/parcels/include/makeParcelPostProcessingModels.H
index 9d48510f13a..e54a0a790af 100644
--- a/src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/submodels/makeBasicKinematicParcelPostProcessingModels.C
+++ b/src/lagrangian/intermediate/parcels/include/makeParcelPostProcessingModels.H
@@ -24,7 +24,11 @@ License
 
 \*---------------------------------------------------------------------------*/
 
-#include "basicKinematicParcel.H"
+#ifndef makeParcelPostProcessingModels_H
+#define makeParcelPostProcessingModels_H
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
 #include "KinematicCloud.H"
 
 #include "NoPostProcessing.H"
@@ -32,24 +36,26 @@ License
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-namespace Foam
-{
-    makePostProcessingModel(KinematicCloud<basicKinematicParcel>);
-
-    // Add instances of post-processing model to the table
-    makePostProcessingModelType
-    (
-        NoPostProcessing,
-        KinematicCloud,
-        basicKinematicParcel
+#define makeParcelPostProcessingModels(ParcelType)                            \
+                                                                              \
+    makePostProcessingModel(KinematicCloud<ParcelType>);                      \
+                                                                              \
+    makePostProcessingModelType                                               \
+    (                                                                         \
+        NoPostProcessing,                                                     \
+        KinematicCloud,                                                       \
+        ParcelType                                                            \
+    );                                                                        \
+    makePostProcessingModelType                                               \
+    (                                                                         \
+        PatchPostProcessing,                                                  \
+        KinematicCloud,                                                       \
+        ParcelType                                                            \
     );
-    makePostProcessingModelType
-    (
-        PatchPostProcessing,
-        KinematicCloud,
-        basicKinematicParcel
-    );
-};
 
 
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
 // ************************************************************************* //
diff --git a/src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/submodels/makeReactingMultiphaseParcelCompositionModels.H b/src/lagrangian/intermediate/parcels/include/makeReactingMultiphaseParcelCompositionModels.H
similarity index 92%
rename from src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/submodels/makeReactingMultiphaseParcelCompositionModels.H
rename to src/lagrangian/intermediate/parcels/include/makeReactingMultiphaseParcelCompositionModels.H
index 9f7a15cd43a..23c94d90588 100644
--- a/src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/submodels/makeReactingMultiphaseParcelCompositionModels.H
+++ b/src/lagrangian/intermediate/parcels/include/makeReactingMultiphaseParcelCompositionModels.H
@@ -36,21 +36,21 @@ License
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-#define createReactingMultiphaseCompositionModelType(ParcelType)              \
+#define makeReactingMultiphaseCompositionModels(ParcelType)                   \
                                                                               \
-    createReactingMultiphaseCompositionModelThermoType                        \
+    makeReactingMultiphaseCompositionModelThermoType                          \
     (                                                                         \
         ParcelType,                                                           \
         specieConstProperties                                                 \
     );                                                                        \
-    createReactingMultiphaseCompositionModelThermoType                        \
+    makeReactingMultiphaseCompositionModelThermoType                          \
     (                                                                         \
         ParcelType,                                                           \
         specieReactingProperties                                              \
     );
 
 
-#define createReactingMultiphaseCompositionModelThermoType(ParcelType, ThermoType)\
+#define makeReactingMultiphaseCompositionModelThermoType(ParcelType, ThermoType)\
                                                                               \
     makeCompositionModel(ReactingCloud<ParcelType<ThermoType> >);             \
                                                                               \
diff --git a/src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/submodels/makeReactingMultiphaseParcelDevolatilisationModels.H b/src/lagrangian/intermediate/parcels/include/makeReactingMultiphaseParcelDevolatilisationModels.H
similarity index 93%
rename from src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/submodels/makeReactingMultiphaseParcelDevolatilisationModels.H
rename to src/lagrangian/intermediate/parcels/include/makeReactingMultiphaseParcelDevolatilisationModels.H
index 5a3a32e16b2..357d1205065 100644
--- a/src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/submodels/makeReactingMultiphaseParcelDevolatilisationModels.H
+++ b/src/lagrangian/intermediate/parcels/include/makeReactingMultiphaseParcelDevolatilisationModels.H
@@ -38,21 +38,21 @@ License
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-#define createReactingMultiphaseDevolatilisationModelType(ParcelType)          \
+#define makeReactingMultiphaseDevolatilisationModels(ParcelType)              \
                                                                               \
-    createReactingMultiphaseDevolatilisationModelThermoType                    \
+    makeReactingMultiphaseDevolatilisationModelThermoType                     \
     (                                                                         \
         ParcelType,                                                           \
         specieConstProperties                                                 \
     );                                                                        \
-    createReactingMultiphaseDevolatilisationModelThermoType                    \
+    makeReactingMultiphaseDevolatilisationModelThermoType                     \
     (                                                                         \
         ParcelType,                                                           \
         specieReactingProperties                                              \
     );
 
 
-#define createReactingMultiphaseDevolatilisationModelThermoType(ParcelType, ThermoType)\
+#define makeReactingMultiphaseDevolatilisationModelThermoType(ParcelType, ThermoType)\
                                                                               \
     makeDevolatilisationModel                                                 \
     (                                                                         \
diff --git a/src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/submodels/makeReactingMultiphaseParcelInjectionModels.H b/src/lagrangian/intermediate/parcels/include/makeReactingMultiphaseParcelInjectionModels.H
similarity index 94%
rename from src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/submodels/makeReactingMultiphaseParcelInjectionModels.H
rename to src/lagrangian/intermediate/parcels/include/makeReactingMultiphaseParcelInjectionModels.H
index 2ee34397fac..2c705ec989c 100644
--- a/src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/submodels/makeReactingMultiphaseParcelInjectionModels.H
+++ b/src/lagrangian/intermediate/parcels/include/makeReactingMultiphaseParcelInjectionModels.H
@@ -39,22 +39,22 @@ License
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-#define createReactingMultiphaseInjectionModelType(ParcelType)                \
+#define makeReactingMultiphaseInjectionModels(ParcelType)                     \
                                                                               \
-    createReactingMultiphaseInjectionModelThermoType                          \
+    makeReactingMultiphaseInjectionModelThermoType                            \
     (                                                                         \
         ParcelType,                                                           \
         specieConstProperties                                                 \
     );                                                                        \
                                                                               \
-    createReactingMultiphaseInjectionModelThermoType                          \
+    makeReactingMultiphaseInjectionModelThermoType                            \
     (                                                                         \
         ParcelType,                                                           \
         specieReactingProperties                                              \
     );
 
 
-#define createReactingMultiphaseInjectionModelThermoType(ParcelType, ThermoType)\
+#define makeReactingMultiphaseInjectionModelThermoType(ParcelType, ThermoType)\
                                                                               \
     makeInjectionModel(KinematicCloud<ParcelType<ThermoType> >);              \
                                                                               \
diff --git a/src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/submodels/makeReactingMultiphaseParcelSurfaceReactionModels.H b/src/lagrangian/intermediate/parcels/include/makeReactingMultiphaseParcelSurfaceReactionModels.H
similarity index 92%
rename from src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/submodels/makeReactingMultiphaseParcelSurfaceReactionModels.H
rename to src/lagrangian/intermediate/parcels/include/makeReactingMultiphaseParcelSurfaceReactionModels.H
index bf04b132d6e..576a44e70db 100644
--- a/src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/submodels/makeReactingMultiphaseParcelSurfaceReactionModels.H
+++ b/src/lagrangian/intermediate/parcels/include/makeReactingMultiphaseParcelSurfaceReactionModels.H
@@ -36,21 +36,21 @@ License
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-#define createReactingMultiphaseSurfaceReactionModelType(ParcelType)          \
+#define makeReactingMultiphaseSurfaceReactionModels(ParcelType)               \
                                                                               \
-    createReactingMultiphaseSurfaceReactionModelThermoType                    \
+    makeReactingMultiphaseSurfaceReactionModelThermoType                      \
     (                                                                         \
         ParcelType,                                                           \
         specieConstProperties                                                 \
     );                                                                        \
-    createReactingMultiphaseSurfaceReactionModelThermoType                    \
+    makeReactingMultiphaseSurfaceReactionModelThermoType                      \
     (                                                                         \
         ParcelType,                                                           \
         specieReactingProperties                                              \
     );
 
 
-#define createReactingMultiphaseSurfaceReactionModelThermoType(ParcelType, ThermoType)\
+#define makeReactingMultiphaseSurfaceReactionModelThermoType(ParcelType, ThermoType)\
                                                                               \
     makeSurfaceReactionModel                                                  \
     (                                                                         \
diff --git a/src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeReactingParcelCompositionModels.H b/src/lagrangian/intermediate/parcels/include/makeReactingParcelCompositionModels.H
similarity index 92%
rename from src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeReactingParcelCompositionModels.H
rename to src/lagrangian/intermediate/parcels/include/makeReactingParcelCompositionModels.H
index 2f6abe0926a..a8c187ea97f 100644
--- a/src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeReactingParcelCompositionModels.H
+++ b/src/lagrangian/intermediate/parcels/include/makeReactingParcelCompositionModels.H
@@ -36,21 +36,21 @@ License
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-#define createReactingCompositionModelType(ParcelType)                        \
+#define makeReactingCompositionModels(ParcelType)                             \
                                                                               \
-    createReactingCompositionModelThermoType                                  \
+    makeReactingCompositionModelThermoType                                    \
     (                                                                         \
         ParcelType,                                                           \
         specieConstProperties                                                 \
     );                                                                        \
-    createReactingCompositionModelThermoType                                  \
+    makeReactingCompositionModelThermoType                                    \
     (                                                                         \
         ParcelType,                                                           \
         specieReactingProperties                                              \
     );
 
 
-#define createReactingCompositionModelThermoType(ParcelType, ThermoType)      \
+#define makeReactingCompositionModelThermoType(ParcelType, ThermoType)        \
                                                                               \
     makeCompositionModel(ReactingCloud<ParcelType<ThermoType> >);             \
                                                                               \
diff --git a/src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeReactingParcelDispersionModels.H b/src/lagrangian/intermediate/parcels/include/makeReactingParcelDispersionModels.H
similarity index 94%
rename from src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeReactingParcelDispersionModels.H
rename to src/lagrangian/intermediate/parcels/include/makeReactingParcelDispersionModels.H
index 23827d50d63..eda4122409f 100644
--- a/src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeReactingParcelDispersionModels.H
+++ b/src/lagrangian/intermediate/parcels/include/makeReactingParcelDispersionModels.H
@@ -38,22 +38,22 @@ License
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-#define createReactingDispersionModelType(ParcelType)                         \
+#define makeReactingDispersionModels(ParcelType)                              \
                                                                               \
-    createReactingDispersionModelThermoType                                   \
+    makeReactingDispersionModelThermoType                                     \
     (                                                                         \
         ParcelType,                                                           \
         specieConstProperties                                                 \
     );                                                                        \
                                                                               \
-    createReactingDispersionModelThermoType                                   \
+    makeReactingDispersionModelThermoType                                     \
     (                                                                         \
         ParcelType,                                                           \
         specieReactingProperties                                              \
     );
 
 
-#define createReactingDispersionModelThermoType(ParcelType, ThermoType)       \
+#define makeReactingDispersionModelThermoType(ParcelType, ThermoType)         \
                                                                               \
     makeDispersionModel(KinematicCloud<ParcelType<ThermoType> >);             \
                                                                               \
diff --git a/src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeReactingParcelDragModels.H b/src/lagrangian/intermediate/parcels/include/makeReactingParcelDragModels.H
similarity index 93%
rename from src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeReactingParcelDragModels.H
rename to src/lagrangian/intermediate/parcels/include/makeReactingParcelDragModels.H
index d919375f8ce..9ebd900a932 100644
--- a/src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeReactingParcelDragModels.H
+++ b/src/lagrangian/intermediate/parcels/include/makeReactingParcelDragModels.H
@@ -37,21 +37,21 @@ License
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-#define createReactingDragModelType(ParcelType)                               \
+#define makeReactingDragModels(ParcelType)                                    \
                                                                               \
-    createReactingDragModelThermoType                                         \
+    makeReactingDragModelThermoType                                           \
     (                                                                         \
         ParcelType,                                                           \
         specieConstProperties                                                 \
     );                                                                        \
-    createReactingDragModelThermoType                                         \
+    makeReactingDragModelThermoType                                           \
     (                                                                         \
         ParcelType,                                                           \
         specieReactingProperties                                              \
     );
 
 
-#define createReactingDragModelThermoType(ParcelType, ThermoType)             \
+#define makeReactingDragModelThermoType(ParcelType, ThermoType)               \
                                                                               \
     makeDragModel(KinematicCloud<ParcelType<ThermoType> >);                   \
                                                                               \
diff --git a/src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeReactingParcelHeatTransferModels.H b/src/lagrangian/intermediate/parcels/include/makeReactingParcelHeatTransferModels.H
similarity index 93%
rename from src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeReactingParcelHeatTransferModels.H
rename to src/lagrangian/intermediate/parcels/include/makeReactingParcelHeatTransferModels.H
index 021efc11f45..04938ea27ac 100644
--- a/src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeReactingParcelHeatTransferModels.H
+++ b/src/lagrangian/intermediate/parcels/include/makeReactingParcelHeatTransferModels.H
@@ -37,21 +37,21 @@ License
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-#define createReactingHeatTransferModelType(ParcelType)                       \
+#define makeReactingHeatTransferModels(ParcelType)                            \
                                                                               \
-    createReactingHeatTransferModelThermoType                                 \
+    makeReactingHeatTransferModelThermoType                                   \
     (                                                                         \
         ParcelType,                                                           \
         specieConstProperties                                                 \
     );                                                                        \
-    createReactingHeatTransferModelThermoType                                 \
+    makeReactingHeatTransferModelThermoType                                   \
     (                                                                         \
         ParcelType,                                                           \
         specieReactingProperties                                              \
     );
 
 
-#define createReactingHeatTransferModelThermoType(ParcelType, ThermoType)     \
+#define makeReactingHeatTransferModelThermoType(ParcelType, ThermoType)       \
                                                                               \
     makeHeatTransferModel(ThermoCloud<ParcelType<ThermoType> >);              \
                                                                               \
diff --git a/src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeReactingParcelInjectionModels.H b/src/lagrangian/intermediate/parcels/include/makeReactingParcelInjectionModels.H
similarity index 95%
rename from src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeReactingParcelInjectionModels.H
rename to src/lagrangian/intermediate/parcels/include/makeReactingParcelInjectionModels.H
index 4873eac32cb..71ab8fbba56 100644
--- a/src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeReactingParcelInjectionModels.H
+++ b/src/lagrangian/intermediate/parcels/include/makeReactingParcelInjectionModels.H
@@ -40,22 +40,22 @@ License
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-#define createReactingInjectionModelType(ParcelType)                          \
+#define makeReactingInjectionModels(ParcelType)                               \
                                                                               \
-    createReactingInjectionModelThermoType                                    \
+    makeReactingInjectionModelThermoType                                      \
     (                                                                         \
         ParcelType,                                                           \
         specieConstProperties                                                 \
     );                                                                        \
                                                                               \
-    createReactingInjectionModelThermoType                                    \
+    makeReactingInjectionModelThermoType                                      \
     (                                                                         \
         ParcelType,                                                           \
         specieReactingProperties                                              \
     );
 
 
-#define createReactingInjectionModelThermoType(ParcelType, ThermoType)        \
+#define makeReactingInjectionModelThermoType(ParcelType, ThermoType)          \
                                                                               \
     makeInjectionModel(KinematicCloud<ParcelType<ThermoType> >);              \
                                                                               \
diff --git a/src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeReactingParcelPatchInteractionModels.H b/src/lagrangian/intermediate/parcels/include/makeReactingParcelPatchInteractionModels.H
similarity index 94%
rename from src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeReactingParcelPatchInteractionModels.H
rename to src/lagrangian/intermediate/parcels/include/makeReactingParcelPatchInteractionModels.H
index 74f4470045b..5def8fc43b8 100644
--- a/src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeReactingParcelPatchInteractionModels.H
+++ b/src/lagrangian/intermediate/parcels/include/makeReactingParcelPatchInteractionModels.H
@@ -38,22 +38,22 @@ License
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-#define createReactingPatchInteractionModelType(ParcelType)                   \
+#define makeReactingPatchInteractionModels(ParcelType)                        \
                                                                               \
-    createReactingPatchInteractionModelThermoType                             \
+    makeReactingPatchInteractionModelThermoType                               \
     (                                                                         \
         ParcelType,                                                           \
         specieConstProperties                                                 \
     );                                                                        \
                                                                               \
-    createReactingPatchInteractionModelThermoType                             \
+    makeReactingPatchInteractionModelThermoType                               \
     (                                                                         \
         ParcelType,                                                           \
         specieReactingProperties                                              \
     );
 
 
-#define createReactingPatchInteractionModelThermoType(ParcelType, ThermoType) \
+#define makeReactingPatchInteractionModelThermoType(ParcelType, ThermoType)   \
                                                                               \
     makePatchInteractionModel(KinematicCloud<ParcelType<ThermoType> >);       \
                                                                               \
diff --git a/src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeReactingParcelPhaseChangeModels.H b/src/lagrangian/intermediate/parcels/include/makeReactingParcelPhaseChangeModels.H
similarity index 93%
rename from src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeReactingParcelPhaseChangeModels.H
rename to src/lagrangian/intermediate/parcels/include/makeReactingParcelPhaseChangeModels.H
index 19e4810b743..a9d6805572c 100644
--- a/src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeReactingParcelPhaseChangeModels.H
+++ b/src/lagrangian/intermediate/parcels/include/makeReactingParcelPhaseChangeModels.H
@@ -37,22 +37,22 @@ License
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-#define createReactingPhaseChangeModelType(ParcelType)                        \
+#define makeReactingPhaseChangeModels(ParcelType)                             \
                                                                               \
-    createReactingPhaseChangeModelThermoType                                  \
+    makeReactingPhaseChangeModelThermoType                                    \
     (                                                                         \
         ParcelType,                                                           \
         specieConstProperties                                                 \
     );                                                                        \
                                                                               \
-    createReactingPhaseChangeModelThermoType                                  \
+    makeReactingPhaseChangeModelThermoType                                    \
     (                                                                         \
         ParcelType,                                                           \
         specieReactingProperties                                              \
     );
 
 
-#define createReactingPhaseChangeModelThermoType(ParcelType, ThermoType)      \
+#define makeReactingPhaseChangeModelThermoType(ParcelType, ThermoType)        \
                                                                               \
     makePhaseChangeModel(ReactingCloud<ParcelType<ThermoType> >);             \
                                                                               \
diff --git a/src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeReactingParcelPostProcessingModels.H b/src/lagrangian/intermediate/parcels/include/makeReactingParcelPostProcessingModels.H
similarity index 93%
rename from src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeReactingParcelPostProcessingModels.H
rename to src/lagrangian/intermediate/parcels/include/makeReactingParcelPostProcessingModels.H
index 588e643a5b8..8c6a80e3f53 100644
--- a/src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeReactingParcelPostProcessingModels.H
+++ b/src/lagrangian/intermediate/parcels/include/makeReactingParcelPostProcessingModels.H
@@ -37,22 +37,22 @@ License
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
-#define createReactingPostProcessingModelType(ParcelType)                     \
+#define makeReactingPostProcessingModels(ParcelType)                          \
                                                                               \
-    createReactingPostProcessingModelThermoType                               \
+    makeReactingPostProcessingModelThermoType                                 \
     (                                                                         \
         ParcelType,                                                           \
         specieConstProperties                                                 \
     );                                                                        \
                                                                               \
-    createReactingPostProcessingModelThermoType                               \
+    makeReactingPostProcessingModelThermoType                                 \
     (                                                                         \
         ParcelType,                                                           \
         specieReactingProperties                                              \
     );
 
 
-#define createReactingPostProcessingModelThermoType(ParcelType, ThermoType)   \
+#define makeReactingPostProcessingModelThermoType(ParcelType, ThermoType)     \
                                                                               \
     makePostProcessingModel(KinematicCloud<ParcelType<ThermoType> >);         \
                                                                               \
-- 
GitLab