From cba4af2700bcdf4a1780a5ce0d5fc92725e9cf45 Mon Sep 17 00:00:00 2001
From: andy <a.heather@opencfd.co.uk>
Date: Wed, 3 Jun 2009 10:28:51 +0100
Subject: [PATCH] furher updates to submodel instantiations

---
 .../submodels/makeCoalParcelSubmodels.C       | 10 +-
 .../makeCoalParcelSurfaceReactionModels.H     |  8 +-
 ...keBasicReactingMultiphaseParcelSubmodels.C | 10 +-
 ...eReactingMultiphaseParcelInjectionModels.H | 95 +++++++++++++++++++
 .../makeBasicReactingParcelSubmodels.C        |  3 +
 .../SurfaceReactionModel.H                    | 21 +---
 6 files changed, 118 insertions(+), 29 deletions(-)
 create mode 100644 src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/submodels/makeReactingMultiphaseParcelInjectionModels.H

diff --git a/src/lagrangian/coalCombustion/CoalParcel/submodels/makeCoalParcelSubmodels.C b/src/lagrangian/coalCombustion/CoalParcel/submodels/makeCoalParcelSubmodels.C
index c2da43a2678..479a121f8e4 100644
--- a/src/lagrangian/coalCombustion/CoalParcel/submodels/makeCoalParcelSubmodels.C
+++ b/src/lagrangian/coalCombustion/CoalParcel/submodels/makeCoalParcelSubmodels.C
@@ -26,17 +26,21 @@ License
 
 #include "CoalParcel.H"
 
+// Kinematic
 #include "makeReactingParcelDispersionModels.H"
 #include "makeReactingParcelDragModels.H"
-#include "makeReactingParcelInjectionModels.H"
+#include "makeReactingMultiphaseParcelInjectionModels.H" // MP variant
 #include "makeReactingParcelPatchInteractionModels.H"
 #include "makeReactingParcelPostProcessingModels.H"
 
+// Thermodynamic
 #include "makeReactingParcelHeatTransferModels.H"
 
-#include "makeReactingMultiphaseParcelCompositionModels.H"
+// Reacting
+#include "makeReactingMultiphaseParcelCompositionModels.H" // MP variant
 #include "makeReactingParcelPhaseChangeModels.H"
 
+// Reacting multiphase
 #include "makeReactingMultiphaseParcelDevolatilisationModels.H"
 #include "makeCoalParcelSurfaceReactionModels.H"
 
@@ -47,7 +51,7 @@ namespace Foam
     // Kinematic sub-models
     createReactingDispersionModelType(CoalParcel);
     createReactingDragModelType(CoalParcel);
-    createReactingInjectionModelType(CoalParcel);
+    createReactingMultiphaseInjectionModelType(CoalParcel);
     createReactingPatchInteractionModelType(CoalParcel);
     createReactingPostProcessingModelType(CoalParcel);
 
diff --git a/src/lagrangian/coalCombustion/CoalParcel/submodels/makeCoalParcelSurfaceReactionModels.H b/src/lagrangian/coalCombustion/CoalParcel/submodels/makeCoalParcelSurfaceReactionModels.H
index 1875cc590c2..d943084ce0c 100644
--- a/src/lagrangian/coalCombustion/CoalParcel/submodels/makeCoalParcelSurfaceReactionModels.H
+++ b/src/lagrangian/coalCombustion/CoalParcel/submodels/makeCoalParcelSurfaceReactionModels.H
@@ -60,28 +60,28 @@ License
         ReactingMultiphaseCloud<ParcelType<ThermoType> >                      \
     );                                                                        \
                                                                               \
-    makeSurfaceReactionModelThermoTypeNew                                     \
+    makeSurfaceReactionModelThermoType                                        \
     (                                                                         \
         NoSurfaceReaction,                                                    \
         ReactingMultiphaseCloud,                                              \
         ParcelType,                                                           \
         ThermoType                                                            \
     );                                                                        \
-    makeSurfaceReactionModelThermoTypeNew                                     \
+    makeSurfaceReactionModelThermoType                                        \
     (                                                                         \
         COxidationDiffusionLimitedRate,                                       \
         ReactingMultiphaseCloud,                                              \
         ParcelType,                                                           \
         ThermoType                                                            \
     );                                                                        \
