From 8c8e940d3817a9c4433df5ac8e8bb8a3297355d4 Mon Sep 17 00:00:00 2001
From: andy <andy>
Date: Thu, 1 May 2008 19:19:54 +0100
Subject: [PATCH] updated lagrangian intermediate library

---
 src/lagrangian/intermediate/Make/files        | 48 +++++++-------
 .../basicKinematicCloud/basicKinematicCloud.C | 16 ++---
 .../basicKinematicCloud/basicKinematicCloud.H |  8 +--
 .../basicReactingCloud/basicReactingCloud.C   | 16 ++---
 .../basicReactingCloud/basicReactingCloud.H   |  8 +--
 .../basicThermoCloud/basicThermoCloud.C       | 16 ++---
 .../basicThermoCloud/basicThermoCloud.H       |  8 +--
 .../KinematicParcel/KinematicParcel.C         | 64 +++++++++++--------
 .../KinematicParcel/KinematicParcel.H         | 64 +++++++++++--------
 .../Templates/ReactingParcel/ReactingParcel.C | 15 +++--
 .../Templates/ReactingParcel/ReactingParcel.H | 61 ++++++++++--------
 .../Templates/ThermoParcel/ThermoParcel.C     | 14 ++--
 .../Templates/ThermoParcel/ThermoParcel.H     | 58 ++++++++++-------
 .../basicKinematicParcel.C}                   | 22 +++----
 .../basicKinematicParcel.H}                   | 35 +++++-----
 .../defineBasicKinematicParcel.C}             | 10 +--
 ...akeBasicKinematicParcelDispersionModels.C} | 12 ++--
 .../makeBasicKinematicParcelDragModels.C}     |  8 +--
 ...eBasicKinematicParcelHeatTransferModels.C} | 11 +++-
 ...makeBasicKinematicParcelInjectionModels.C} | 18 ++++--
 ...sicKinematicParcelWallInteractionModels.C} |  9 ++-
 .../basicReactingParcel.C}                    | 22 +++----
 .../basicReactingParcel.H}                    | 35 +++++-----
 .../defineBasicReactingParcel.C}              | 28 ++++----
 ...akeBasicReactingParcelCompositionModels.C} |  6 +-
 ...makeBasicReactingParcelDispersionModels.C} | 12 ++--
 .../makeBasicReactingParcelDragModels.C}      |  8 +--
 ...keBasicReactingParcelHeatTransferModels.C} | 18 ++++--
 .../makeBasicReactingParcelInjectionModels.C} | 18 ++++--
 ...keBasicReactingParcelMassTransferModels.C} | 10 +--
 ...asicReactingParcelSurfaceReactionModels.C} |  6 +-
 ...asicReactingParcelWallInteractionModels.C} | 14 ++--
 .../basicThermoParcel.C}                      | 22 +++----
 .../basicThermoParcel.H}                      | 32 +++++-----
 .../defineBasicThermoParcel.C}                | 20 +++---
 .../makeBasicThermoParcelDispersionModels.C}  | 12 ++--
 .../makeBasicThermoParcelDragModels.C}        |  8 +--
 ...makeBasicThermoParcelHeatTransferModels.C} |  8 +--
 .../makeBasicThermoParcelInjectionModels.C}   |  8 +--
 ...eBasicThermoParcelWallInteractionModels.C} |  8 +--
 .../HeatTransferModel/HeatTransferModel.H     |  1 -
 41 files changed, 453 insertions(+), 364 deletions(-)
 rename src/lagrangian/intermediate/parcels/derived/{kinematicParcel/kinematicParcel.C => basicKinematicParcel/basicKinematicParcel.C} (77%)
 rename src/lagrangian/intermediate/parcels/derived/{kinematicParcel/kinematicParcel.H => basicKinematicParcel/basicKinematicParcel.H} (76%)
 rename src/lagrangian/intermediate/parcels/derived/{kinematicParcel/defineKinematicParcel.C => basicKinematicParcel/defineBasicKinematicParcel.C} (80%)
 rename src/lagrangian/intermediate/parcels/derived/{kinematicParcel/makeKinematicParcelDispersionModels.C => basicKinematicParcel/makeBasicKinematicParcelDispersionModels.C} (88%)
 rename src/lagrangian/intermediate/parcels/derived/{reactingParcel/makeReactingParcelDragModels.C => basicKinematicParcel/makeBasicKinematicParcelDragModels.C} (86%)
 rename src/lagrangian/intermediate/parcels/derived/{kinematicParcel/makeKinematicParcelHeatTransferModels.C => basicKinematicParcel/makeBasicKinematicParcelHeatTransferModels.C} (86%)
 rename src/lagrangian/intermediate/parcels/derived/{kinematicParcel/makeKinematicParcelInjectionModels.C => basicKinematicParcel/makeBasicKinematicParcelInjectionModels.C} (81%)
 rename src/lagrangian/intermediate/parcels/derived/{reactingParcel/makeReactingParcelWallInteractionModels.C => basicKinematicParcel/makeBasicKinematicParcelWallInteractionModels.C} (89%)
 rename src/lagrangian/intermediate/parcels/derived/{reactingParcel/reactingParcel.C => basicReactingParcel/basicReactingParcel.C} (79%)
 rename src/lagrangian/intermediate/parcels/derived/{reactingParcel/reactingParcel.H => basicReactingParcel/basicReactingParcel.H} (78%)
 rename src/lagrangian/intermediate/parcels/derived/{reactingParcel/defineReactingParcel.C => basicReactingParcel/defineBasicReactingParcel.C} (59%)
 rename src/lagrangian/intermediate/parcels/derived/{reactingParcel/makeReactingParcelCompositionModels.C => basicReactingParcel/makeBasicReactingParcelCompositionModels.C} (92%)
 rename src/lagrangian/intermediate/parcels/derived/{reactingParcel/makeReactingParcelDispersionModels.C => basicReactingParcel/makeBasicReactingParcelDispersionModels.C} (88%)
 rename src/lagrangian/intermediate/parcels/derived/{kinematicParcel/makeKinematicParcelDragModels.C => basicReactingParcel/makeBasicReactingParcelDragModels.C} (86%)
 rename src/lagrangian/intermediate/parcels/derived/{thermoParcel/makeThermoParcelHeatTransferModels.C => basicReactingParcel/makeBasicReactingParcelHeatTransferModels.C} (81%)
 rename src/lagrangian/intermediate/parcels/derived/{reactingParcel/makeReactingParcelInjectionModels.C => basicReactingParcel/makeBasicReactingParcelInjectionModels.C} (81%)
 rename src/lagrangian/intermediate/parcels/derived/{reactingParcel/makeReactingParcelMassTransferModels.C => basicReactingParcel/makeBasicReactingParcelMassTransferModels.C} (91%)
 rename src/lagrangian/intermediate/parcels/derived/{reactingParcel/makeReactingParcelSurfaceReactionModels.C => basicReactingParcel/makeBasicReactingParcelSurfaceReactionModels.C} (92%)
 rename src/lagrangian/intermediate/parcels/derived/{kinematicParcel/makeKinematicParcelWallInteractionModels.C => basicReactingParcel/makeBasicReactingParcelWallInteractionModels.C} (83%)
 rename src/lagrangian/intermediate/parcels/derived/{thermoParcel/thermoParcel.C => basicThermoParcel/basicThermoParcel.C} (79%)
 rename src/lagrangian/intermediate/parcels/derived/{thermoParcel/thermoParcel.H => basicThermoParcel/basicThermoParcel.H} (79%)
 rename src/lagrangian/intermediate/parcels/derived/{thermoParcel/defineThermoParcel.C => basicThermoParcel/defineBasicThermoParcel.C} (66%)
 rename src/lagrangian/intermediate/parcels/derived/{thermoParcel/makeThermoParcelDispersionModels.C => basicThermoParcel/makeBasicThermoParcelDispersionModels.C} (88%)
 rename src/lagrangian/intermediate/parcels/derived/{thermoParcel/makeThermoParcelDragModels.C => basicThermoParcel/makeBasicThermoParcelDragModels.C} (86%)
 rename src/lagrangian/intermediate/parcels/derived/{reactingParcel/makeReactingParcelHeatTransferModels.C => basicThermoParcel/makeBasicThermoParcelHeatTransferModels.C} (85%)
 rename src/lagrangian/intermediate/parcels/derived/{thermoParcel/makeThermoParcelInjectionModels.C => basicThermoParcel/makeBasicThermoParcelInjectionModels.C} (85%)
 rename src/lagrangian/intermediate/parcels/derived/{thermoParcel/makeThermoParcelWallInteractionModels.C => basicThermoParcel/makeBasicThermoParcelWallInteractionModels.C} (91%)

diff --git a/src/lagrangian/intermediate/Make/files b/src/lagrangian/intermediate/Make/files
index a38943c85c2..d29f2c32bfa 100755
--- a/src/lagrangian/intermediate/Make/files
+++ b/src/lagrangian/intermediate/Make/files
@@ -1,7 +1,7 @@
 /* Parcels */
-parcels/derived/kinematicParcel/kinematicParcel.C
-parcels/derived/thermoParcel/thermoParcel.C
-parcels/derived/reactingParcel/reactingParcel.C
+parcels/derived/basicKinematicParcel/basicKinematicParcel.C
+parcels/derived/basicThermoParcel/basicThermoParcel.C
+parcels/derived/basicReactingParcel/basicReactingParcel.C
 
 /* Cloud base classes */
 clouds/baseClasses/kinematicCloud/kinematicCloud.C
@@ -14,31 +14,31 @@ clouds/derived/basicThermoCloud/basicThermoCloud.C
 clouds/derived/basicReactingCloud/basicReactingCloud.C
 
 /* kinematic parcel sub-models */
-parcels/derived/kinematicParcel/defineKinematicParcel.C
-parcels/derived/kinematicParcel/makeKinematicParcelDispersionModels.C
-parcels/derived/kinematicParcel/makeKinematicParcelDragModels.C
-parcels/derived/kinematicParcel/makeKinematicParcelInjectionModels.C
-parcels/derived/kinematicParcel/makeKinematicParcelHeatTransferModels.C
-parcels/derived/kinematicParcel/makeKinematicParcelWallInteractionModels.C
+parcels/derived/basicKinematicParcel/defineBasicKinematicParcel.C
+parcels/derived/basicKinematicParcel/makeBasicKinematicParcelDispersionModels.C
+parcels/derived/basicKinematicParcel/makeBasicKinematicParcelDragModels.C
+parcels/derived/basicKinematicParcel/makeBasicKinematicParcelInjectionModels.C
+parcels/derived/basicKinematicParcel/makeBasicKinematicParcelHeatTransferModels.C
+parcels/derived/basicKinematicParcel/makeBasicKinematicParcelWallInteractionModels.C
 
 /* thermo parcel sub-models */
-parcels/derived/thermoParcel/defineThermoParcel.C
-parcels/derived/thermoParcel/makeThermoParcelDispersionModels.C
-parcels/derived/thermoParcel/makeThermoParcelDragModels.C
-parcels/derived/thermoParcel/makeThermoParcelInjectionModels.C
-parcels/derived/thermoParcel/makeThermoParcelHeatTransferModels.C
-parcels/derived/thermoParcel/makeThermoParcelWallInteractionModels.C
+parcels/derived/basicThermoParcel/defineBasicThermoParcel.C
+parcels/derived/basicThermoParcel/makeBasicThermoParcelDispersionModels.C
+parcels/derived/basicThermoParcel/makeBasicThermoParcelDragModels.C
+parcels/derived/basicThermoParcel/makeBasicThermoParcelInjectionModels.C
+parcels/derived/basicThermoParcel/makeBasicThermoParcelHeatTransferModels.C
+parcels/derived/basicThermoParcel/makeBasicThermoParcelWallInteractionModels.C
 
 /* reacting parcel sub-models */
