From 0f80edf285bbf432b85542ce2ef785f53de06e4a Mon Sep 17 00:00:00 2001
From: andy <a.heather@opencfd.co.uk>
Date: Mon, 2 Mar 2009 15:39:27 +0000
Subject: [PATCH] better treatment for 'none' option - added new constructor to
 base classes

read/write injector props to uniform for clean restarts
---
 .../Kinematic/DragModel/NoDrag/NoDrag.H       |   8 +-
 .../InjectionModel/InjectionModel.C           | 101 ++++++++++++++++--
 .../InjectionModel/InjectionModel.H           |  27 +++--
 .../InjectionModel/NoInjection/NoInjection.C  |   4 +-
 .../InjectionModel/NoInjection/NoInjection.H  |  10 +-
 .../NoPhaseChange/NoPhaseChange.C             |   6 +-
 .../NoPhaseChange/NoPhaseChange.H             |  10 +-
 .../PhaseChangeModel/PhaseChangeModel.C       |  11 ++
 .../PhaseChangeModel/PhaseChangeModel.H       |   3 +
 .../NoSurfaceReaction/NoSurfaceReaction.H     |   4 +-
 .../SurfaceReactionModel.C                    |  15 ++-
 .../SurfaceReactionModel.H                    |   3 +
 .../DevolatilisationModel.C                   |  15 ++-
 .../DevolatilisationModel.H                   |   3 +
 .../NoDevolatilisation/NoDevolatilisation.C   |   6 +-
 .../NoDevolatilisation/NoDevolatilisation.H   |  10 +-
 .../HeatTransferModel/HeatTransferModel.C     |   9 ++
 .../HeatTransferModel/HeatTransferModel.H     |   3 +
 .../NoHeatTransfer/NoHeatTransfer.C           |   6 +-
 .../NoHeatTransfer/NoHeatTransfer.H           |  12 +--
 20 files changed, 200 insertions(+), 66 deletions(-)

diff --git a/src/lagrangian/intermediate/submodels/Kinematic/DragModel/NoDrag/NoDrag.H b/src/lagrangian/intermediate/submodels/Kinematic/DragModel/NoDrag/NoDrag.H
index c05a7b3e043..b017f50270a 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/DragModel/NoDrag/NoDrag.H
+++ b/src/lagrangian/intermediate/submodels/Kinematic/DragModel/NoDrag/NoDrag.H
@@ -26,7 +26,7 @@ Class
     Foam::NoDrag
 
 Description
-    Dummy drag model for 'no drag'
+    Dummy drag model for 'none'
 
 \*---------------------------------------------------------------------------*/
 
@@ -51,7 +51,7 @@ class NoDrag
 public:
 
     //- Runtime type information
-    TypeName("NoDrag");
+    TypeName("none");
 
 
     // Constructors
@@ -59,8 +59,8 @@ public:
         //- Construct from dictionary
         NoDrag
         (
-            const dictionary& dict,
-            CloudType& owner
+            const dictionary&,
+            CloudType&
         );
 
 
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InjectionModel/InjectionModel.C b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InjectionModel/InjectionModel.C
index 0dd1b106c94..0aaeb44cd46 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InjectionModel/InjectionModel.C
+++ b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InjectionModel/InjectionModel.C
@@ -29,6 +29,61 @@ License
 
 // * * * * * * * * * * * Protected Member Functions  * * * * * * * * * * * * //
 