-    makeSurfaceReactionModelThermoTypeNew                                     \
+    makeSurfaceReactionModelThermoType                                        \
     (                                                                         \
         COxidationKineticDiffusionLimitedRate,                                \
         ReactingMultiphaseCloud,                                              \
         ParcelType,                                                           \
         ThermoType                                                            \
     );                                                                        \
-    makeSurfaceReactionModelThermoTypeNew                                     \
+    makeSurfaceReactionModelThermoType                                        \
     (                                                                         \
         COxidationMurphyShaddix,                                              \
         ReactingMultiphaseCloud,                                              \
diff --git a/src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/submodels/makeBasicReactingMultiphaseParcelSubmodels.C b/src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/submodels/makeBasicReactingMultiphaseParcelSubmodels.C
index c5a665fe017..3e9cf9b4d7d 100644
--- a/src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/submodels/makeBasicReactingMultiphaseParcelSubmodels.C
+++ b/src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/submodels/makeBasicReactingMultiphaseParcelSubmodels.C
@@ -26,17 +26,21 @@ License
 
 #include "BasicReactingMultiphaseParcel.H"
 
+// Kinematic
 #include "makeReactingParcelDispersionModels.H"
 #include "makeReactingParcelDragModels.H"
-#include "makeReactingParcelInjectionModels.H"
+#include "makeReactingMultiphaseParcelInjectionModels.H" // MP variant
 #include "makeReactingParcelPatchInteractionModels.H"
 #include "makeReactingParcelPostProcessingModels.H"
 
+// Thermodynamic
 #include "makeReactingParcelHeatTransferModels.H"
 
-#include "makeReactingMultiphaseParcelCompositionModels.H"
+// Reacting
+#include "makeReactingMultiphaseParcelCompositionModels.H" // MP variant
 #include "makeReactingParcelPhaseChangeModels.H"
 
+// Reacting multiphase
 #include "makeReactingMultiphaseParcelDevolatilisationModels.H"
 #include "makeReactingMultiphaseParcelSurfaceReactionModels.H"
 
@@ -47,7 +51,7 @@ namespace Foam
     // Kinematic sub-models
     createReactingDispersionModelType(BasicReactingMultiphaseParcel);
     createReactingDragModelType(BasicReactingMultiphaseParcel);
-    createReactingInjectionModelType(BasicReactingMultiphaseParcel);
+    createReactingMultiphaseInjectionModelType(BasicReactingMultiphaseParcel);
     createReactingPatchInteractionModelType(BasicReactingMultiphaseParcel);
     createReactingPostProcessingModelType(BasicReactingMultiphaseParcel);
 
diff --git a/src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/submodels/makeReactingMultiphaseParcelInjectionModels.H b/src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/submodels/makeReactingMultiphaseParcelInjectionModels.H
new file mode 100644
index 00000000000..2ee34397fac
--- /dev/null
+++ b/src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/submodels/makeReactingMultiphaseParcelInjectionModels.H
@@ -0,0 +1,95 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
+     \\/     M anipulation  |
+-------------------------------------------------------------------------------
+License
+    This file is part of OpenFOAM.
+
+    OpenFOAM is free software; you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by the
+    Free Software Foundation; either version 2 of the License, or (at your
+    option) any later version.
+
+    OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+    for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with OpenFOAM; if not, write to the Free Software Foundation,
+    Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef makeReactingMultiphaseParcelInjectionModels_H
+#define makeReactingMultiphaseParcelInjectionModels_H
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#include "reactingThermoTypes.H"
+#include "KinematicCloud.H"
+
+#include "ConeInjection.H"
+#include "FieldActivatedInjection.H"
+#include "ManualInjection.H"
+#include "NoInjection.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#define createReactingMultiphaseInjectionModelType(ParcelType)                \
+                                                                              \
+    createReactingMultiphaseInjectionModelThermoType                          \
+    (                                                                         \
+        ParcelType,                                                           \
+        specieConstProperties                                                 \
+    );                                                                        \
+                                                                              \
+    createReactingMultiphaseInjectionModelThermoType                          \
+    (                                                                         \
+        ParcelType,                                                           \
+        specieReactingProperties                                              \
+    );
+
+
+#define createReactingMultiphaseInjectionModelThermoType(ParcelType, ThermoType)\
+                                                                              \
+    makeInjectionModel(KinematicCloud<ParcelType<ThermoType> >);              \
+                                                                              \
+    makeInjectionModelThermoType                                              \
+    (                                                                         \
+        ConeInjection,                                                        \
+        KinematicCloud,                                                       \
+        ParcelType,                                                           \
+        ThermoType                                                            \
+    );                                                                        \
+    makeInjectionModelThermoType                                              \
+    (                                                                         \
+        FieldActivatedInjection,                                              \
+        KinematicCloud,                                                       \
+        ParcelType,                                                           \
+        ThermoType                                                            \
+    );                                                                        \
+    makeInjectionModelThermoType                                              \
+    (                                                                         \
+        ManualInjection,                                                      \
+        KinematicCloud,                                                       \
+        ParcelType,                                                           \
+        ThermoType                                                            \
+    );                                                                        \
+    makeInjectionModelThermoType                                              \
+    (                                                                         \
+        NoInjection,                                                          \
+        KinematicCloud,                                                       \
+        ParcelType,                                                           \
+        ThermoType                                                            \
+    );                                                                        \
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
diff --git a/src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeBasicReactingParcelSubmodels.C b/src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeBasicReactingParcelSubmodels.C
index 18dcc54fd09..be7df8268d1 100644
--- a/src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeBasicReactingParcelSubmodels.C
+++ b/src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeBasicReactingParcelSubmodels.C
@@ -26,14 +26,17 @@ License
 
 #include "BasicReactingParcel.H"
 
+// Kinematic
 #include "makeReactingParcelDispersionModels.H"
 #include "makeReactingParcelDragModels.H"
 #include "makeReactingParcelInjectionModels.H"
 #include "makeReactingParcelPatchInteractionModels.H"
 #include "makeReactingParcelPostProcessingModels.H"
 
+// Thermodynamic
 #include "makeReactingParcelHeatTransferModels.H"
 
+// Reacting
 #include "makeReactingParcelCompositionModels.H"
 #include "makeReactingParcelPhaseChangeModels.H"
 
diff --git a/src/lagrangian/intermediate/submodels/ReactingMultiphase/SurfaceReactionModel/SurfaceReactionModel/SurfaceReactionModel.H b/src/lagrangian/intermediate/submodels/ReactingMultiphase/SurfaceReactionModel/SurfaceReactionModel/SurfaceReactionModel.H
index ba1d41825fd..f876563fec6 100644
--- a/src/lagrangian/intermediate/submodels/ReactingMultiphase/SurfaceReactionModel/SurfaceReactionModel/SurfaceReactionModel.H
+++ b/src/lagrangian/intermediate/submodels/ReactingMultiphase/SurfaceReactionModel/SurfaceReactionModel/SurfaceReactionModel.H
@@ -172,25 +172,7 @@ public:
     );
 
 