-parcels/derived/reactingParcel/defineReactingParcel.C
-parcels/derived/reactingParcel/makeReactingParcelCompositionModels.C
-parcels/derived/reactingParcel/makeReactingParcelDragModels.C
-parcels/derived/reactingParcel/makeReactingParcelDispersionModels.C
-parcels/derived/reactingParcel/makeReactingParcelInjectionModels.C
-parcels/derived/reactingParcel/makeReactingParcelHeatTransferModels.C
-parcels/derived/reactingParcel/makeReactingParcelMassTransferModels.C
-parcels/derived/reactingParcel/makeReactingParcelSurfaceReactionModels.C
-parcels/derived/reactingParcel/makeReactingParcelWallInteractionModels.C
+parcels/derived/basicReactingParcel/defineBasicReactingParcel.C
+parcels/derived/basicReactingParcel/makeBasicReactingParcelCompositionModels.C
+parcels/derived/basicReactingParcel/makeBasicReactingParcelDragModels.C
+parcels/derived/basicReactingParcel/makeBasicReactingParcelDispersionModels.C
+parcels/derived/basicReactingParcel/makeBasicReactingParcelInjectionModels.C
+parcels/derived/basicReactingParcel/makeBasicReactingParcelHeatTransferModels.C
+parcels/derived/basicReactingParcel/makeBasicReactingParcelMassTransferModels.C
+parcels/derived/basicReactingParcel/makeBasicReactingParcelSurfaceReactionModels.C
+parcels/derived/basicReactingParcel/makeBasicReactingParcelWallInteractionModels.C
 
 /* bolt-on models */
 submodels/addOns/radiation/absorptionEmission/cloudAbsorptionEmission/cloudAbsorptionEmission.C
diff --git a/src/lagrangian/intermediate/clouds/derived/basicKinematicCloud/basicKinematicCloud.C b/src/lagrangian/intermediate/clouds/derived/basicKinematicCloud/basicKinematicCloud.C
index 2fb09a50318..77420ccc62a 100644
--- a/src/lagrangian/intermediate/clouds/derived/basicKinematicCloud/basicKinematicCloud.C
+++ b/src/lagrangian/intermediate/clouds/derived/basicKinematicCloud/basicKinematicCloud.C
@@ -46,9 +46,9 @@ Foam::basicKinematicCloud::basicKinematicCloud
     const dimensionedVector& g
 )
 :
-    KinematicCloud<kinematicParcel>(cloudType, vpi, rho, U, mu, g)
+    KinematicCloud<basicKinematicParcel>(cloudType, vpi, rho, U, mu, g)
 {
-    kinematicParcel::readFields(*this);
+    basicKinematicParcel::readFields(*this);
 }
 
 
@@ -62,31 +62,31 @@ Foam::basicKinematicCloud::~basicKinematicCloud()
 
 void Foam::basicKinematicCloud::evolve()
 {
-    KinematicCloud<kinematicParcel>::evolve();
+    KinematicCloud<basicKinematicParcel>::evolve();
 }
 
 
 void Foam::basicKinematicCloud::move
 (
-    KinematicParcel<kinematicParcel>::trackData& td
+    KinematicParcel<basicKinematicParcel>::trackData& td
 )
 {
-    KinematicCloud<kinematicParcel>::move(td);
+    KinematicCloud<basicKinematicParcel>::move(td);
 }
 
 
 void Foam::basicKinematicCloud::inject
 (
-    KinematicParcel<kinematicParcel>::trackData& td
+    KinematicParcel<basicKinematicParcel>::trackData& td
 )
 {
-    KinematicCloud<kinematicParcel>::inject(td);
+    KinematicCloud<basicKinematicParcel>::inject(td);
 }
 
 
 void Foam::basicKinematicCloud::writeFields() const
 {
-    kinematicParcel::writeFields(*this);
+    basicKinematicParcel::writeFields(*this);
 }
 
 
diff --git a/src/lagrangian/intermediate/clouds/derived/basicKinematicCloud/basicKinematicCloud.H b/src/lagrangian/intermediate/clouds/derived/basicKinematicCloud/basicKinematicCloud.H
index 41e29147394..d4f8204a077 100644
--- a/src/lagrangian/intermediate/clouds/derived/basicKinematicCloud/basicKinematicCloud.H
+++ b/src/lagrangian/intermediate/clouds/derived/basicKinematicCloud/basicKinematicCloud.H
@@ -37,7 +37,7 @@ SourceFiles
 #define basicKinematicCloud_H
 
 #include "KinematicCloud.H"
-#include "kinematicParcel.H"
+#include "basicKinematicParcel.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
@@ -50,7 +50,7 @@ namespace Foam
 
 class basicKinematicCloud
 :
-    public KinematicCloud<kinematicParcel>
+    public KinematicCloud<basicKinematicParcel>
 {
 
     // Private member functions
@@ -97,13 +97,13 @@ public:
             //- Move the parcels
             void move
             (
-                KinematicParcel<kinematicParcel>::trackData& td
+                KinematicParcel<basicKinematicParcel>::trackData& td
             );
 
             //- Inject more parcels
             void inject
             (
-                KinematicParcel<kinematicParcel>::trackData& td
+                KinematicParcel<basicKinematicParcel>::trackData& td
             );
 
 
diff --git a/src/lagrangian/intermediate/clouds/derived/basicReactingCloud/basicReactingCloud.C b/src/lagrangian/intermediate/clouds/derived/basicReactingCloud/basicReactingCloud.C
index d5582b29de8..9759d7ad82e 100644
--- a/src/lagrangian/intermediate/clouds/derived/basicReactingCloud/basicReactingCloud.C
+++ b/src/lagrangian/intermediate/clouds/derived/basicReactingCloud/basicReactingCloud.C
@@ -47,7 +47,7 @@ Foam::basicReactingCloud::basicReactingCloud
     PtrList<specieReactingProperties>& gases
 )
 :
-    ReactingCloud<reactingParcel>
+    ReactingCloud<basicReactingParcel>
     (
         cloudType,
         vpi,
@@ -58,7 +58,7 @@ Foam::basicReactingCloud::basicReactingCloud
         gases
     )
 {
-    reactingParcel::readFields(*this);
+    basicReactingParcel::readFields(*this);
 }
 
 
@@ -67,31 +67,31 @@ Foam::basicReactingCloud::basicReactingCloud
 
 void Foam::basicReactingCloud::evolve()
 {
-    ReactingCloud<reactingParcel>::evolve();
+    ReactingCloud<basicReactingParcel>::evolve();
 }
 
 
 void Foam::basicReactingCloud::move
 (
-    ReactingParcel<reactingParcel>::trackData& td
+    ReactingParcel<basicReactingParcel>::trackData& td
 )
 {
-    ReactingCloud<reactingParcel>::move(td);
+    ReactingCloud<basicReactingParcel>::move(td);
 }
 
 
 void Foam::basicReactingCloud::inject
 (
-    ReactingParcel<reactingParcel>::trackData& td
+    ReactingParcel<basicReactingParcel>::trackData& td
 )
 {
-    ReactingCloud<reactingParcel>::inject(td);
+    ReactingCloud<basicReactingParcel>::inject(td);
 }
 
 
 void Foam::basicReactingCloud::writeFields() const
 {
-    reactingParcel::writeFields(*this);
+    basicReactingParcel::writeFields(*this);
 }
 
 
diff --git a/src/lagrangian/intermediate/clouds/derived/basicReactingCloud/basicReactingCloud.H b/src/lagrangian/intermediate/clouds/derived/basicReactingCloud/basicReactingCloud.H
index e386760794e..3791b21e355 100644
--- a/src/lagrangian/intermediate/clouds/derived/basicReactingCloud/basicReactingCloud.H
+++ b/src/lagrangian/intermediate/clouds/derived/basicReactingCloud/basicReactingCloud.H
@@ -36,7 +36,7 @@ SourceFiles
 #define basicReactingCloud_H
 
 #include "ReactingCloud.H"
-#include "reactingParcel.H"
+#include "basicReactingParcel.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
@@ -49,7 +49,7 @@ namespace Foam
 
 class basicReactingCloud
 :
-    public ReactingCloud<reactingParcel>
+    public ReactingCloud<basicReactingParcel>
 {
 
     // Private Member Functions
@@ -91,13 +91,13 @@ public:
             //- Move the parcels
             void move
             (
-                ReactingParcel<reactingParcel>::trackData& td
+                ReactingParcel<basicReactingParcel>::trackData& td
             );
 
             //- Inject more parcels
             void inject
             (
-                ReactingParcel<reactingParcel>::trackData& td
+                ReactingParcel<basicReactingParcel>::trackData& td
             );
 
 
diff --git a/src/lagrangian/intermediate/clouds/derived/basicThermoCloud/basicThermoCloud.C b/src/lagrangian/intermediate/clouds/derived/basicThermoCloud/basicThermoCloud.C
index dbc40e04b12..2fcb522533a 100644
--- a/src/lagrangian/intermediate/clouds/derived/basicThermoCloud/basicThermoCloud.C
+++ b/src/lagrangian/intermediate/clouds/derived/basicThermoCloud/basicThermoCloud.C
@@ -46,9 +46,9 @@ Foam::basicThermoCloud::basicThermoCloud
     basicThermo& thermo
 )
 :
-    ThermoCloud<thermoParcel>(cloudType, vpi, rho, U, g, thermo)
+    ThermoCloud<basicThermoParcel>(cloudType, vpi, rho, U, g, thermo)
 {
-    thermoParcel::readFields(*this);
+    basicThermoParcel::readFields(*this);
 }
 
 
@@ -56,32 +56,32 @@ Foam::basicThermoCloud::basicThermoCloud
 
 void Foam::basicThermoCloud::evolve()
 {
-    ThermoCloud<thermoParcel>::evolve();
+    ThermoCloud<basicThermoParcel>::evolve();
 }
 
 
 void Foam::basicThermoCloud::move
 (
-    ThermoParcel<thermoParcel>::trackData& td
+    ThermoParcel<basicThermoParcel>::trackData& td
 )
 {
     // Move the parcels
-    ThermoCloud<thermoParcel>::move(td);
+    ThermoCloud<basicThermoParcel>::move(td);
 }
 
 
 void Foam::basicThermoCloud::inject
 (
-    ThermoParcel<thermoParcel>::trackData& td
+    ThermoParcel<basicThermoParcel>::trackData& td
 )
 {
-    ThermoCloud<thermoParcel>::inject(td);
+    ThermoCloud<basicThermoParcel>::inject(td);
 }
 
 
 void Foam::basicThermoCloud::writeFields() const
 {
-    thermoParcel::writeFields(*this);
+    basicThermoParcel::writeFields(*this);
 }
 
 
diff --git a/src/lagrangian/intermediate/clouds/derived/basicThermoCloud/basicThermoCloud.H b/src/lagrangian/intermediate/clouds/derived/basicThermoCloud/basicThermoCloud.H
index a7224cadd3f..f21e9ff782a 100644
--- a/src/lagrangian/intermediate/clouds/derived/basicThermoCloud/basicThermoCloud.H
+++ b/src/lagrangian/intermediate/clouds/derived/basicThermoCloud/basicThermoCloud.H
@@ -36,7 +36,7 @@ SourceFiles
 #define basicThermoCloud_H
 
 #include "ThermoCloud.H"
-#include "thermoParcel.H"
+#include "basicThermoParcel.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
@@ -49,7 +49,7 @@ namespace Foam
 
 class basicThermoCloud
 :