+template<class CloudType>
+void Foam::InjectionModel<CloudType>::readProps()
+{
+    IOobject propsDictHeader
+    (
+        "injectionProperties",
+        owner_.db().time().timeName(),
+        "uniform/Lagrangian"/owner_.name(),
+        owner_.db(),
+        IOobject::MUST_READ,
+        IOobject::NO_WRITE,
+        false
+    );
+
+    if (propsDictHeader.headerOk())
+    {
+        const IOdictionary propsDict(propsDictHeader);
+
+        propsDict.readIfPresent("massInjected", massInjected_);
+        propsDict.readIfPresent("nInjections", nInjections_);
+        propsDict.readIfPresent("parcelsAddedTotal", parcelsAddedTotal_);
+        propsDict.readIfPresent("timeStep0", timeStep0_);
+    }
+}
+
+
+template<class CloudType>
+void Foam::InjectionModel<CloudType>::writeProps()
+{
+    if (owner_.db().time().outputTime())
+    {
+        IOdictionary propsDict
+        (
+            IOobject
+            (
+                "injectionProperties",
+                owner_.db().time().timeName(),
+                "uniform/Lagrangian"/owner_.name(),
+                owner_.db(),
+                IOobject::NO_READ,
+                IOobject::NO_WRITE,
+                false
+            )
+        );
+
+        propsDict.add("massInjected", massInjected_);
+        propsDict.add("nInjections", nInjections_);
+        propsDict.add("parcelsAddedTotal", parcelsAddedTotal_);
+        propsDict.add("timeStep0", timeStep0_);
+
+        propsDict.regIOobject::write();
+    }
+}
+
+
 template<class CloudType>
 void Foam::InjectionModel<CloudType>::prepareForNextTimeStep
 (
@@ -114,7 +169,7 @@ void Foam::InjectionModel<CloudType>::findCellAtPosition
     {
         FatalErrorIn
         (
-            "Foam::InjectionModel<CloudType>::findCellAtPosition"
+            "Foam::InjectionModel<CloudType>::findCellAtPosition\n"
             "(\n"
             "    label&,\n"
             "    vector&\n"
@@ -156,7 +211,7 @@ Foam::scalar Foam::InjectionModel<CloudType>::setNumberOfParticles
             FatalErrorIn
             (
                 "Foam::scalar "
-                "Foam::InjectionModel<CloudType>::setNumberOfParticles"
+                "Foam::InjectionModel<CloudType>::setNumberOfParticles\n"
                 "(\n"
                 "    const label,\n"
                 "    const scalar,\n"
@@ -186,19 +241,42 @@ void Foam::InjectionModel<CloudType>::postInjectCheck()
     // Increment total number of parcels added
     parcelsAddedTotal_ += parcelsAdded_;
 
-    // Reset parcel counters
-    parcelsAdded_ = 0;
-
     // Update time for start of next injection
     time0_ = owner_.db().time().value();
 
     // Increment number of injections
     nInjections_++;
+
+    // Reset added parcels counter
+    parcelsAdded_ = 0;
+
+    writeProps();
 }
 
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
+template<class CloudType>
+Foam::InjectionModel<CloudType>::InjectionModel(CloudType& owner)
+:
+    dict_(dictionary::null),
+    owner_(owner),
+    coeffDict_(dictionary::null),
+    SOI_(0.0),
+    volumeTotal_(0.0),
+    massTotal_(0.0),
+    massInjected_(0.0),
+    nInjections_(0),
+    parcelsAdded_(0),
+    parcelsAddedTotal_(0),
+    parcelBasis_(pbNumber),
+    time0_(0.0),
+    timeStep0_(0.0)
+{
+    readProps();
+}
+
+
 template<class CloudType>
 Foam::InjectionModel<CloudType>::InjectionModel
 (
@@ -206,7 +284,8 @@ Foam::InjectionModel<CloudType>::InjectionModel
     CloudType& owner,
     const word& type
 )
-:   dict_(dict),
+:
+    dict_(dict),
     owner_(owner),
     coeffDict_(dict.subDict(type + "Coeffs")),
     SOI_(readScalar(coeffDict_.lookup("SOI"))),
@@ -216,16 +295,16 @@ Foam::InjectionModel<CloudType>::InjectionModel
     nInjections_(0),
     parcelsAdded_(0),
     parcelsAddedTotal_(0),
-    parcelBasisType_(coeffDict_.lookup("parcelBasisType")),
     parcelBasis_(pbNumber),
     time0_(owner.db().time().value()),
     timeStep0_(0.0)
 {
-    if (parcelBasisType_ == "mass")
+    word parcelBasisType = coeffDict_.lookup("parcelBasisType");
+    if (parcelBasisType == "mass")
     {
         parcelBasis_ = pbMass;
     }
-    else if (parcelBasisType_ == "number")
+    else if (parcelBasisType == "number")
     {
         parcelBasis_ = pbNumber;
     }
@@ -233,7 +312,7 @@ Foam::InjectionModel<CloudType>::InjectionModel
     {
         FatalErrorIn
         (
-            "Foam::InjectionModel<CloudType>::InjectionModel"
+            "Foam::InjectionModel<CloudType>::InjectionModel\n"
             "(\n"
             "    const dictionary&,\n"
             "    CloudType&,\n"
@@ -242,6 +321,8 @@ Foam::InjectionModel<CloudType>::InjectionModel
         )<< "parcelBasisType must be either 'number' or 'mass'" << nl
          << exit(FatalError);
     }
+
+    readProps();
 }
 
 
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InjectionModel/InjectionModel.H b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InjectionModel/InjectionModel.H
index ad2448681e6..dd7d71de248 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InjectionModel/InjectionModel.H
+++ b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InjectionModel/InjectionModel.H
@@ -80,6 +80,15 @@ private:
         const dictionary coeffDict_;
 
 
+    // Private member functions
+
+        //- Read injector properties from previous run (if applicable)
+        void readProps();
+
+        //- Write injector properties
+        void writeProps();
+
+
 protected:
 
     // Protected data
@@ -114,13 +123,8 @@ protected:
 
         // Injection properties per Lagrangian time step
 
-            // Parcel basis
-
-                //- Parcel basis name
-                const word parcelBasisType_;
-
-                //- Parcel basis enumeration
-                parcelBasis parcelBasis_;
+            //- Parcel basis enumeration
+            parcelBasis parcelBasis_;
 
             //- Continuous phase time at start of injection time step [s]
             scalar time0_;
@@ -147,7 +151,7 @@ protected:
 
 
         //- Determine properties for next time step/injection interval
-        void prepareForNextTimeStep
+        virtual void prepareForNextTimeStep
         (
             const scalar time0,
             const scalar time1,
@@ -161,7 +165,7 @@ protected:
         virtual void findCellAtPosition(label& cellI, vector& position);
 
         //- Set number of particles to inject given parcel properties
-        scalar setNumberOfParticles
+        virtual scalar setNumberOfParticles
         (
             const label parcels,
             const scalar volume,
@@ -171,7 +175,7 @@ protected:
         );
 
         //- Post injection checks
-        void postInjectCheck();
+        virtual void postInjectCheck();
 
 
 public:
@@ -195,6 +199,9 @@ public:
 
     // Constructors
 
+        //- Construct null from owner
+        InjectionModel(CloudType& owner);
+
         //- Construct from dictionary
         InjectionModel
         (
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/NoInjection/NoInjection.C b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/NoInjection/NoInjection.C
index 43c03392f67..fcbd1b6981d 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/NoInjection/NoInjection.C
+++ b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/NoInjection/NoInjection.C
@@ -56,11 +56,11 @@ Foam::scalar Foam::NoInjection<CloudType>::volumeToInject
 template<class CloudType>
 Foam::NoInjection<CloudType>::NoInjection
 (
-    const dictionary& dict,
+    const dictionary&,
     CloudType& owner
 )
 :
-    InjectionModel<CloudType>(dict, owner, typeName)
+    InjectionModel<CloudType>(owner)
 {}
 
 
diff --git a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/NoInjection/NoInjection.H b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/NoInjection/NoInjection.H
index d7df9867e25..cb849a4951f 100644
--- a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/NoInjection/NoInjection.H
+++ b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/NoInjection/NoInjection.H
@@ -26,7 +26,7 @@ Class
     Foam::NoInjection
 
 Description
-    Place holder for 'no injection' option
+    Place holder for 'none' option
 
 SourceFiles
     NoInjection.C
@@ -44,7 +44,7 @@ namespace Foam
 {
 
 /*---------------------------------------------------------------------------*\
-                          Class NoInjection Declaration
+                       Class NoInjection Declaration
 \*---------------------------------------------------------------------------*/
 
 template<class CloudType>
@@ -74,7 +74,7 @@ protected:
 public:
 
     //- Runtime type information
-    TypeName("NoInjection");
+    TypeName("none");
 
 
     // Constructors
@@ -82,8 +82,8 @@ public:
         //- Construct from components
         NoInjection
         (
-            const dictionary& dict,
-            CloudType& owner
+            const dictionary&,
+            CloudType&
         );
 
 
diff --git a/src/lagrangian/intermediate/submodels/Reacting/PhaseChangeModel/NoPhaseChange/NoPhaseChange.C b/src/lagrangian/intermediate/submodels/Reacting/PhaseChangeModel/NoPhaseChange/NoPhaseChange.C
index 4029aa05708..06035d7224f 100644
--- a/src/lagrangian/intermediate/submodels/Reacting/PhaseChangeModel/NoPhaseChange/NoPhaseChange.C
+++ b/src/lagrangian/intermediate/submodels/Reacting/PhaseChangeModel/NoPhaseChange/NoPhaseChange.C
@@ -31,11 +31,11 @@ License
 template <class CloudType>
 Foam::NoPhaseChange<CloudType>::NoPhaseChange
 (
-    const dictionary& dict,
-    CloudType& cloud
+    const dictionary&,
+    CloudType& owner
 )
 :
-    PhaseChangeModel<CloudType>(dict, cloud, typeName)
+    PhaseChangeModel<CloudType>(owner)
 {}
 
 
diff --git a/src/lagrangian/intermediate/submodels/Reacting/PhaseChangeModel/NoPhaseChange/NoPhaseChange.H b/src/lagrangian/intermediate/submodels/Reacting/PhaseChangeModel/NoPhaseChange/NoPhaseChange.H
index 74b065b75a8..92a9dd22e5d 100644
--- a/src/lagrangian/intermediate/submodels/Reacting/PhaseChangeModel/NoPhaseChange/NoPhaseChange.H
+++ b/src/lagrangian/intermediate/submodels/Reacting/PhaseChangeModel/NoPhaseChange/NoPhaseChange.H
@@ -26,7 +26,7 @@ Class
     Foam::NoPhaseChange
 
 Description
-    Dummy phase change model for 'no phase change'
+    Dummy phase change model for 'none'
 
 \*---------------------------------------------------------------------------*/
 
@@ -51,17 +51,13 @@ class NoPhaseChange
 public:
 
     //- Runtime type information
-    TypeName("NoPhaseChange");
+    TypeName("none");
 
 
     // Constructors
 
         //- Construct from dictionary
-        NoPhaseChange
-        (
-            const dictionary& dict,
-            CloudType& cloud
-        );
+        NoPhaseChange(const dictionary&, CloudType&);
 
 
     //- Destructor
diff --git a/src/lagrangian/intermediate/submodels/Reacting/PhaseChangeModel/PhaseChangeModel/PhaseChangeModel.C b/src/lagrangian/intermediate/submodels/Reacting/PhaseChangeModel/PhaseChangeModel/PhaseChangeModel.C
index c1871656324..724da1e762f 100644
--- a/src/lagrangian/intermediate/submodels/Reacting/PhaseChangeModel/PhaseChangeModel/PhaseChangeModel.C
+++ b/src/lagrangian/intermediate/submodels/Reacting/PhaseChangeModel/PhaseChangeModel/PhaseChangeModel.C
@@ -28,6 +28,17 @@ License
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
+template<class CloudType>
+Foam::PhaseChangeModel<CloudType>::PhaseChangeModel
+(
+    CloudType& owner
+)
+:   dict_(dictionary::null),
+    owner_(owner),
+    coeffDict_(dictionary::null)
+{}
+
+
 template<class CloudType>
 Foam::PhaseChangeModel<CloudType>::PhaseChangeModel
 (
diff --git a/src/lagrangian/intermediate/submodels/Reacting/PhaseChangeModel/PhaseChangeModel/PhaseChangeModel.H b/src/lagrangian/intermediate/submodels/Reacting/PhaseChangeModel/PhaseChangeModel/PhaseChangeModel.H
index 1a97370529e..22f12088b48 100644
--- a/src/lagrangian/intermediate/submodels/Reacting/PhaseChangeModel/PhaseChangeModel/PhaseChangeModel.H
+++ b/src/lagrangian/intermediate/submodels/Reacting/PhaseChangeModel/PhaseChangeModel/PhaseChangeModel.H
@@ -94,6 +94,9 @@ public:
 
     // Constructors
 
+        //- Construct null from owner
+        PhaseChangeModel(CloudType& owner);
+
         //- Construct from dictionary
         PhaseChangeModel
         (
diff --git a/src/lagrangian/intermediate/submodels/Reacting/SurfaceReactionModel/NoSurfaceReaction/NoSurfaceReaction.H b/src/lagrangian/intermediate/submodels/Reacting/SurfaceReactionModel/NoSurfaceReaction/NoSurfaceReaction.H
index 31776c1bd18..65ff10c0f29 100644
--- a/src/lagrangian/intermediate/submodels/Reacting/SurfaceReactionModel/NoSurfaceReaction/NoSurfaceReaction.H
+++ b/src/lagrangian/intermediate/submodels/Reacting/SurfaceReactionModel/NoSurfaceReaction/NoSurfaceReaction.H
@@ -26,7 +26,7 @@ Class
     Foam::NoSurfaceReaction
 
 Description
-    Dummy Devolatisation model for 'no devolatisation'
+    Dummy surface reaction model for 'none'
 
 \*---------------------------------------------------------------------------*/
 
@@ -51,7 +51,7 @@ class NoSurfaceReaction
 public:
 
     //- Runtime type information
-    TypeName("NoSurfaceReaction");
+    TypeName("none");
 
 
     // Constructors
diff --git a/src/lagrangian/intermediate/submodels/Reacting/SurfaceReactionModel/SurfaceReactionModel/SurfaceReactionModel.C b/src/lagrangian/intermediate/submodels/Reacting/SurfaceReactionModel/SurfaceReactionModel/SurfaceReactionModel.C
index 1173ea1c59d..c9fa9c4fcee 100644
--- a/src/lagrangian/intermediate/submodels/Reacting/SurfaceReactionModel/SurfaceReactionModel/SurfaceReactionModel.C
+++ b/src/lagrangian/intermediate/submodels/Reacting/SurfaceReactionModel/SurfaceReactionModel/SurfaceReactionModel.C
@@ -28,6 +28,18 @@ License
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
+template<class CloudType>
+Foam::SurfaceReactionModel<CloudType>::SurfaceReactionModel
+(
+    CloudType& owner
+)
+:
+    dict_(dictionary::null),
+    owner_(owner),
+    coeffDict_(dictionary::null)
+{}
+
+
 template<class CloudType>
 Foam::SurfaceReactionModel<CloudType>::SurfaceReactionModel
 (
@@ -35,7 +47,8 @@ Foam::SurfaceReactionModel<CloudType>::SurfaceReactionModel
     CloudType& owner,
     const word& type
 )
-:   dict_(dict),
+:
+    dict_(dict),
     owner_(owner),
     coeffDict_(dict.subDict(type + "Coeffs"))
 {}
diff --git a/src/lagrangian/intermediate/submodels/Reacting/SurfaceReactionModel/SurfaceReactionModel/SurfaceReactionModel.H b/src/lagrangian/intermediate/submodels/Reacting/SurfaceReactionModel/SurfaceReactionModel/SurfaceReactionModel.H
index dbeef7c237c..339af3560b1 100644
--- a/src/lagrangian/intermediate/submodels/Reacting/SurfaceReactionModel/SurfaceReactionModel/SurfaceReactionModel.H
+++ b/src/lagrangian/intermediate/submodels/Reacting/SurfaceReactionModel/SurfaceReactionModel/SurfaceReactionModel.H
@@ -91,6 +91,9 @@ public:
 
     // Constructors
 
+        //- Construct null from owner
+        SurfaceReactionModel(CloudType& owner);
+
         //- Construct from dictionary
         SurfaceReactionModel
         (
diff --git a/src/lagrangian/intermediate/submodels/ReactingMultiphase/DevolatilisationModel/DevolatilisationModel/DevolatilisationModel.C b/src/lagrangian/intermediate/submodels/ReactingMultiphase/DevolatilisationModel/DevolatilisationModel/DevolatilisationModel.C
index 913ea7fa1d3..6a3d3efeb23 100644
--- a/src/lagrangian/intermediate/submodels/ReactingMultiphase/DevolatilisationModel/DevolatilisationModel/DevolatilisationModel.C
+++ b/src/lagrangian/intermediate/submodels/ReactingMultiphase/DevolatilisationModel/DevolatilisationModel/DevolatilisationModel.C
@@ -28,6 +28,18 @@ License
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
+template<class CloudType>
+Foam::DevolatilisationModel<CloudType>::DevolatilisationModel
+(
+    CloudType& owner
+)
+:
+    dict_(dictionary::null),
+    owner_(owner),
+    coeffDict_(dictionary::null)
+{}
+
+
 template<class CloudType>
 Foam::DevolatilisationModel<CloudType>::DevolatilisationModel
 (
@@ -35,7 +47,8 @@ Foam::DevolatilisationModel<CloudType>::DevolatilisationModel
     CloudType& owner,
     const word& type
 )
-:   dict_(dict),
+:
+    dict_(dict),
     owner_(owner),
     coeffDict_(dict.subDict(type + "Coeffs"))
 {}
diff --git a/src/lagrangian/intermediate/submodels/ReactingMultiphase/DevolatilisationModel/DevolatilisationModel/DevolatilisationModel.H b/src/lagrangian/intermediate/submodels/ReactingMultiphase/DevolatilisationModel/DevolatilisationModel/DevolatilisationModel.H
index 1195d6a2a09..004482a040f 100644
--- a/src/lagrangian/intermediate/submodels/ReactingMultiphase/DevolatilisationModel/DevolatilisationModel/DevolatilisationModel.H
+++ b/src/lagrangian/intermediate/submodels/ReactingMultiphase/DevolatilisationModel/DevolatilisationModel/DevolatilisationModel.H
@@ -88,6 +88,9 @@ public:
 
     // Constructors
 
+        //- Construct null from owner
+        DevolatilisationModel(CloudType& owner);
+
         //- Construct from dictionary
         DevolatilisationModel
         (
diff --git a/src/lagrangian/intermediate/submodels/ReactingMultiphase/DevolatilisationModel/NoDevolatilisation/NoDevolatilisation.C b/src/lagrangian/intermediate/submodels/ReactingMultiphase/DevolatilisationModel/NoDevolatilisation/NoDevolatilisation.C
index 745fcc8d52c..9d7ff147491 100644
--- a/src/lagrangian/intermediate/submodels/ReactingMultiphase/DevolatilisationModel/NoDevolatilisation/NoDevolatilisation.C
+++ b/src/lagrangian/intermediate/submodels/ReactingMultiphase/DevolatilisationModel/NoDevolatilisation/NoDevolatilisation.C
@@ -31,11 +31,11 @@ License
 template <class CloudType>
 Foam::NoDevolatilisation<CloudType>::NoDevolatilisation
 (
-    const dictionary& dict,
-    CloudType& cloud
+    const dictionary&,
+    CloudType& owner
 )
 :
-    DevolatilisationModel<CloudType>(dict, cloud, typeName)
+    DevolatilisationModel<CloudType>(owner)
 {}
 
 
diff --git a/src/lagrangian/intermediate/submodels/ReactingMultiphase/DevolatilisationModel/NoDevolatilisation/NoDevolatilisation.H b/src/lagrangian/intermediate/submodels/ReactingMultiphase/DevolatilisationModel/NoDevolatilisation/NoDevolatilisation.H
index 5f8462aad70..915547180a6 100644
--- a/src/lagrangian/intermediate/submodels/ReactingMultiphase/DevolatilisationModel/NoDevolatilisation/NoDevolatilisation.H
+++ b/src/lagrangian/intermediate/submodels/ReactingMultiphase/DevolatilisationModel/NoDevolatilisation/NoDevolatilisation.H
@@ -26,7 +26,7 @@ Class
     Foam::NoDevolatilisation
 
 Description
-    Dummy devolatilisation model for 'no devolatilisation'
+    Dummy devolatilisation model for 'none'
 
 \*---------------------------------------------------------------------------*/
 
@@ -52,17 +52,13 @@ class NoDevolatilisation
 public:
 
     //- Runtime type information
-    TypeName("NoDevolatilisation");
+    TypeName("none");
 
 
     // Constructors
 
         //- Construct from dictionary
-        NoDevolatilisation
-        (
-            const dictionary& dict,
-            CloudType& cloud
-        );
+        NoDevolatilisation(const dictionary&, CloudType& owner);
 
 
     //- Destructor
diff --git a/src/lagrangian/intermediate/submodels/Thermodynamic/HeatTransferModel/HeatTransferModel/HeatTransferModel.C b/src/lagrangian/intermediate/submodels/Thermodynamic/HeatTransferModel/HeatTransferModel/HeatTransferModel.C
index c94fe00d4a2..f294d382a71 100644
--- a/src/lagrangian/intermediate/submodels/Thermodynamic/HeatTransferModel/HeatTransferModel/HeatTransferModel.C
+++ b/src/lagrangian/intermediate/submodels/Thermodynamic/HeatTransferModel/HeatTransferModel/HeatTransferModel.C
@@ -28,6 +28,15 @@ License
 
 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
 
+template<class CloudType>
+Foam::HeatTransferModel<CloudType>::HeatTransferModel(CloudType& owner)
+:
+    dict_(dictionary::null),
+    owner_(owner),
+    coeffDict_(dictionary::null)
+{}
+
+
 template<class CloudType>
 Foam::HeatTransferModel<CloudType>::HeatTransferModel
 (
diff --git a/src/lagrangian/intermediate/submodels/Thermodynamic/HeatTransferModel/HeatTransferModel/HeatTransferModel.H b/src/lagrangian/intermediate/submodels/Thermodynamic/HeatTransferModel/HeatTransferModel/HeatTransferModel.H
index cfb5c32c5f4..1924be16c9b 100644
--- a/src/lagrangian/intermediate/submodels/Thermodynamic/HeatTransferModel/HeatTransferModel/HeatTransferModel.H
+++ b/src/lagrangian/intermediate/submodels/Thermodynamic/HeatTransferModel/HeatTransferModel/HeatTransferModel.H
@@ -86,6 +86,9 @@ public:
 
     // Constructors
 
+        //- Construct null from owner
+        HeatTransferModel(CloudType& owner);
+
         //- Construct from dictionary
         HeatTransferModel
         (
diff --git a/src/lagrangian/intermediate/submodels/Thermodynamic/HeatTransferModel/NoHeatTransfer/NoHeatTransfer.C b/src/lagrangian/intermediate/submodels/Thermodynamic/HeatTransferModel/NoHeatTransfer/NoHeatTransfer.C
index ab80ae9895f..c50dd4d511f 100644
--- a/src/lagrangian/intermediate/submodels/Thermodynamic/HeatTransferModel/NoHeatTransfer/NoHeatTransfer.C
+++ b/src/lagrangian/intermediate/submodels/Thermodynamic/HeatTransferModel/NoHeatTransfer/NoHeatTransfer.C
@@ -31,11 +31,11 @@ License
 template <class CloudType>
 Foam::NoHeatTransfer<CloudType>::NoHeatTransfer
 (
-    const dictionary& dict,
-    CloudType& cloud
+    const dictionary&,
+    CloudType& owner
 )
 :
-    HeatTransferModel<CloudType>(dict, cloud, typeName)
+    HeatTransferModel<CloudType>(owner)
 {}
 
 
diff --git a/src/lagrangian/intermediate/submodels/Thermodynamic/HeatTransferModel/NoHeatTransfer/NoHeatTransfer.H b/src/lagrangian/intermediate/submodels/Thermodynamic/HeatTransferModel/NoHeatTransfer/NoHeatTransfer.H
index 89112fef533..f03b4b3dc5f 100644
--- a/src/lagrangian/intermediate/submodels/Thermodynamic/HeatTransferModel/NoHeatTransfer/NoHeatTransfer.H
+++ b/src/lagrangian/intermediate/submodels/Thermodynamic/HeatTransferModel/NoHeatTransfer/NoHeatTransfer.H
@@ -26,7 +26,7 @@ Class
     Foam::NoHeatTransfer
 
 Description
-    Dummy heat transfer model for 'no heat transfer'
+    Dummy heat transfer model for 'none'
 
 \*---------------------------------------------------------------------------*/
 
@@ -40,7 +40,7 @@ Description
 namespace Foam
 {
 /*---------------------------------------------------------------------------*\
-                          Class NoHeatTransfer Declaration
+                       Class NoHeatTransfer Declaration
 \*---------------------------------------------------------------------------*/
 
 template<class CloudType>
@@ -51,17 +51,13 @@ class NoHeatTransfer
 public:
 
     //- Runtime type information
-    TypeName("NoHeatTransfer");
+    TypeName("none");
 
 
     // Constructors
 
         //- Construct from dictionary
-        NoHeatTransfer
-        (
-            const dictionary& dict,
-            CloudType& cloud
-        );
+        NoHeatTransfer(const dictionary&, CloudType& owner);
 
 
     //- Destructor
-- 
GitLab