-#define makeSurfaceReactionModelType(SS, CloudType, ParcelType)               \
-                                                                              \
-    defineNamedTemplateTypeNameAndDebug(SS<CloudType<ParcelType> >, 0);       \
-                                                                              \
-    SurfaceReactionModel<CloudType<ParcelType> >::                            \
-        adddictionaryConstructorToTable<SS<CloudType<ParcelType> > >          \
-            add##SS##CloudType##ParcelType##ConstructorToTable_;
-
-
-#define makeSurfaceReactionModelTypeInstance(SS, CloudType, ParcelType)       \
-                                                                              \
-    defineNamedTemplateTypeNameAndDebug(SS, 0);                               \
-                                                                              \
-    SurfaceReactionModel<CloudType<ParcelType> >::                            \
-        adddictionaryConstructorToTable<SS>                                   \
-            add##SS##CloudType##ParcelType##ConstructorToTable_;
-
-
-#define makeSurfaceReactionModelThermoTypeNew(SS, CloudType, ParcelType, ThermoType)\
+#define makeSurfaceReactionModelThermoType(SS, CloudType, ParcelType, ThermoType)\
                                                                               \
     defineNamedTemplateTypeNameAndDebug                                       \
     (                                                                         \
@@ -203,6 +185,7 @@ public:
             <SS<CloudType<ParcelType<ThermoType> > > >                        \
             add##SS##CloudType##ParcelType##ThermoType##ConstructorToTable_;
 
+
 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
 
 #ifdef NoRepository
-- 
GitLab