-    public ThermoCloud<thermoParcel>
+    public ThermoCloud<basicThermoParcel>
 {
 
     // Private Member Functions
@@ -94,13 +94,13 @@ public:
             //- Move the parcels
             void move
             (
-                ThermoParcel<thermoParcel>::trackData& td
+                ThermoParcel<basicThermoParcel>::trackData& td
             );
 
             //- Inject more parcels
             void inject
             (
-                ThermoParcel<thermoParcel>::trackData& td
+                ThermoParcel<basicThermoParcel>::trackData& td
             );
 
 
diff --git a/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcel.C b/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcel.C
index 2bd7b794110..e8dc87bc307 100644
--- a/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcel.C
+++ b/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcel.C
@@ -30,9 +30,10 @@ License
 // * * * * * * * * * * *  Protected Member Functions * * * * * * * * * * * * //
 
 template<class ParcelType>
+template<class TrackData>
 void Foam::KinematicParcel<ParcelType>::updateCellQuantities
 (
-    trackData& td,
+    TrackData& td,
     const scalar dt,
     const label celli
 )
@@ -55,9 +56,10 @@ void Foam::KinematicParcel<ParcelType>::updateCellQuantities
 
 
 template<class ParcelType>
+template<class TrackData>
 void Foam::KinematicParcel<ParcelType>::calcCoupled
 (
-    trackData& td,
+    TrackData& td,
     const scalar dt,
     const label celli
 )
@@ -103,10 +105,12 @@ void Foam::KinematicParcel<ParcelType>::calcCoupled
 
 
 template<class ParcelType>
+template<class TrackData>
 void Foam::KinematicParcel<ParcelType>::calcUncoupled
 (
-    trackData& td,
-    const scalar dt
+    TrackData& td,
+    const scalar dt,
+    const label
 )
 {
     // ~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -126,9 +130,10 @@ void Foam::KinematicParcel<ParcelType>::calcUncoupled
 
 
 template<class ParcelType>
+template<class TrackData>
 Foam::vector Foam::KinematicParcel<ParcelType>::calcVelocity
 (
-    trackData& td,
+    TrackData& td,
     const scalar dt,
     scalar& Cud,
     vector& dUTrans
@@ -192,12 +197,15 @@ Foam::vector Foam::KinematicParcel<ParcelType>::calcVelocity
 
 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
 
-template <class ParcelType>
+template<class ParcelType>
+template<class TrackData>
 bool Foam::KinematicParcel<ParcelType>::move
 (
-    trackData& td
+    TrackData& td
 )
 {
+    ParcelType& p = static_cast<ParcelType&>(*this);
+
     td.switchProcessor = false;
     td.keepParticle = true;
 
@@ -205,7 +213,7 @@ bool Foam::KinematicParcel<ParcelType>::move
     const polyBoundaryMesh& pbMesh = mesh.boundaryMesh();
 
     const scalar deltaT = mesh.time().deltaT().value();
-    scalar tEnd = (1.0 - this->stepFraction())*deltaT;
+    scalar tEnd = (1.0 - p.stepFraction())*deltaT;
     const scalar dtMax = tEnd;
 
     while (td.keepParticle && !td.switchProcessor && tEnd > SMALL)
@@ -215,33 +223,33 @@ bool Foam::KinematicParcel<ParcelType>::move
 
         // Remember which cell the Parcel is in
         // since this will change if a face is hit
-        label celli = this->cell();
+        label celli = p.cell();
 
-        dt *= this->trackToFace(this->position() + dt*U_, td);
+        dt *= p.trackToFace(p.position() + dt*U_, td);
 
         tEnd -= dt;
-        this->stepFraction() = 1.0 - tEnd/deltaT;
+        p.stepFraction() = 1.0 - tEnd/deltaT;
 
         // Update cell based properties
-        updateCellQuantities(td, dt, celli);
+        p.updateCellQuantities(td, dt, celli);
 
         if (td.cloud().coupled())
         {
-            calcCoupled(td, dt, celli);
+            p.calcCoupled(td, dt, celli);
         }
         else
         {
-            calcUncoupled(td, dt);
+            p.calcUncoupled(td, dt, celli);
         }
 
-        if (this->onBoundary() && td.keepParticle)
+        if (p.onBoundary() && td.keepParticle)
         {
-            if (this->face() > -1)
+            if (p.face() > -1)
             {
                 if
                 (
                     isType<processorPolyPatch>
-                        (pbMesh[this->patch(this->face())])
+                        (pbMesh[p.patch(p.face())])
                 )
                 {
                     td.switchProcessor = true;
@@ -254,8 +262,8 @@ bool Foam::KinematicParcel<ParcelType>::move
 }
 
 
-template <class ParcelType>
-template <class TrackData>
+template<class ParcelType>
+template<class TrackData>
 void Foam::KinematicParcel<ParcelType>::hitProcessorPatch
 (
     const processorPolyPatch&,
@@ -266,7 +274,7 @@ void Foam::KinematicParcel<ParcelType>::hitProcessorPatch
 }
 
 
-template <class ParcelType>
+template<class ParcelType>
 void Foam::KinematicParcel<ParcelType>::hitProcessorPatch
 (
     const processorPolyPatch&,
@@ -275,8 +283,8 @@ void Foam::KinematicParcel<ParcelType>::hitProcessorPatch
 {}
 
 
-template <class ParcelType>
-template <class TrackData>
+template<class ParcelType>
+template<class TrackData>
 void Foam::KinematicParcel<ParcelType>::hitWallPatch
 (
     const wallPolyPatch& wpp,
@@ -287,7 +295,7 @@ void Foam::KinematicParcel<ParcelType>::hitWallPatch
 }
 
 
-template <class ParcelType>
+template<class ParcelType>
 void Foam::KinematicParcel<ParcelType>::hitWallPatch
 (
     const wallPolyPatch&,
@@ -296,8 +304,8 @@ void Foam::KinematicParcel<ParcelType>::hitWallPatch
 {}
 
 
-template <class ParcelType>
-template <class TrackData>
+template<class ParcelType>
+template<class TrackData>
 void Foam::KinematicParcel<ParcelType>::hitPatch
 (
     const polyPatch&,
@@ -308,7 +316,7 @@ void Foam::KinematicParcel<ParcelType>::hitPatch
 }
 
 
-template <class ParcelType>
+template<class ParcelType>
 void Foam::KinematicParcel<ParcelType>::hitPatch
 (
     const polyPatch&,
@@ -317,7 +325,7 @@ void Foam::KinematicParcel<ParcelType>::hitPatch
 {}
 
 
-template <class ParcelType>
+template<class ParcelType>
 void Foam::KinematicParcel<ParcelType>::transformProperties
 (
     const tensor& T
@@ -328,7 +336,7 @@ void Foam::KinematicParcel<ParcelType>::transformProperties
 }
 
 
-template <class ParcelType>
+template<class ParcelType>
 void Foam::KinematicParcel<ParcelType>::transformProperties
 (
     const vector& separation
diff --git a/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcel.H b/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcel.H
index 958c5808b84..89640107406 100644
--- a/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcel.H
+++ b/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcel.H
@@ -72,7 +72,7 @@ Ostream& operator<<
                          Class KinematicParcel Declaration
 \*---------------------------------------------------------------------------*/
 
-template <class ParcelType>
+template<class ParcelType>
 class KinematicParcel
 :
     public Particle<ParcelType>
@@ -95,7 +95,7 @@ public:
 
     public:
 
-        // Constructors
+        //- Constructor
         constantProperties
         (
             const dictionary& dict
@@ -212,30 +212,11 @@ protected:
 
     // Protected member functions
 
-        virtual void updateCellQuantities
-        (
-            trackData& td,
-            const scalar dt,
-            const label celli
-        );
-
-        virtual void calcCoupled
-        (
-            trackData& td,
-            const scalar dt,
-            const label celli
-        );
-
-        virtual void calcUncoupled
-        (
-            trackData& td,
-            const scalar dt
-        );
-
         //- Calculate new particle velocity
-        virtual vector calcVelocity
+        template<class TrackData>
+        vector calcVelocity
         (
-            trackData& td,
+            TrackData& td,
             const scalar dt,
             scalar& Cud,
             vector& dUTrans
@@ -336,12 +317,43 @@ public:
             inline scalar areaS() const;
 
 
+        // Main calculation loop
+
+            //- Update cell based quantities
+            template<class TrackData>
+            void updateCellQuantities
+            (
+                TrackData& td,
+                const scalar dt,
+                const label celli
+            );
+
+            //- Coupled calculation with the continuous phase
+            template<class TrackData>
+            void calcCoupled
+            (
+                TrackData& td,
+                const scalar dt,
+                const label celli
+            );
+
+            //- Uncoupled calculation with the continuous phase
+            template<class TrackData>
+            void calcUncoupled
+            (
+                TrackData& td,
+                const scalar dt,
+                const label
+            );
+
+
         // Tracking
 
             //- Move the parcel
-            virtual bool move
+            template<class TrackData>
+            bool move
             (
-                trackData& td
+                TrackData& td
             );
 
 
diff --git a/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcel.C b/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcel.C
index 298d6ea1ac3..e1bae0e5f71 100644
--- a/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcel.C
+++ b/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcel.C
@@ -29,9 +29,10 @@ License
 // * * * * * * * * * * *  Protected Member Functions * * * * * * * * * * * * //
 
 template<class ParcelType>
+template<class TrackData>
 void Foam::ReactingParcel<ParcelType>::updateCellQuantities
 (
-    trackData& td,
+    TrackData& td,
     const scalar dt,
     const label celli
 )
@@ -43,9 +44,10 @@ void Foam::ReactingParcel<ParcelType>::updateCellQuantities
 
 
 template<class ParcelType>
+template<class TrackData>
 void Foam::ReactingParcel<ParcelType>::calcCoupled
 (
-    trackData& td,
+    TrackData& td,
     const scalar dt,
     const label celli
 )
@@ -190,9 +192,10 @@ void Foam::ReactingParcel<ParcelType>::calcCoupled
 
 
 template<class ParcelType>
+template<class TrackData>
 void Foam::ReactingParcel<ParcelType>::calcUncoupled
 (
-    trackData& td,
+    TrackData& td,
     const scalar dt,
     const label celli
 )
@@ -315,9 +318,10 @@ void Foam::ReactingParcel<ParcelType>::calcUncoupled
 
 
 template<class ParcelType>
+template<class TrackData>
 void Foam::ReactingParcel<ParcelType>::calcMassTransfer
 (
-    trackData& td,
+    TrackData& td,
     const scalar dt,
     const scalar T0,
     const scalar T1,
@@ -377,9 +381,10 @@ void Foam::ReactingParcel<ParcelType>::calcMassTransfer
 
 
 template<class ParcelType>
+template<class TrackData>
 void Foam::ReactingParcel<ParcelType>::calcSurfaceReactions
 (
-    trackData& td,
+    TrackData& td,
     const scalar dt,
     const label celli,
     const scalar T0,
diff --git a/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcel.H b/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcel.H
index 681fc7f2f73..3bdd242cdca 100644
--- a/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcel.H
+++ b/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcel.H
@@ -187,31 +187,11 @@ protected:
 
     // Protected member functions
 
-        virtual void updateCellQuantities
-        (
-            trackData& td,
-            const scalar dt,
-            const label celli
-        );
-
-        virtual void calcCoupled
-        (
-            trackData& td,
-            const scalar dt,
-            const label celli
-        );
-
-        virtual void calcUncoupled
-        (
-            trackData& td,
-            const scalar dt,
-            const label celli
-        );
-
         //- Calculate mass transfer
-        virtual void calcMassTransfer
+        template<class TrackData>
+        void calcMassTransfer
         (
-            trackData& td,
+            TrackData& td,
             const scalar dt,
             const scalar T0,
             const scalar T1,
@@ -219,9 +199,10 @@ protected:
         );
 
         //- Calculate surface reactions
-        virtual void calcSurfaceReactions
+        template<class TrackData>
+        void calcSurfaceReactions
         (
-            trackData& td,
+            TrackData& td,
             const scalar dt,
             const label celli,
             const scalar T0,
@@ -298,6 +279,36 @@ public:
             inline scalar& mass0();
 
 
+        // Main calculation loop
+
+            //- Update cell based quantities
+            template<class TrackData>
+            void updateCellQuantities
+            (
+                TrackData& td,
+                const scalar dt,
+                const label celli
+            );
+
+            //- Coupled calculation with the continuous phase
+            template<class TrackData>
+            void calcCoupled
+            (
+                TrackData& td,
+                const scalar dt,
+                const label celli
+            );
+
+            //- Uncoupled calculation with the continuous phase
+            template<class TrackData>
+            void calcUncoupled
+            (
+                TrackData& td,
+                const scalar dt,
+                const label
+            );
+
+
         // I-O
 
             static void readFields
diff --git a/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcel.C b/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcel.C
index ab403905be5..b1effd166fa 100644
--- a/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcel.C
+++ b/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcel.C
@@ -29,9 +29,10 @@ License
 // * * * * * * * * * * *  Protected Member Functions * * * * * * * * * * * * //
 
 template<class ParcelType>
+template<class TrackData>
 void Foam::ThermoParcel<ParcelType>::updateCellQuantities
 (
-    trackData& td,
+    TrackData& td,
     const scalar dt,
     const label celli
 )
@@ -44,9 +45,10 @@ void Foam::ThermoParcel<ParcelType>::updateCellQuantities
 
 
 template<class ParcelType>
+template<class TrackData>
 void Foam::ThermoParcel<ParcelType>::calcCoupled
 (
-    trackData& td,
+    TrackData& td,
     const scalar dt,
     const label celli
 )
@@ -112,9 +114,10 @@ void Foam::ThermoParcel<ParcelType>::calcCoupled
 
 
 template<class ParcelType>
+template<class TrackData>
 void Foam::ThermoParcel<ParcelType>::calcUncoupled
 (
-    trackData& td,
+    TrackData& td,
     const scalar dt,
     const label celli
 )
@@ -146,9 +149,10 @@ void Foam::ThermoParcel<ParcelType>::calcUncoupled
 
 
 template<class ParcelType>
+template <class TrackData>
 Foam::scalar Foam::ThermoParcel<ParcelType>::calcHeatTransfer
 (
-    trackData& td,
+    TrackData& td,
     const scalar dt,
     const label celli,
     scalar& htc,
@@ -201,8 +205,6 @@ Foam::scalar Foam::ThermoParcel<ParcelType>::calcHeatTransfer
 
     scalar Tnew = td.cloud().TIntegrator().integrate(T_, dt, ap, bp);
 
-    Info<< "T_, Tnew = " << T_ << ", " << Tnew << endl;
-
     dhTrans = -this->mass()*cp_*(Tnew - T_);
 
     return Tnew;
diff --git a/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcel.H b/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcel.H
index 8753ee86333..83b3c8bd2be 100644
--- a/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcel.H
+++ b/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcel.H
@@ -67,7 +67,7 @@ Ostream& operator<<
                        Class ThermoParcel Declaration
 \*---------------------------------------------------------------------------*/
 
-template <class ParcelType>
+template<class ParcelType>
 class ThermoParcel
 :
     public KinematicParcel<ParcelType>
@@ -188,31 +188,11 @@ protected:
 
     // Protected member functions
 
-        virtual void updateCellQuantities
-        (
-            trackData& td,
-            const scalar dt,
-            const label celli
-        );
-
-        virtual void calcCoupled
-        (
-            trackData& td,
-            const scalar dt,
-            const label celli
-        );
-
-        virtual void calcUncoupled
-        (
-            trackData& td,
-            const scalar dt,
-            const label celli
-        );
-
         //- Calculate new particle temperature
-        virtual scalar calcHeatTransfer
+        template<class TrackData>
+        scalar calcHeatTransfer
         (
-            trackData& td,
+            TrackData& td,
             const scalar dt,
             const label celli,
             scalar& htc,
@@ -271,6 +251,36 @@ public:
             inline scalar& cp();
 
 
+        // Main calculation loop
+
+            //- Update cell based quantities
+            template<class TrackData>
+            void updateCellQuantities
+            (
+                TrackData& td,
+                const scalar dt,
+                const label celli
+            );
+
+            //- Coupled calculation with the continuous phase
+            template<class TrackData>
+            void calcCoupled
+            (
+                TrackData& td,
+                const scalar dt,
+                const label celli
+            );
+
+            //- Uncoupled calculation with the continuous phase
+            template<class TrackData>
+            void calcUncoupled
+            (
+                TrackData& td,
+                const scalar dt,
+                const label
+            );
+
+
         // I-O
 
             static void readFields
diff --git a/src/lagrangian/intermediate/parcels/derived/kinematicParcel/kinematicParcel.C b/src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/basicKinematicParcel.C
similarity index 77%
rename from src/lagrangian/intermediate/parcels/derived/kinematicParcel/kinematicParcel.C
rename to src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/basicKinematicParcel.C
index a33e3e37b32..c9957044f6a 100644
--- a/src/lagrangian/intermediate/parcels/derived/kinematicParcel/kinematicParcel.C
+++ b/src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/basicKinematicParcel.C
@@ -24,23 +24,23 @@ License
 
 \*---------------------------------------------------------------------------*/
 
-#include "kinematicParcel.H"
+#include "basicKinematicParcel.H"
 
 // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
 
 namespace Foam
 {
-    defineTypeNameAndDebug(kinematicParcel, 0);
-    defineParticleTypeNameAndDebug(kinematicParcel, 0);
-    defineParcelTypeNameAndDebug(kinematicParcel, 0);
+    defineTypeNameAndDebug(basicKinematicParcel, 0);
+    defineParticleTypeNameAndDebug(basicKinematicParcel, 0);
+    defineParcelTypeNameAndDebug(basicKinematicParcel, 0);
 };
 
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-Foam::kinematicParcel::kinematicParcel
+Foam::basicKinematicParcel::basicKinematicParcel
 (
-    KinematicCloud<kinematicParcel>& owner,
+    KinematicCloud<basicKinematicParcel>& owner,
     const label typeId,
     const vector& position,
     const label celli,
@@ -50,7 +50,7 @@ Foam::kinematicParcel::kinematicParcel
     const constantProperties& constProps
 )
 :
-    KinematicParcel<kinematicParcel>
+    KinematicParcel<basicKinematicParcel>
     (
         owner,
         typeId,
@@ -64,20 +64,20 @@ Foam::kinematicParcel::kinematicParcel
 {}
 
 
-Foam::kinematicParcel::kinematicParcel
+Foam::basicKinematicParcel::basicKinematicParcel
 (
-    const Cloud<kinematicParcel>& cloud,
+    const Cloud<basicKinematicParcel>& cloud,
     Istream& is,
     bool readFields
 )
 :
-    KinematicParcel<kinematicParcel>(cloud, is, readFields)
+    KinematicParcel<basicKinematicParcel>(cloud, is, readFields)
 {}
 
 
 // * * * * * * * * * * * * * * * *  Destructors  * * * * * * * * * * * * * * //
 
-Foam::kinematicParcel::~kinematicParcel()
+Foam::basicKinematicParcel::~basicKinematicParcel()
 {}
 
 
diff --git a/src/lagrangian/intermediate/parcels/derived/kinematicParcel/kinematicParcel.H b/src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/basicKinematicParcel.H
similarity index 76%
rename from src/lagrangian/intermediate/parcels/derived/kinematicParcel/kinematicParcel.H
rename to src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/basicKinematicParcel.H
index 681072b6538..bb43934aa0f 100644
--- a/src/lagrangian/intermediate/parcels/derived/kinematicParcel/kinematicParcel.H
+++ b/src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/basicKinematicParcel.H
@@ -23,18 +23,18 @@ License
     Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
 
 Class
-    Foam::kinematicParcel
+    Foam::basicKinematicParcel
 
 Description
 
 
 SourceFiles
-    kinematicParcel.C
+    basicKinematicParcel.C
 
 \*---------------------------------------------------------------------------*/
 
-#ifndef kinematicParcel_H
-#define kinematicParcel_H
+#ifndef basicKinematicParcel_H
+#define basicKinematicParcel_H
 
 #include "KinematicParcel.H"
 
@@ -44,26 +44,26 @@ namespace Foam
 {
 
 /*---------------------------------------------------------------------------*\
-                         Class kinematicParcel Declaration
+                         Class basicKinematicParcel Declaration
 \*---------------------------------------------------------------------------*/
 
-class kinematicParcel
+class basicKinematicParcel
 :
-    public KinematicParcel<kinematicParcel>
+    public KinematicParcel<basicKinematicParcel>
 {
 
 public:
 
     //- Run-time type information
-    TypeName("kinematicParcel");
+    TypeName("basicKinematicParcel");
 
 
     // Constructors
 
         //- Construct from components
-        kinematicParcel
+        basicKinematicParcel
         (
-            KinematicCloud<kinematicParcel>& owner,
+            KinematicCloud<basicKinematicParcel>& owner,
             const label typeId,
             const vector& position,
             const label celli,
@@ -74,28 +74,29 @@ public:
         );
 
         //- Construct from Istream
-        kinematicParcel
+        basicKinematicParcel
         (
-            const Cloud<kinematicParcel>& c,
+            const Cloud<basicKinematicParcel>& c,
             Istream& is,
             bool readFields = true
         );
 
         //- Construct and return a clone
-        autoPtr<kinematicParcel> clone() const
+        autoPtr<basicKinematicParcel> clone() const
         {
-            return autoPtr<kinematicParcel>(new kinematicParcel(*this));
+            return autoPtr<basicKinematicParcel>
+                (new basicKinematicParcel(*this));
         }
 
 
-    // Destructors
+    //- Destructor
 
-        virtual ~kinematicParcel();
+        virtual ~basicKinematicParcel();
 };
 
 
 template<>
-inline bool contiguous<kinematicParcel>()
+inline bool contiguous<basicKinematicParcel>()
 {
     return true;
 }
diff --git a/src/lagrangian/intermediate/parcels/derived/kinematicParcel/defineKinematicParcel.C b/src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/defineBasicKinematicParcel.C
similarity index 80%
rename from src/lagrangian/intermediate/parcels/derived/kinematicParcel/defineKinematicParcel.C
rename to src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/defineBasicKinematicParcel.C
index 0ad0793203f..452b53e9da2 100644
--- a/src/lagrangian/intermediate/parcels/derived/kinematicParcel/defineKinematicParcel.C
+++ b/src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/defineBasicKinematicParcel.C
@@ -24,17 +24,17 @@ License
 
 \*---------------------------------------------------------------------------*/
 
-#include "kinematicParcel.H"
+#include "basicKinematicParcel.H"
 #include "KinematicCloud.H"
 
 namespace Foam
 {
-//    defineTemplateTypeNameAndDebug(IOPosition<kinematicParcel>, 0);
+//    defineTemplateTypeNameAndDebug(IOPosition<basicKinematicParcel>, 0);
 
-    defineTemplateTypeNameAndDebug(Cloud<kinematicParcel>, 0);
+    defineTemplateTypeNameAndDebug(Cloud<basicKinematicParcel>, 0);
 
-    defineParcelTypeNameAndDebug(KinematicCloud<kinematicParcel>, 0);
-//    defineTemplateTypeNameAndDebug(KinematicCloud<kinematicParcel>, 0);
+    defineParcelTypeNameAndDebug(KinematicCloud<basicKinematicParcel>, 0);
+//    defineTemplateTypeNameAndDebug(KinematicCloud<basicKinematicParcel>, 0);
 };
 
 
diff --git a/src/lagrangian/intermediate/parcels/derived/kinematicParcel/makeKinematicParcelDispersionModels.C b/src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/makeBasicKinematicParcelDispersionModels.C
similarity index 88%
rename from src/lagrangian/intermediate/parcels/derived/kinematicParcel/makeKinematicParcelDispersionModels.C
rename to src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/makeBasicKinematicParcelDispersionModels.C
index 595edb2947f..74b29d8d43e 100644
--- a/src/lagrangian/intermediate/parcels/derived/kinematicParcel/makeKinematicParcelDispersionModels.C
+++ b/src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/makeBasicKinematicParcelDispersionModels.C
@@ -24,7 +24,7 @@ License
 
 \*---------------------------------------------------------------------------*/
 
-#include "kinematicParcel.H"
+#include "basicKinematicParcel.H"
 #include "KinematicCloud.H"
 #include "NoDispersion.H"
 #include "GradientDispersionRAS.H"
@@ -32,11 +32,11 @@ License
 
 namespace Foam
 {
-    makeDispersionModel(KinematicCloud<kinematicParcel>);
+    makeDispersionModel(KinematicCloud<basicKinematicParcel>);
 
     defineNamedTemplateTypeNameAndDebug
     (
-        DispersionRASModel<KinematicCloud<kinematicParcel> >,
+        DispersionRASModel<KinematicCloud<basicKinematicParcel> >,
         0
     );
 
@@ -45,19 +45,19 @@ namespace Foam
     (
         NoDispersion,
         KinematicCloud,
-        kinematicParcel
+        basicKinematicParcel
     );
     makeDispersionModelType
     (
         GradientDispersionRAS,
         KinematicCloud,
-        kinematicParcel
+        basicKinematicParcel
     );
     makeDispersionModelType
     (
         StochasticDispersionRAS,
         KinematicCloud,
-        kinematicParcel
+        basicKinematicParcel
     );
 };
 
diff --git a/src/lagrangian/intermediate/parcels/derived/reactingParcel/makeReactingParcelDragModels.C b/src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/makeBasicKinematicParcelDragModels.C
similarity index 86%
rename from src/lagrangian/intermediate/parcels/derived/reactingParcel/makeReactingParcelDragModels.C
rename to src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/makeBasicKinematicParcelDragModels.C
index 65a35d79a0e..82af0bb1e6e 100644
--- a/src/lagrangian/intermediate/parcels/derived/reactingParcel/makeReactingParcelDragModels.C
+++ b/src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/makeBasicKinematicParcelDragModels.C
@@ -24,18 +24,18 @@ License
 
 \*---------------------------------------------------------------------------*/
 
-#include "reactingParcel.H"
+#include "basicKinematicParcel.H"
 #include "KinematicCloud.H"
 #include "NoDrag.H"
 #include "SphereDrag.H"
 
 namespace Foam
 {
-    makeDragModel(KinematicCloud<reactingParcel>);
+    makeDragModel(KinematicCloud<basicKinematicParcel>);
 
     // Add instances of drag model to the table
-    makeDragModelType(NoDrag, KinematicCloud, reactingParcel);
-    makeDragModelType(SphereDrag, KinematicCloud, reactingParcel);
+    makeDragModelType(NoDrag, KinematicCloud, basicKinematicParcel);
+    makeDragModelType(SphereDrag, KinematicCloud, basicKinematicParcel);
 };
 
 
diff --git a/src/lagrangian/intermediate/parcels/derived/kinematicParcel/makeKinematicParcelHeatTransferModels.C b/src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/makeBasicKinematicParcelHeatTransferModels.C
similarity index 86%
rename from src/lagrangian/intermediate/parcels/derived/kinematicParcel/makeKinematicParcelHeatTransferModels.C
rename to src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/makeBasicKinematicParcelHeatTransferModels.C
index 6a5eaa11f93..34740bd6a86 100644
--- a/src/lagrangian/intermediate/parcels/derived/kinematicParcel/makeKinematicParcelHeatTransferModels.C
+++ b/src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/makeBasicKinematicParcelHeatTransferModels.C
@@ -24,16 +24,21 @@ License
 
 \*---------------------------------------------------------------------------*/
 
-#include "kinematicParcel.H"
+#include "basicKinematicParcel.H"
 #include "KinematicCloud.H"
 #include "NoHeatTransfer.H"
 
 namespace Foam
 {
-    makeHeatTransferModel(KinematicCloud<kinematicParcel>);
+    makeHeatTransferModel(KinematicCloud<basicKinematicParcel>);
 
     // Add instances of heat transfer model to the table
-    makeHeatTransferModelType(NoHeatTransfer, KinematicCloud, kinematicParcel);
+    makeHeatTransferModelType
+    (
+        NoHeatTransfer,
+        KinematicCloud,
+        basicKinematicParcel
+    );
 };
 
 
diff --git a/src/lagrangian/intermediate/parcels/derived/kinematicParcel/makeKinematicParcelInjectionModels.C b/src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/makeBasicKinematicParcelInjectionModels.C
similarity index 81%
rename from src/lagrangian/intermediate/parcels/derived/kinematicParcel/makeKinematicParcelInjectionModels.C
rename to src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/makeBasicKinematicParcelInjectionModels.C
index bb6e400393b..7b72076611b 100644
--- a/src/lagrangian/intermediate/parcels/derived/kinematicParcel/makeKinematicParcelInjectionModels.C
+++ b/src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/makeBasicKinematicParcelInjectionModels.C
@@ -24,18 +24,28 @@ License
 
 \*---------------------------------------------------------------------------*/
 
-#include "kinematicParcel.H"
+#include "basicKinematicParcel.H"
 #include "KinematicCloud.H"
 #include "ManualInjection.H"
 #include "NoInjection.H"
 
 namespace Foam
 {
-    makeInjectionModel(KinematicCloud<kinematicParcel>);
+    makeInjectionModel(KinematicCloud<basicKinematicParcel>);
 
     // Add instances of injection model to the table
-    makeInjectionModelType(ManualInjection, KinematicCloud, kinematicParcel);
-    makeInjectionModelType(NoInjection, KinematicCloud, kinematicParcel);
+    makeInjectionModelType
+    (
+        ManualInjection,
+        KinematicCloud,
+        basicKinematicParcel
+    );
+    makeInjectionModelType
+    (
+        NoInjection,
+        KinematicCloud,
+        basicKinematicParcel
+    );
 };
 
 
diff --git a/src/lagrangian/intermediate/parcels/derived/reactingParcel/makeReactingParcelWallInteractionModels.C b/src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/makeBasicKinematicParcelWallInteractionModels.C
similarity index 89%
rename from src/lagrangian/intermediate/parcels/derived/reactingParcel/makeReactingParcelWallInteractionModels.C
rename to src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/makeBasicKinematicParcelWallInteractionModels.C
index c3f551887df..1adc3b92718 100644
--- a/src/lagrangian/intermediate/parcels/derived/reactingParcel/makeReactingParcelWallInteractionModels.C
+++ b/src/lagrangian/intermediate/parcels/derived/basicKinematicParcel/makeBasicKinematicParcelWallInteractionModels.C
@@ -24,28 +24,27 @@ License
 
 \*---------------------------------------------------------------------------*/
 
-#include "reactingParcel.H"
+#include "basicKinematicParcel.H"
 #include "KinematicCloud.H"
 #include "Rebound.H"
 #include "StandardWallInteraction.H"
 
 namespace Foam
 {
-    makeWallInteractionModel(KinematicCloud<reactingParcel>);
-//    makeWallInteractionModel(ReactingCloud<reactingParcel>);
+    makeWallInteractionModel(KinematicCloud<basicKinematicParcel>);
 
     // Add instances of wall interaction model to the table
     makeWallInteractionModelType
     (
         Rebound,
         KinematicCloud,
-        reactingParcel
+        basicKinematicParcel
     );
     makeWallInteractionModelType
     (
         StandardWallInteraction,
         KinematicCloud,
-        reactingParcel
+        basicKinematicParcel
     );
 };
 
diff --git a/src/lagrangian/intermediate/parcels/derived/reactingParcel/reactingParcel.C b/src/lagrangian/intermediate/parcels/derived/basicReactingParcel/basicReactingParcel.C
similarity index 79%
rename from src/lagrangian/intermediate/parcels/derived/reactingParcel/reactingParcel.C
rename to src/lagrangian/intermediate/parcels/derived/basicReactingParcel/basicReactingParcel.C
index 9e445058dd7..d6a4c14f8fe 100644
--- a/src/lagrangian/intermediate/parcels/derived/reactingParcel/reactingParcel.C
+++ b/src/lagrangian/intermediate/parcels/derived/basicReactingParcel/basicReactingParcel.C
@@ -24,23 +24,23 @@ License
 
 \*---------------------------------------------------------------------------*/
 
-#include "reactingParcel.H"
+#include "basicReactingParcel.H"
 
 // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
 
 namespace Foam
 {
-    defineTypeNameAndDebug(reactingParcel, 0);
-    defineParticleTypeNameAndDebug(reactingParcel, 0);
-    defineParcelTypeNameAndDebug(reactingParcel, 0);
+    defineTypeNameAndDebug(basicReactingParcel, 0);
+    defineParticleTypeNameAndDebug(basicReactingParcel, 0);
+    defineParcelTypeNameAndDebug(basicReactingParcel, 0);
 };
 
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-Foam::reactingParcel::reactingParcel
+Foam::basicReactingParcel::basicReactingParcel
 (
-    ReactingCloud<reactingParcel>& owner,
+    ReactingCloud<basicReactingParcel>& owner,
     const label typeId,
     const vector& position,
     const label celli,
@@ -54,7 +54,7 @@ Foam::reactingParcel::reactingParcel
     const constantProperties& constProps
 )
 :
-    ReactingParcel<reactingParcel>
+    ReactingParcel<basicReactingParcel>
     (
         owner,
         typeId,
@@ -72,20 +72,20 @@ Foam::reactingParcel::reactingParcel
 {}
 
 
-Foam::reactingParcel::reactingParcel
+Foam::basicReactingParcel::basicReactingParcel
 (
-    const Cloud<reactingParcel>& cloud,
+    const Cloud<basicReactingParcel>& cloud,
     Istream& is,
     bool readFields
 )
 :
-    ReactingParcel<reactingParcel>(cloud, is, readFields)
+    ReactingParcel<basicReactingParcel>(cloud, is, readFields)
 {}
 
 
 // * * * * * * * * * * * * * * * *  Destructors  * * * * * * * * * * * * * * //
 
-Foam::reactingParcel::~reactingParcel()
+Foam::basicReactingParcel::~basicReactingParcel()
 {}
 
 
diff --git a/src/lagrangian/intermediate/parcels/derived/reactingParcel/reactingParcel.H b/src/lagrangian/intermediate/parcels/derived/basicReactingParcel/basicReactingParcel.H
similarity index 78%
rename from src/lagrangian/intermediate/parcels/derived/reactingParcel/reactingParcel.H
rename to src/lagrangian/intermediate/parcels/derived/basicReactingParcel/basicReactingParcel.H
index bc85d0610c2..98af0d0e0fd 100644
--- a/src/lagrangian/intermediate/parcels/derived/reactingParcel/reactingParcel.H
+++ b/src/lagrangian/intermediate/parcels/derived/basicReactingParcel/basicReactingParcel.H
@@ -23,19 +23,19 @@ License
     Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
 
 Class
-    Foam::reactingParcel
+    Foam::basicReactingParcel
 
 Description
 
 
 SourceFiles
-    reactingParcel.C
-    reactingParcelIO.C
+    basicReactingParcel.C
+    basicReactingParcelIO.C
 
 \*---------------------------------------------------------------------------*/
 
-#ifndef reactingParcel_H
-#define reactingParcel_H
+#ifndef basicReactingParcel_H
+#define basicReactingParcel_H
 
 #include "ReactingParcel.H"
 
@@ -45,25 +45,25 @@ namespace Foam
 {
 
 /*---------------------------------------------------------------------------*\
-                        Class reactingParcel Declaration
+                        Class basicReactingParcel Declaration
 \*---------------------------------------------------------------------------*/
 
-class reactingParcel
+class basicReactingParcel
 :
-    public ReactingParcel<reactingParcel>
+    public ReactingParcel<basicReactingParcel>
 {
 
 public:
 
     //- Run-time type information
-    TypeName("reactingParcel");
+    TypeName("basicReactingParcel");
 
     // Constructors
 
         //- Construct from components
-        reactingParcel
+        basicReactingParcel
         (
-             ReactingCloud<reactingParcel>& owner,
+             ReactingCloud<basicReactingParcel>& owner,
              const label typeId,
              const vector& position,
              const label celli,
@@ -78,28 +78,29 @@ public:
         );
 
         //- Construct from Istream
-        reactingParcel
+        basicReactingParcel
         (
-            const Cloud<reactingParcel>& c,
+            const Cloud<basicReactingParcel>& c,
             Istream& is,
             bool readFields = true
         );
 
         //- Construct and return a clone
-        autoPtr<reactingParcel> clone() const
+        autoPtr<basicReactingParcel> clone() const
         {
-            return autoPtr<reactingParcel>(new reactingParcel(*this));
+            return autoPtr<basicReactingParcel>
+                (new basicReactingParcel(*this));
         }
 
 
     // Destructors
 
-        virtual ~reactingParcel();
+        virtual ~basicReactingParcel();
 };
 
 
 template<>
-inline bool contiguous<reactingParcel>()
+inline bool contiguous<basicReactingParcel>()
 {
     return false; // Now have scalar lists/fields (mass fractions)
 }
diff --git a/src/lagrangian/intermediate/parcels/derived/reactingParcel/defineReactingParcel.C b/src/lagrangian/intermediate/parcels/derived/basicReactingParcel/defineBasicReactingParcel.C
similarity index 59%
rename from src/lagrangian/intermediate/parcels/derived/reactingParcel/defineReactingParcel.C
rename to src/lagrangian/intermediate/parcels/derived/basicReactingParcel/defineBasicReactingParcel.C
index 427def96de1..87106d9d7e9 100644
--- a/src/lagrangian/intermediate/parcels/derived/reactingParcel/defineReactingParcel.C
+++ b/src/lagrangian/intermediate/parcels/derived/basicReactingParcel/defineBasicReactingParcel.C
@@ -24,28 +24,28 @@ License
 
 \*---------------------------------------------------------------------------*/
 
-#include "reactingParcel.H"
+#include "basicReactingParcel.H"
 #include "ReactingCloud.H"
 
 namespace Foam
 {
-    defineTemplateTypeNameAndDebug(Cloud<reactingParcel>, 0);
+    defineTemplateTypeNameAndDebug(Cloud<basicReactingParcel>, 0);
 
-    defineParcelTypeNameAndDebug(KinematicParcel<reactingParcel>, 0);
-//    defineTemplateTypeNameAndDebug(KinematicParcel<reactingParcel>, 0);
-    defineParcelTypeNameAndDebug(ThermoParcel<reactingParcel>, 0);
-    defineTemplateTypeNameAndDebug(ThermoParcel<reactingParcel>, 0);
-    defineParcelTypeNameAndDebug(ReactingParcel<reactingParcel>, 0);
-    defineTemplateTypeNameAndDebug(ReactingParcel<reactingParcel>, 0);
+    defineParcelTypeNameAndDebug(KinematicParcel<basicReactingParcel>, 0);
+//    defineTemplateTypeNameAndDebug(KinematicParcel<basicReactingParcel>, 0);
+    defineParcelTypeNameAndDebug(ThermoParcel<basicReactingParcel>, 0);
+    defineTemplateTypeNameAndDebug(ThermoParcel<basicReactingParcel>, 0);
+    defineParcelTypeNameAndDebug(ReactingParcel<basicReactingParcel>, 0);
+    defineTemplateTypeNameAndDebug(ReactingParcel<basicReactingParcel>, 0);
 
-    defineParcelTypeNameAndDebug(KinematicCloud<reactingParcel>, 0);
-//    defineTemplateTypeNameAndDebug(KinematicCloud<reactingParcel>, 0);
+    defineParcelTypeNameAndDebug(KinematicCloud<basicReactingParcel>, 0);
+//    defineTemplateTypeNameAndDebug(KinematicCloud<basicReactingParcel>, 0);
 
-    defineParcelTypeNameAndDebug(ThermoCloud<reactingParcel>, 0);
-//    defineTemplateTypeNameAndDebug(ThermoCloud<reactingParcel>, 0);
+    defineParcelTypeNameAndDebug(ThermoCloud<basicReactingParcel>, 0);
+//    defineTemplateTypeNameAndDebug(ThermoCloud<basicReactingParcel>, 0);
 
-    defineParcelTypeNameAndDebug(ReactingCloud<reactingParcel>, 0);
-//    defineTemplateTypeNameAndDebug(ReactingCloud<reactingParcel>, 0);
+    defineParcelTypeNameAndDebug(ReactingCloud<basicReactingParcel>, 0);
+//    defineTemplateTypeNameAndDebug(ReactingCloud<basicReactingParcel>, 0);
 
 };
 
diff --git a/src/lagrangian/intermediate/parcels/derived/reactingParcel/makeReactingParcelCompositionModels.C b/src/lagrangian/intermediate/parcels/derived/basicReactingParcel/makeBasicReactingParcelCompositionModels.C
similarity index 92%
rename from src/lagrangian/intermediate/parcels/derived/reactingParcel/makeReactingParcelCompositionModels.C
rename to src/lagrangian/intermediate/parcels/derived/basicReactingParcel/makeBasicReactingParcelCompositionModels.C
index fd8a908fbf4..2cd9da2d65b 100644
--- a/src/lagrangian/intermediate/parcels/derived/reactingParcel/makeReactingParcelCompositionModels.C
+++ b/src/lagrangian/intermediate/parcels/derived/basicReactingParcel/makeBasicReactingParcelCompositionModels.C
@@ -24,20 +24,20 @@ License
 
 \*---------------------------------------------------------------------------*/
 
-#include "reactingParcel.H"
+#include "basicReactingParcel.H"
 #include "ReactingCloud.H"
 #include "SingleMixtureFraction.H"
 
 namespace Foam
 {
-    makeCompositionModel(ReactingCloud<reactingParcel>);
+    makeCompositionModel(ReactingCloud<basicReactingParcel>);
 
     // Add instances of composition model to the table
     makeCompositionModelType
     (
         SingleMixtureFraction,
         ReactingCloud,
-        reactingParcel
+        basicReactingParcel
     );
 };
 
diff --git a/src/lagrangian/intermediate/parcels/derived/reactingParcel/makeReactingParcelDispersionModels.C b/src/lagrangian/intermediate/parcels/derived/basicReactingParcel/makeBasicReactingParcelDispersionModels.C
similarity index 88%
rename from src/lagrangian/intermediate/parcels/derived/reactingParcel/makeReactingParcelDispersionModels.C
rename to src/lagrangian/intermediate/parcels/derived/basicReactingParcel/makeBasicReactingParcelDispersionModels.C
index cde64618453..985cb0fee6e 100644
--- a/src/lagrangian/intermediate/parcels/derived/reactingParcel/makeReactingParcelDispersionModels.C
+++ b/src/lagrangian/intermediate/parcels/derived/basicReactingParcel/makeBasicReactingParcelDispersionModels.C
@@ -24,7 +24,7 @@ License
 
 \*---------------------------------------------------------------------------*/
 
-#include "reactingParcel.H"
+#include "basicReactingParcel.H"
 #include "KinematicCloud.H"
 #include "NoDispersion.H"
 #include "GradientDispersionRAS.H"
@@ -32,11 +32,11 @@ License
 
 namespace Foam
 {
-    makeDispersionModel(KinematicCloud<reactingParcel>);
+    makeDispersionModel(KinematicCloud<basicReactingParcel>);
 
     defineNamedTemplateTypeNameAndDebug
     (
-        DispersionRASModel<KinematicCloud<reactingParcel> >,
+        DispersionRASModel<KinematicCloud<basicReactingParcel> >,
         0
     );
 
@@ -45,19 +45,19 @@ namespace Foam
     (
         NoDispersion,
         KinematicCloud,
-        reactingParcel
+        basicReactingParcel
     );
     makeDispersionModelType
     (
         GradientDispersionRAS,
         KinematicCloud,
-        reactingParcel
+        basicReactingParcel
     );
     makeDispersionModelType
     (
         StochasticDispersionRAS,
         KinematicCloud,
-        reactingParcel
+        basicReactingParcel
     );
 };
 
diff --git a/src/lagrangian/intermediate/parcels/derived/kinematicParcel/makeKinematicParcelDragModels.C b/src/lagrangian/intermediate/parcels/derived/basicReactingParcel/makeBasicReactingParcelDragModels.C
similarity index 86%
rename from src/lagrangian/intermediate/parcels/derived/kinematicParcel/makeKinematicParcelDragModels.C
rename to src/lagrangian/intermediate/parcels/derived/basicReactingParcel/makeBasicReactingParcelDragModels.C
index 209ae7d86d7..2de3b161435 100644
--- a/src/lagrangian/intermediate/parcels/derived/kinematicParcel/makeKinematicParcelDragModels.C
+++ b/src/lagrangian/intermediate/parcels/derived/basicReactingParcel/makeBasicReactingParcelDragModels.C
@@ -24,18 +24,18 @@ License
 
 \*---------------------------------------------------------------------------*/
 
-#include "kinematicParcel.H"
+#include "basicReactingParcel.H"
 #include "KinematicCloud.H"
 #include "NoDrag.H"
 #include "SphereDrag.H"
 
 namespace Foam
 {
-    makeDragModel(KinematicCloud<kinematicParcel>);
+    makeDragModel(KinematicCloud<basicReactingParcel>);
 
     // Add instances of drag model to the table
-    makeDragModelType(NoDrag, KinematicCloud, kinematicParcel);
-    makeDragModelType(SphereDrag, KinematicCloud, kinematicParcel);
+    makeDragModelType(NoDrag, KinematicCloud, basicReactingParcel);
+    makeDragModelType(SphereDrag, KinematicCloud, basicReactingParcel);
 };
 
 
diff --git a/src/lagrangian/intermediate/parcels/derived/thermoParcel/makeThermoParcelHeatTransferModels.C b/src/lagrangian/intermediate/parcels/derived/basicReactingParcel/makeBasicReactingParcelHeatTransferModels.C
similarity index 81%
rename from src/lagrangian/intermediate/parcels/derived/thermoParcel/makeThermoParcelHeatTransferModels.C
rename to src/lagrangian/intermediate/parcels/derived/basicReactingParcel/makeBasicReactingParcelHeatTransferModels.C
index 29afb72f4b3..7bd38923d3d 100644
--- a/src/lagrangian/intermediate/parcels/derived/thermoParcel/makeThermoParcelHeatTransferModels.C
+++ b/src/lagrangian/intermediate/parcels/derived/basicReactingParcel/makeBasicReactingParcelHeatTransferModels.C
@@ -24,18 +24,28 @@ License
 
 \*---------------------------------------------------------------------------*/
 
-#include "thermoParcel.H"
+#include "basicReactingParcel.H"
 #include "ThermoCloud.H"
 #include "NoHeatTransfer.H"
 #include "RanzMarshall.H"
 
 namespace Foam
 {
-    makeHeatTransferModel(ThermoCloud<thermoParcel>);
+    makeHeatTransferModel(ThermoCloud<basicReactingParcel>);
 
     // Add instances of heat transfer model to the table
-    makeHeatTransferModelType(NoHeatTransfer, ThermoCloud, thermoParcel);
-    makeHeatTransferModelType(RanzMarshall, ThermoCloud, thermoParcel);
+    makeHeatTransferModelType
+    (
+        NoHeatTransfer,
+        ThermoCloud,
+        basicReactingParcel
+    );
+    makeHeatTransferModelType
+    (
+        RanzMarshall,
+        ThermoCloud,
+        basicReactingParcel
+    );
 };
 
 
diff --git a/src/lagrangian/intermediate/parcels/derived/reactingParcel/makeReactingParcelInjectionModels.C b/src/lagrangian/intermediate/parcels/derived/basicReactingParcel/makeBasicReactingParcelInjectionModels.C
similarity index 81%
rename from src/lagrangian/intermediate/parcels/derived/reactingParcel/makeReactingParcelInjectionModels.C
rename to src/lagrangian/intermediate/parcels/derived/basicReactingParcel/makeBasicReactingParcelInjectionModels.C
index d43f9570ca6..64296007dc7 100644
--- a/src/lagrangian/intermediate/parcels/derived/reactingParcel/makeReactingParcelInjectionModels.C
+++ b/src/lagrangian/intermediate/parcels/derived/basicReactingParcel/makeBasicReactingParcelInjectionModels.C
@@ -24,18 +24,28 @@ License
 
 \*---------------------------------------------------------------------------*/
 
-#include "reactingParcel.H"
+#include "basicReactingParcel.H"
 #include "ReactingCloud.H"
 #include "ManualInjection.H"
 #include "NoInjection.H"
 
 namespace Foam
 {
-    makeInjectionModel(KinematicCloud<reactingParcel>);
+    makeInjectionModel(KinematicCloud<basicReactingParcel>);
 
     // Add instances of injection model to the table
-    makeInjectionModelType(ManualInjection, KinematicCloud, reactingParcel);
-    makeInjectionModelType(NoInjection, KinematicCloud, reactingParcel);
+    makeInjectionModelType
+    (
+        ManualInjection,
+        KinematicCloud,
+        basicReactingParcel
+    );
+    makeInjectionModelType
+    (
+        NoInjection,
+        KinematicCloud,
+        basicReactingParcel
+    );
 };
 
 
diff --git a/src/lagrangian/intermediate/parcels/derived/reactingParcel/makeReactingParcelMassTransferModels.C b/src/lagrangian/intermediate/parcels/derived/basicReactingParcel/makeBasicReactingParcelMassTransferModels.C
similarity index 91%
rename from src/lagrangian/intermediate/parcels/derived/reactingParcel/makeReactingParcelMassTransferModels.C
rename to src/lagrangian/intermediate/parcels/derived/basicReactingParcel/makeBasicReactingParcelMassTransferModels.C
index 6768b459c79..b6347d5353d 100644
--- a/src/lagrangian/intermediate/parcels/derived/reactingParcel/makeReactingParcelMassTransferModels.C
+++ b/src/lagrangian/intermediate/parcels/derived/basicReactingParcel/makeBasicReactingParcelMassTransferModels.C
@@ -24,7 +24,7 @@ License
 
 \*---------------------------------------------------------------------------*/
 
-#include "reactingParcel.H"
+#include "basicReactingParcel.H"
 #include "ThermoCloud.H"
 #include "NoMassTransfer.H"
 #include "ConstantRateDevolatilisation.H"
@@ -32,26 +32,26 @@ License
 
 namespace Foam
 {
-    makeMassTransferModel(ReactingCloud<reactingParcel>);
+    makeMassTransferModel(ReactingCloud<basicReactingParcel>);
 
     // Add instances of mass transfer model to the table
     makeMassTransferModelType
     (
         NoMassTransfer,
         ReactingCloud,
-        reactingParcel
+        basicReactingParcel
     );
     makeMassTransferModelType
     (
         ConstantRateDevolatilisation,
         ReactingCloud,
-        reactingParcel
+        basicReactingParcel
     );
     makeMassTransferModelType
     (
         SingleKineticRateDevolatilisation,
         ReactingCloud,
-        reactingParcel
+        basicReactingParcel
     );
 };
 
diff --git a/src/lagrangian/intermediate/parcels/derived/reactingParcel/makeReactingParcelSurfaceReactionModels.C b/src/lagrangian/intermediate/parcels/derived/basicReactingParcel/makeBasicReactingParcelSurfaceReactionModels.C
similarity index 92%
rename from src/lagrangian/intermediate/parcels/derived/reactingParcel/makeReactingParcelSurfaceReactionModels.C
rename to src/lagrangian/intermediate/parcels/derived/basicReactingParcel/makeBasicReactingParcelSurfaceReactionModels.C
index 5392a1dacaf..8cf01454056 100644
--- a/src/lagrangian/intermediate/parcels/derived/reactingParcel/makeReactingParcelSurfaceReactionModels.C
+++ b/src/lagrangian/intermediate/parcels/derived/basicReactingParcel/makeBasicReactingParcelSurfaceReactionModels.C
@@ -24,20 +24,20 @@ License
 
 \*---------------------------------------------------------------------------*/
 
-#include "reactingParcel.H"
+#include "basicReactingParcel.H"
 #include "ReactingCloud.H"
 #include "NoSurfaceReaction.H"
 
 namespace Foam
 {
-    makeSurfaceReactionModel(ReactingCloud<reactingParcel>);
+    makeSurfaceReactionModel(ReactingCloud<basicReactingParcel>);
 
     // Add instances of surface reaction model to the table
     makeSurfaceReactionModelType
     (
         NoSurfaceReaction,
         ReactingCloud,
-        reactingParcel
+        basicReactingParcel
     );
 };
 
diff --git a/src/lagrangian/intermediate/parcels/derived/kinematicParcel/makeKinematicParcelWallInteractionModels.C b/src/lagrangian/intermediate/parcels/derived/basicReactingParcel/makeBasicReactingParcelWallInteractionModels.C
similarity index 83%
rename from src/lagrangian/intermediate/parcels/derived/kinematicParcel/makeKinematicParcelWallInteractionModels.C
rename to src/lagrangian/intermediate/parcels/derived/basicReactingParcel/makeBasicReactingParcelWallInteractionModels.C
index 67e8930eedb..688350fe048 100644
--- a/src/lagrangian/intermediate/parcels/derived/kinematicParcel/makeKinematicParcelWallInteractionModels.C
+++ b/src/lagrangian/intermediate/parcels/derived/basicReactingParcel/makeBasicReactingParcelWallInteractionModels.C
@@ -24,22 +24,28 @@ License
 
 \*---------------------------------------------------------------------------*/
 
-#include "kinematicParcel.H"
+#include "basicReactingParcel.H"
 #include "KinematicCloud.H"
 #include "Rebound.H"
 #include "StandardWallInteraction.H"
 
 namespace Foam
 {
-    makeWallInteractionModel(KinematicCloud<kinematicParcel>);
+    makeWallInteractionModel(KinematicCloud<basicReactingParcel>);
+//    makeWallInteractionModel(ReactingCloud<basicReactingParcel>);
 
     // Add instances of wall interaction model to the table
-    makeWallInteractionModelType(Rebound, KinematicCloud, kinematicParcel);
+    makeWallInteractionModelType
+    (
+        Rebound,
+        KinematicCloud,
+        basicReactingParcel
+    );
     makeWallInteractionModelType
     (
         StandardWallInteraction,
         KinematicCloud,
-        kinematicParcel
+        basicReactingParcel
     );
 };
 
diff --git a/src/lagrangian/intermediate/parcels/derived/thermoParcel/thermoParcel.C b/src/lagrangian/intermediate/parcels/derived/basicThermoParcel/basicThermoParcel.C
similarity index 79%
rename from src/lagrangian/intermediate/parcels/derived/thermoParcel/thermoParcel.C
rename to src/lagrangian/intermediate/parcels/derived/basicThermoParcel/basicThermoParcel.C
index 4667cc3880e..d392cb15b0f 100644
--- a/src/lagrangian/intermediate/parcels/derived/thermoParcel/thermoParcel.C
+++ b/src/lagrangian/intermediate/parcels/derived/basicThermoParcel/basicThermoParcel.C
@@ -24,23 +24,23 @@ License
 
 \*---------------------------------------------------------------------------*/
 
-#include "thermoParcel.H"
+#include "basicThermoParcel.H"
 
 // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
 
 namespace Foam
 {
-    defineTypeNameAndDebug(thermoParcel, 0);
-    defineParticleTypeNameAndDebug(thermoParcel, 0);
-    defineParcelTypeNameAndDebug(thermoParcel, 0);
+    defineTypeNameAndDebug(basicThermoParcel, 0);
+    defineParticleTypeNameAndDebug(basicThermoParcel, 0);
+    defineParcelTypeNameAndDebug(basicThermoParcel, 0);
 };
 
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
-Foam::thermoParcel::thermoParcel
+Foam::basicThermoParcel::basicThermoParcel
 (
-    ThermoCloud<thermoParcel>& owner,
+    ThermoCloud<basicThermoParcel>& owner,
     const label typeId,
     const vector position,
     const label celli,
@@ -50,7 +50,7 @@ Foam::thermoParcel::thermoParcel
     const constantProperties& constProps
 )
 :
-    ThermoParcel<thermoParcel>
+    ThermoParcel<basicThermoParcel>
     (
         owner,
         typeId,
@@ -64,20 +64,20 @@ Foam::thermoParcel::thermoParcel
 {}
 
 
-Foam::thermoParcel::thermoParcel
+Foam::basicThermoParcel::basicThermoParcel
 (
-    const Cloud<thermoParcel>& cloud,
+    const Cloud<basicThermoParcel>& cloud,
     Istream& is,
     bool readFields
 )
 :
-    ThermoParcel<thermoParcel>(cloud, is, readFields)
+    ThermoParcel<basicThermoParcel>(cloud, is, readFields)
 {}
 
 
 // * * * * * * * * * * * * * * * *  Destructors  * * * * * * * * * * * * * * //
 
-Foam::thermoParcel::~thermoParcel()
+Foam::basicThermoParcel::~basicThermoParcel()
 {}
 
 
diff --git a/src/lagrangian/intermediate/parcels/derived/thermoParcel/thermoParcel.H b/src/lagrangian/intermediate/parcels/derived/basicThermoParcel/basicThermoParcel.H
similarity index 79%
rename from src/lagrangian/intermediate/parcels/derived/thermoParcel/thermoParcel.H
rename to src/lagrangian/intermediate/parcels/derived/basicThermoParcel/basicThermoParcel.H
index b7eb05497ea..89034063533 100644
--- a/src/lagrangian/intermediate/parcels/derived/thermoParcel/thermoParcel.H
+++ b/src/lagrangian/intermediate/parcels/derived/basicThermoParcel/basicThermoParcel.H
@@ -23,18 +23,18 @@ License
     Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
 
 Class
-    Foam::thermoParcel
+    Foam::basicThermoParcel
 
 Description
 
 
 SourceFiles
-    thermoParcel.C
+    basicThermoParcel.C
 
 \*---------------------------------------------------------------------------*/
 
-#ifndef thermoParcel_H
-#define thermoParcel_H
+#ifndef basicThermoParcel_H
+#define basicThermoParcel_H
 
 #include "ThermoParcel.H"
 
@@ -44,25 +44,25 @@ namespace Foam
 {
 
 /*---------------------------------------------------------------------------*\
-                         Class thermoParcel Declaration
+                         Class basicThermoParcel Declaration
 \*---------------------------------------------------------------------------*/
 
-class thermoParcel
+class basicThermoParcel
 :
-    public ThermoParcel<thermoParcel>
+    public ThermoParcel<basicThermoParcel>
 {
 
 public:
 
     //- Runtime type information
-    TypeName("thermoParcel");
+    TypeName("basicThermoParcel");
 
     // Constructors
 
        //- Construct from components
-       thermoParcel
+       basicThermoParcel
        (
-            ThermoCloud<thermoParcel>& owner,
+            ThermoCloud<basicThermoParcel>& owner,
             const label typeId,
             const vector position,
             const label celli,
@@ -73,28 +73,28 @@ public:
         );
 
         //- Construct from Istream
-        thermoParcel
+        basicThermoParcel
         (
-            const Cloud<thermoParcel>& c,
+            const Cloud<basicThermoParcel>& c,
             Istream& is,
             bool readFields = true
         );
 
         //- Construct and return a clone
-        autoPtr<thermoParcel> clone() const
+        autoPtr<basicThermoParcel> clone() const
         {
-            return autoPtr<thermoParcel>(new thermoParcel(*this));
+            return autoPtr<basicThermoParcel>(new basicThermoParcel(*this));
         }
 
 
     // Destructors
 
-        virtual ~thermoParcel();
+        virtual ~basicThermoParcel();
 };
 
 
 template<>
-inline bool contiguous<thermoParcel>()
+inline bool contiguous<basicThermoParcel>()
 {
     return true;
 }
diff --git a/src/lagrangian/intermediate/parcels/derived/thermoParcel/defineThermoParcel.C b/src/lagrangian/intermediate/parcels/derived/basicThermoParcel/defineBasicThermoParcel.C
similarity index 66%
rename from src/lagrangian/intermediate/parcels/derived/thermoParcel/defineThermoParcel.C
rename to src/lagrangian/intermediate/parcels/derived/basicThermoParcel/defineBasicThermoParcel.C
index a807484782b..8d5b906e315 100644
--- a/src/lagrangian/intermediate/parcels/derived/thermoParcel/defineThermoParcel.C
+++ b/src/lagrangian/intermediate/parcels/derived/basicThermoParcel/defineBasicThermoParcel.C
@@ -24,23 +24,23 @@ License
 
 \*---------------------------------------------------------------------------*/
 
-#include "thermoParcel.H"
+#include "basicThermoParcel.H"
 #include "ThermoCloud.H"
 
 namespace Foam
 {
-    defineTemplateTypeNameAndDebug(Cloud<thermoParcel>, 0);
+    defineTemplateTypeNameAndDebug(Cloud<basicThermoParcel>, 0);
 
-    defineParcelTypeNameAndDebug(KinematicParcel<thermoParcel>, 0);
-//    defineTemplateTypeNameAndDebug(KinematicParcel<thermoParcel>, 0);
-    defineParcelTypeNameAndDebug(ThermoParcel<thermoParcel>, 0);
-    defineTemplateTypeNameAndDebug(ThermoParcel<thermoParcel>, 0);
+    defineParcelTypeNameAndDebug(KinematicParcel<basicThermoParcel>, 0);
+//    defineTemplateTypeNameAndDebug(KinematicParcel<basicThermoParcel>, 0);
+    defineParcelTypeNameAndDebug(ThermoParcel<basicThermoParcel>, 0);
+    defineTemplateTypeNameAndDebug(ThermoParcel<basicThermoParcel>, 0);
 
-    defineParcelTypeNameAndDebug(KinematicCloud<thermoParcel>, 0);
-//    defineTemplateTypeNameAndDebug(KinematicCloud<thermoParcel>, 0);
+    defineParcelTypeNameAndDebug(KinematicCloud<basicThermoParcel>, 0);
+//    defineTemplateTypeNameAndDebug(KinematicCloud<basicThermoParcel>, 0);
 
-    defineParcelTypeNameAndDebug(ThermoCloud<thermoParcel>, 0);
-//    defineTemplateTypeNameAndDebug(ThermoCloud<thermoParcel>, 0);
+    defineParcelTypeNameAndDebug(ThermoCloud<basicThermoParcel>, 0);
+//    defineTemplateTypeNameAndDebug(ThermoCloud<basicThermoParcel>, 0);
 };
 
 
diff --git a/src/lagrangian/intermediate/parcels/derived/thermoParcel/makeThermoParcelDispersionModels.C b/src/lagrangian/intermediate/parcels/derived/basicThermoParcel/makeBasicThermoParcelDispersionModels.C
similarity index 88%
rename from src/lagrangian/intermediate/parcels/derived/thermoParcel/makeThermoParcelDispersionModels.C
rename to src/lagrangian/intermediate/parcels/derived/basicThermoParcel/makeBasicThermoParcelDispersionModels.C
index 9061d6ed93f..9c23ac59946 100644
--- a/src/lagrangian/intermediate/parcels/derived/thermoParcel/makeThermoParcelDispersionModels.C
+++ b/src/lagrangian/intermediate/parcels/derived/basicThermoParcel/makeBasicThermoParcelDispersionModels.C
@@ -24,7 +24,7 @@ License
 
 \*---------------------------------------------------------------------------*/
 
-#include "thermoParcel.H"
+#include "basicThermoParcel.H"
 #include "KinematicCloud.H"
 #include "NoDispersion.H"
 #include "GradientDispersionRAS.H"
@@ -32,11 +32,11 @@ License
 
 namespace Foam
 {
-    makeDispersionModel(KinematicCloud<thermoParcel>);
+    makeDispersionModel(KinematicCloud<basicThermoParcel>);
 
     defineNamedTemplateTypeNameAndDebug
     (
-        DispersionRASModel<KinematicCloud<thermoParcel> >,
+        DispersionRASModel<KinematicCloud<basicThermoParcel> >,
         0
     );
 
@@ -45,19 +45,19 @@ namespace Foam
     (
         NoDispersion,
         KinematicCloud,
-        thermoParcel
+        basicThermoParcel
     );
     makeDispersionModelType
     (
         GradientDispersionRAS,
         KinematicCloud,
-        thermoParcel
+        basicThermoParcel
     );
     makeDispersionModelType
     (
         StochasticDispersionRAS,
         KinematicCloud,
-        thermoParcel
+        basicThermoParcel
     );
 };
 
diff --git a/src/lagrangian/intermediate/parcels/derived/thermoParcel/makeThermoParcelDragModels.C b/src/lagrangian/intermediate/parcels/derived/basicThermoParcel/makeBasicThermoParcelDragModels.C
similarity index 86%
rename from src/lagrangian/intermediate/parcels/derived/thermoParcel/makeThermoParcelDragModels.C
rename to src/lagrangian/intermediate/parcels/derived/basicThermoParcel/makeBasicThermoParcelDragModels.C
index 6899dfd07c9..8166e0ad462 100644
--- a/src/lagrangian/intermediate/parcels/derived/thermoParcel/makeThermoParcelDragModels.C
+++ b/src/lagrangian/intermediate/parcels/derived/basicThermoParcel/makeBasicThermoParcelDragModels.C
@@ -24,18 +24,18 @@ License
 
 \*---------------------------------------------------------------------------*/
 
-#include "thermoParcel.H"
+#include "basicThermoParcel.H"
 #include "KinematicCloud.H"
 #include "NoDrag.H"
 #include "SphereDrag.H"
 
 namespace Foam
 {
-    makeDragModel(KinematicCloud<thermoParcel>);
+    makeDragModel(KinematicCloud<basicThermoParcel>);
 
     // Add instances of drag model to the table
-    makeDragModelType(NoDrag, KinematicCloud, thermoParcel);
-    makeDragModelType(SphereDrag, KinematicCloud, thermoParcel);
+    makeDragModelType(NoDrag, KinematicCloud, basicThermoParcel);
+    makeDragModelType(SphereDrag, KinematicCloud, basicThermoParcel);
 };
 
 
diff --git a/src/lagrangian/intermediate/parcels/derived/reactingParcel/makeReactingParcelHeatTransferModels.C b/src/lagrangian/intermediate/parcels/derived/basicThermoParcel/makeBasicThermoParcelHeatTransferModels.C
similarity index 85%
rename from src/lagrangian/intermediate/parcels/derived/reactingParcel/makeReactingParcelHeatTransferModels.C
rename to src/lagrangian/intermediate/parcels/derived/basicThermoParcel/makeBasicThermoParcelHeatTransferModels.C
index 3291f4eb8ad..daed9b5bb5a 100644
--- a/src/lagrangian/intermediate/parcels/derived/reactingParcel/makeReactingParcelHeatTransferModels.C
+++ b/src/lagrangian/intermediate/parcels/derived/basicThermoParcel/makeBasicThermoParcelHeatTransferModels.C
@@ -24,18 +24,18 @@ License
 
 \*---------------------------------------------------------------------------*/
 
-#include "reactingParcel.H"
+#include "basicThermoParcel.H"
 #include "ThermoCloud.H"
 #include "NoHeatTransfer.H"
 #include "RanzMarshall.H"
 
 namespace Foam
 {
-    makeHeatTransferModel(ThermoCloud<reactingParcel>);
+    makeHeatTransferModel(ThermoCloud<basicThermoParcel>);
 
     // Add instances of heat transfer model to the table
-    makeHeatTransferModelType(NoHeatTransfer, ThermoCloud, reactingParcel);
-    makeHeatTransferModelType(RanzMarshall, ThermoCloud, reactingParcel);
+    makeHeatTransferModelType(NoHeatTransfer, ThermoCloud, basicThermoParcel);
+    makeHeatTransferModelType(RanzMarshall, ThermoCloud, basicThermoParcel);
 };
 
 
diff --git a/src/lagrangian/intermediate/parcels/derived/thermoParcel/makeThermoParcelInjectionModels.C b/src/lagrangian/intermediate/parcels/derived/basicThermoParcel/makeBasicThermoParcelInjectionModels.C
similarity index 85%
rename from src/lagrangian/intermediate/parcels/derived/thermoParcel/makeThermoParcelInjectionModels.C
rename to src/lagrangian/intermediate/parcels/derived/basicThermoParcel/makeBasicThermoParcelInjectionModels.C
index fb12cd9e158..357ba824988 100644
--- a/src/lagrangian/intermediate/parcels/derived/thermoParcel/makeThermoParcelInjectionModels.C
+++ b/src/lagrangian/intermediate/parcels/derived/basicThermoParcel/makeBasicThermoParcelInjectionModels.C
@@ -24,19 +24,19 @@ License
 
 \*---------------------------------------------------------------------------*/
 
-#include "thermoParcel.H"
+#include "basicThermoParcel.H"
 #include "ThermoCloud.H"
 #include "NoInjection.H"
 #include "ManualInjection.H"
 
 namespace Foam
 {
-    makeInjectionModel(KinematicCloud<thermoParcel>);
+    makeInjectionModel(KinematicCloud<basicThermoParcel>);
 
     // Add instances of injection model to the table
-    makeInjectionModelType(NoInjection, KinematicCloud, thermoParcel);
+    makeInjectionModelType(NoInjection, KinematicCloud, basicThermoParcel);
 
-    makeInjectionModelType(ManualInjection, KinematicCloud, thermoParcel);
+    makeInjectionModelType(ManualInjection, KinematicCloud, basicThermoParcel);
 };
 
 
diff --git a/src/lagrangian/intermediate/parcels/derived/thermoParcel/makeThermoParcelWallInteractionModels.C b/src/lagrangian/intermediate/parcels/derived/basicThermoParcel/makeBasicThermoParcelWallInteractionModels.C
similarity index 91%
rename from src/lagrangian/intermediate/parcels/derived/thermoParcel/makeThermoParcelWallInteractionModels.C
rename to src/lagrangian/intermediate/parcels/derived/basicThermoParcel/makeBasicThermoParcelWallInteractionModels.C
index aab77c9b70d..fc79685f3ae 100644
--- a/src/lagrangian/intermediate/parcels/derived/thermoParcel/makeThermoParcelWallInteractionModels.C
+++ b/src/lagrangian/intermediate/parcels/derived/basicThermoParcel/makeBasicThermoParcelWallInteractionModels.C
@@ -24,27 +24,27 @@ License
 
 \*---------------------------------------------------------------------------*/
 
-#include "thermoParcel.H"
+#include "basicThermoParcel.H"
 #include "KinematicCloud.H"
 #include "Rebound.H"
 #include "StandardWallInteraction.H"
 
 namespace Foam
 {
-    makeWallInteractionModel(KinematicCloud<thermoParcel>);
+    makeWallInteractionModel(KinematicCloud<basicThermoParcel>);
 
     // Add instances of wall interaction model to the table
     makeWallInteractionModelType
     (
         Rebound,
         KinematicCloud,
-        thermoParcel
+        basicThermoParcel
     );
     makeWallInteractionModelType
     (
         StandardWallInteraction,
         KinematicCloud,
-        thermoParcel
+        basicThermoParcel
     );
 };
 
diff --git a/src/lagrangian/intermediate/submodels/Thermodynamic/HeatTransferModel/HeatTransferModel/HeatTransferModel.H b/src/lagrangian/intermediate/submodels/Thermodynamic/HeatTransferModel/HeatTransferModel/HeatTransferModel.H
index 5b93537a5b9..e1ae0b7383c 100644
--- a/src/lagrangian/intermediate/submodels/Thermodynamic/HeatTransferModel/HeatTransferModel/HeatTransferModel.H
+++ b/src/lagrangian/intermediate/submodels/Thermodynamic/HeatTransferModel/HeatTransferModel/HeatTransferModel.H
@@ -40,7 +40,6 @@ SourceFiles
 
 #include "IOdictionary.H"
 #include "autoPtr.H"
-//#include "KinematicCloud.H"
 #include "runTimeSelectionTables.H"
 
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
-- 
GitLab