From c766b6c3015a439f16ceec448b9a2883fb6a8e8f Mon Sep 17 00:00:00 2001 From: andy <a.heather@opencfd.co.uk> Date: Tue, 2 Jun 2009 19:55:56 +0100 Subject: [PATCH] more fun with templates - templating thermo type throughout submodels --- .../coalChemistryFoam/coalChemistryFoam.C | 4 +- .../coalChemistryFoam/createClouds.H | 2 +- .../reactingParcelFoam/reactingParcelFoam.C | 2 +- .../coalCloud.C => CoalCloud/CoalCloud.C} | 29 ++--- .../coalCloud.H => CoalCloud/CoalCloud.H} | 35 +++--- .../defineCoalCloud.C} | 7 +- .../coalParcel.C => CoalParcel/CoalParcel.C} | 40 +++---- .../coalParcel.H => CoalParcel/CoalParcel.H} | 59 +++++----- .../defineCoalParcel.C} | 16 +-- .../submodels/makeCoalParcelSubmodels.C} | 50 +++++---- .../makeCoalParcelSurfaceReactionModels.H | 97 +++++++++++++++++ src/lagrangian/coalCombustion/Make/files | 27 +---- .../coalParcel/defineCoalParcel.C | 50 --------- .../makeCoalParcelDevolatilisationModels.C | 65 ----------- .../makeCoalParcelDispersionModels.C | 68 ------------ .../submodels/makeCoalParcelDragModels.C | 45 -------- .../makeCoalParcelHeatTransferModels.C | 45 -------- .../submodels/makeCoalParcelInjectionModels.C | 49 --------- .../makeCoalParcelPatchInteractionModels.C | 62 ----------- .../makeCoalParcelPhaseChangeModels.C | 58 ---------- .../makeCoalParcelPostProcessingModels.C | 55 ---------- .../makeCoalParcelSurfaceReactionModels.C | 69 ------------ .../include/createCoalParcelTypes.H | 98 +++++++++++++++++ .../COxidationDiffusionLimitedRate.C | 31 +++--- .../COxidationDiffusionLimitedRate.H | 18 ++- .../COxidationKineticDiffusionLimitedRate.C | 23 ++-- .../COxidationKineticDiffusionLimitedRate.H | 17 ++- .../COxidationMurphyShaddix.C | 33 ++++-- .../COxidationMurphyShaddix.H | 17 ++- src/lagrangian/intermediate/Make/files | 71 +++++------- .../Templates/ReactingCloud/ReactingCloud.H | 2 - .../defineBasicReactingCloud.C} | 16 +-- .../BasicReactingMultiphaseCloud.H | 2 +- .../defineBasicReactingMultiphaseCloud.C} | 13 +-- .../BasicTrackedReactingCloud.C | 8 +- .../BasicTrackedReactingCloud.H | 26 ++--- .../defineBasicTrackedReactingCloud.C} | 13 +-- .../include/createReactingCloudTypes.H} | 22 ++-- .../defineBasicReactingMultiphaseParcel.C | 75 +------------ ...eactingMultiphaseParcelCompositionModels.C | 51 --------- ...ngMultiphaseParcelDevolatilisationModels.C | 65 ----------- ...eBasicReactingMultiphaseParcelDragModels.C | 50 --------- ...cReactingMultiphaseParcelInjectionModels.C | 69 ------------ ...ngMultiphaseParcelPatchInteractionModels.C | 62 ----------- ...eactingMultiphaseParcelPhaseChangeModels.C | 58 ---------- ...tingMultiphaseParcelPostProcessingModels.C | 55 ---------- ...keBasicReactingMultiphaseParcelSubmodels.C | 73 +++++++++++++ ...ingMultiphaseParcelSurfaceReactionModels.C | 51 --------- ...eactingMultiphaseParcelCompositionModels.H | 70 ++++++++++++ ...ngMultiphaseParcelDevolatilisationModels.H | 89 +++++++++++++++ ...ingMultiphaseParcelSurfaceReactionModels.H | 73 +++++++++++++ .../defineBasicReactingParcel.C | 3 +- .../makeBasicReactingParcelDispersionModels.C | 68 ------------ ...akeBasicReactingParcelHeatTransferModels.C | 55 ---------- .../makeBasicReactingParcelInjectionModels.C | 76 ------------- ...asicReactingParcelPatchInteractionModels.C | 62 ----------- ...makeBasicReactingParcelPhaseChangeModels.C | 55 ---------- ...eBasicReactingParcelPostProcessingModels.C | 55 ---------- .../makeBasicReactingParcelSubmodels.C} | 56 ++++------ .../makeReactingParcelCompositionModels.H | 70 ++++++++++++ .../makeReactingParcelDispersionModels.H | 93 ++++++++++++++++ .../submodels/makeReactingParcelDragModels.H | 78 +++++++++++++ .../makeReactingParcelHeatTransferModels.H | 78 +++++++++++++ .../makeReactingParcelInjectionModels.H | 103 ++++++++++++++++++ ...makeReactingParcelPatchInteractionModels.H | 87 +++++++++++++++ .../makeReactingParcelPhaseChangeModels.H | 79 ++++++++++++++ .../makeReactingParcelPostProcessingModels.H | 79 ++++++++++++++ .../defineTrackedReactingParcel.C | 31 +----- ...makeBasicTrackedReactingParcelSubmodels.C} | 35 ++++-- ...keTrackedReactingParcelCompositionModels.C | 48 -------- ...akeTrackedReactingParcelDispersionModels.C | 68 ------------ ...eTrackedReactingParcelHeatTransferModels.C | 55 ---------- ...makeTrackedReactingParcelInjectionModels.C | 76 ------------- ...ckedReactingParcelPatchInteractionModels.C | 62 ----------- ...keTrackedReactingParcelPhaseChangeModels.C | 55 ---------- ...rackedReactingParcelPostProcessingModels.C | 55 ---------- .../createReactingMultiphaseParcelTypes.H | 94 ++++++++++++++++ .../createReactingParcelTypes.H} | 18 +-- .../createTrackedReactingParcelTypes.H | 70 ++++++++++++ .../include/reactingThermoTypes.H} | 13 ++- .../submodels/IO/IOList/makeParcelIOLists.C | 6 - .../DispersionModel/DispersionModel.H | 14 +++ .../Kinematic/DragModel/DragModel/DragModel.H | 14 +++ .../InjectionModel/InjectionModel.H | 30 ++--- .../PatchInteractionModel.H | 14 +++ .../PostProcessingModel/PostProcessingModel.H | 14 +++ .../CompositionModel/CompositionModel.H | 15 ++- .../SinglePhaseMixture/SinglePhaseMixture.H | 8 +- .../PhaseChangeModel/PhaseChangeModel.H | 15 ++- .../DevolatilisationModel.H | 15 ++- .../SurfaceReactionModel.H | 13 +++ .../HeatTransferModel/HeatTransferModel.H | 14 +++ 92 files changed, 1823 insertions(+), 2311 deletions(-) rename src/lagrangian/coalCombustion/{coalCloud/coalCloud.C => CoalCloud/CoalCloud.C} (79%) rename src/lagrangian/coalCombustion/{coalCloud/coalCloud.H => CoalCloud/CoalCloud.H} (80%) rename src/lagrangian/coalCombustion/{coalParcel/submodels/makeCoalParcelIOList.C => CoalCloud/defineCoalCloud.C} (93%) rename src/lagrangian/coalCombustion/{coalParcel/coalParcel.C => CoalParcel/CoalParcel.C} (72%) rename src/lagrangian/coalCombustion/{coalParcel/coalParcel.H => CoalParcel/CoalParcel.H} (71%) rename src/lagrangian/coalCombustion/{coalParcel/submodels/makeCoalParcelCompositionModels.C => CoalParcel/defineCoalParcel.C} (81%) rename src/lagrangian/{intermediate/parcels/derived/BasicReactingMultiphaseParcel/submodels/makeBasicReactingMultiphaseParcelHeatTransferModels.C => coalCombustion/CoalParcel/submodels/makeCoalParcelSubmodels.C} (53%) create mode 100644 src/lagrangian/coalCombustion/CoalParcel/submodels/makeCoalParcelSurfaceReactionModels.H delete mode 100644 src/lagrangian/coalCombustion/coalParcel/defineCoalParcel.C delete mode 100644 src/lagrangian/coalCombustion/coalParcel/submodels/makeCoalParcelDevolatilisationModels.C delete mode 100644 src/lagrangian/coalCombustion/coalParcel/submodels/makeCoalParcelDispersionModels.C delete mode 100644 src/lagrangian/coalCombustion/coalParcel/submodels/makeCoalParcelDragModels.C delete mode 100644 src/lagrangian/coalCombustion/coalParcel/submodels/makeCoalParcelHeatTransferModels.C delete mode 100644 src/lagrangian/coalCombustion/coalParcel/submodels/makeCoalParcelInjectionModels.C delete mode 100644 src/lagrangian/coalCombustion/coalParcel/submodels/makeCoalParcelPatchInteractionModels.C delete mode 100644 src/lagrangian/coalCombustion/coalParcel/submodels/makeCoalParcelPhaseChangeModels.C delete mode 100644 src/lagrangian/coalCombustion/coalParcel/submodels/makeCoalParcelPostProcessingModels.C delete mode 100644 src/lagrangian/coalCombustion/coalParcel/submodels/makeCoalParcelSurfaceReactionModels.C create mode 100644 src/lagrangian/coalCombustion/include/createCoalParcelTypes.H rename src/lagrangian/intermediate/{parcels/derived/BasicReactingParcel/submodels/makeBasicReactingParcelCompositionModels.C => clouds/derived/BasicReactingCloud/defineBasicReactingCloud.C} (80%) rename src/lagrangian/intermediate/{parcels/derived/BasicReactingParcel/submodels/makeBasicReactingParcelDragModels.C => clouds/derived/BasicReactingMultiphaseCloud/defineBasicReactingMultiphaseCloud.C} (80%) rename src/lagrangian/intermediate/{parcels/derived/BasicTrackedReactingParcel/basicTrackedReactingParcelTypes.H => clouds/derived/BasicTrackedReactingCloud/defineBasicTrackedReactingCloud.C} (80%) rename src/lagrangian/intermediate/{parcels/derived/BasicReactingMultiphaseParcel/basicReactingMultiphaseParcelTypes.H => clouds/include/createReactingCloudTypes.H} (69%) delete mode 100644 src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/submodels/makeBasicReactingMultiphaseParcelCompositionModels.C delete mode 100644 src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/submodels/makeBasicReactingMultiphaseParcelDevolatilisationModels.C delete mode 100644 src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/submodels/makeBasicReactingMultiphaseParcelDragModels.C delete mode 100644 src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/submodels/makeBasicReactingMultiphaseParcelInjectionModels.C delete mode 100644 src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/submodels/makeBasicReactingMultiphaseParcelPatchInteractionModels.C delete mode 100644 src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/submodels/makeBasicReactingMultiphaseParcelPhaseChangeModels.C delete mode 100644 src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/submodels/makeBasicReactingMultiphaseParcelPostProcessingModels.C create mode 100644 src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/submodels/makeBasicReactingMultiphaseParcelSubmodels.C delete mode 100644 src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/submodels/makeBasicReactingMultiphaseParcelSurfaceReactionModels.C create mode 100644 src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/submodels/makeReactingMultiphaseParcelCompositionModels.H create mode 100644 src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/submodels/makeReactingMultiphaseParcelDevolatilisationModels.H create mode 100644 src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/submodels/makeReactingMultiphaseParcelSurfaceReactionModels.H delete mode 100644 src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeBasicReactingParcelDispersionModels.C delete mode 100644 src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeBasicReactingParcelHeatTransferModels.C delete mode 100644 src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeBasicReactingParcelInjectionModels.C delete mode 100644 src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeBasicReactingParcelPatchInteractionModels.C delete mode 100644 src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeBasicReactingParcelPhaseChangeModels.C delete mode 100644 src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeBasicReactingParcelPostProcessingModels.C rename src/lagrangian/intermediate/parcels/derived/{BasicReactingMultiphaseParcel/submodels/makeBasicReactingMultiphaseParcelDispersionModels.C => BasicReactingParcel/submodels/makeBasicReactingParcelSubmodels.C} (58%) create mode 100644 src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeReactingParcelCompositionModels.H create mode 100644 src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeReactingParcelDispersionModels.H create mode 100644 src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeReactingParcelDragModels.H create mode 100644 src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeReactingParcelHeatTransferModels.H create mode 100644 src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeReactingParcelInjectionModels.H create mode 100644 src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeReactingParcelPatchInteractionModels.H create mode 100644 src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeReactingParcelPhaseChangeModels.H create mode 100644 src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeReactingParcelPostProcessingModels.H rename src/lagrangian/intermediate/parcels/derived/BasicTrackedReactingParcel/submodels/{makeTrackedReactingParcelDragModels.C => makeBasicTrackedReactingParcelSubmodels.C} (57%) delete mode 100644 src/lagrangian/intermediate/parcels/derived/BasicTrackedReactingParcel/submodels/makeTrackedReactingParcelCompositionModels.C delete mode 100644 src/lagrangian/intermediate/parcels/derived/BasicTrackedReactingParcel/submodels/makeTrackedReactingParcelDispersionModels.C delete mode 100644 src/lagrangian/intermediate/parcels/derived/BasicTrackedReactingParcel/submodels/makeTrackedReactingParcelHeatTransferModels.C delete mode 100644 src/lagrangian/intermediate/parcels/derived/BasicTrackedReactingParcel/submodels/makeTrackedReactingParcelInjectionModels.C delete mode 100644 src/lagrangian/intermediate/parcels/derived/BasicTrackedReactingParcel/submodels/makeTrackedReactingParcelPatchInteractionModels.C delete mode 100644 src/lagrangian/intermediate/parcels/derived/BasicTrackedReactingParcel/submodels/makeTrackedReactingParcelPhaseChangeModels.C delete mode 100644 src/lagrangian/intermediate/parcels/derived/BasicTrackedReactingParcel/submodels/makeTrackedReactingParcelPostProcessingModels.C create mode 100644 src/lagrangian/intermediate/parcels/include/createReactingMultiphaseParcelTypes.H rename src/lagrangian/intermediate/parcels/{derived/BasicReactingParcel/basicReactingParcelTypes.H => include/createReactingParcelTypes.H} (87%) create mode 100644 src/lagrangian/intermediate/parcels/include/createTrackedReactingParcelTypes.H rename src/lagrangian/intermediate/{clouds/Templates/ReactingCloud/ReactingCloudThermoTypes.H => parcels/include/reactingThermoTypes.H} (94%) diff --git a/applications/solvers/combustion/coalChemistryFoam/coalChemistryFoam.C b/applications/solvers/combustion/coalChemistryFoam/coalChemistryFoam.C index 3bccc682d33..18dbce77576 100644 --- a/applications/solvers/combustion/coalChemistryFoam/coalChemistryFoam.C +++ b/applications/solvers/combustion/coalChemistryFoam/coalChemistryFoam.C @@ -35,10 +35,10 @@ Description #include "hCombustionThermo.H" #include "turbulenceModel.H" #include "basicThermoCloud.H" -#include "coalCloud.H" +#include "CoalCloud.H" #include "chemistryModel.H" #include "chemistrySolver.H" -#include "ReactingCloudThermoTypes.H" +#include "reactingThermoTypes.H" #include "timeActivatedExplicitSource.H" #include "radiationModel.H" diff --git a/applications/solvers/combustion/coalChemistryFoam/createClouds.H b/applications/solvers/combustion/coalChemistryFoam/createClouds.H index 34398f6b827..ecd70150b93 100644 --- a/applications/solvers/combustion/coalChemistryFoam/createClouds.H +++ b/applications/solvers/combustion/coalChemistryFoam/createClouds.H @@ -31,7 +31,7 @@ forAll(gasProperties, i) } Info<< "\nConstructing coal cloud" << endl; -coalCloud coalParcels +CoalCloud<specieReactingProperties> coalParcels ( "coalCloud1", rho, diff --git a/applications/solvers/lagrangian/reactingParcelFoam/reactingParcelFoam.C b/applications/solvers/lagrangian/reactingParcelFoam/reactingParcelFoam.C index 89a2e815f3b..06efa86e2be 100644 --- a/applications/solvers/lagrangian/reactingParcelFoam/reactingParcelFoam.C +++ b/applications/solvers/lagrangian/reactingParcelFoam/reactingParcelFoam.C @@ -37,7 +37,7 @@ Description #include "BasicReactingCloud.H" #include "chemistryModel.H" #include "chemistrySolver.H" -#include "ReactingCloudThermoTypes.H" +#include "reactingThermoTypes.H" #include "radiationModel.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/src/lagrangian/coalCombustion/coalCloud/coalCloud.C b/src/lagrangian/coalCombustion/CoalCloud/CoalCloud.C similarity index 79% rename from src/lagrangian/coalCombustion/coalCloud/coalCloud.C rename to src/lagrangian/coalCombustion/CoalCloud/CoalCloud.C index e41b822e38c..1b923614d28 100644 --- a/src/lagrangian/coalCombustion/coalCloud/coalCloud.C +++ b/src/lagrangian/coalCombustion/CoalCloud/CoalCloud.C @@ -24,53 +24,48 @@ License \*---------------------------------------------------------------------------*/ -#include "coalCloud.H" - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -namespace Foam -{ - defineTypeNameAndDebug(coalCloud, 0); -}; - +#include "CoalCloud.H" // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // -Foam::coalCloud::coalCloud +template<class ThermoType> +Foam::CoalCloud<ThermoType>::CoalCloud ( const word& cloudName, const volScalarField& rho, const volVectorField& U, const dimensionedVector& g, hCombustionThermo& thermo, - PtrList<specieReactingProperties>& gases + PtrList<ThermoType>& carrierSpecies ) : - ReactingMultiphaseCloud<coalParcel> + ReactingMultiphaseCloud<CoalParcel<ThermoType> > ( cloudName, rho, U, g, thermo, - gases + carrierSpecies ) { - coalParcel::readFields(*this); + CoalParcel<ThermoType>::readFields(*this); } // * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // -Foam::coalCloud::~coalCloud() +template<class ThermoType> +Foam::CoalCloud<ThermoType>::~CoalCloud() {} // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // -void Foam::coalCloud::writeFields() const +template<class ThermoType> +void Foam::CoalCloud<ThermoType>::writeFields() const { - coalParcel::writeFields(*this); + CoalParcel<ThermoType>::writeFields(*this); } diff --git a/src/lagrangian/coalCombustion/coalCloud/coalCloud.H b/src/lagrangian/coalCombustion/CoalCloud/CoalCloud.H similarity index 80% rename from src/lagrangian/coalCombustion/coalCloud/coalCloud.H rename to src/lagrangian/coalCombustion/CoalCloud/CoalCloud.H index 4b1d3e852d7..4dbad0662f9 100644 --- a/src/lagrangian/coalCombustion/coalCloud/coalCloud.H +++ b/src/lagrangian/coalCombustion/CoalCloud/CoalCloud.H @@ -23,20 +23,20 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Class - coalCloud + CoalCloud Description SourceFiles - coalCloud.C + CoalCloud.C \*---------------------------------------------------------------------------*/ -#ifndef coalCloud_H -#define coalCloud_H +#ifndef CoalCloud_H +#define CoalCloud_H #include "ReactingMultiphaseCloud.H" -#include "coalParcel.H" +#include "CoalParcel.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -44,44 +44,45 @@ namespace Foam { /*---------------------------------------------------------------------------*\ - Class coalCloud Declaration + Class CoalCloud Declaration \*---------------------------------------------------------------------------*/ -class coalCloud +template<class ThermoType> +class CoalCloud : - public ReactingMultiphaseCloud<coalParcel> + public ReactingMultiphaseCloud<CoalParcel<ThermoType> > { // Private Member Functions //- Disallow default bitwise copy construct - coalCloud(const coalCloud&); + CoalCloud(const CoalCloud&); //- Disallow default bitwise assignment - void operator=(const coalCloud&); + void operator=(const CoalCloud&); public: //-Runtime type information - TypeName("coalCloud"); + TypeName("CoalCloud"); // Constructors //- Construct given carrier gas fields - coalCloud + CoalCloud ( const word& cloudName, const volScalarField& rho, const volVectorField& U, const dimensionedVector& g, hCombustionThermo& thermo, - PtrList<specieReactingProperties>& gases + PtrList<ThermoType>& gases ); //- Destructor - ~coalCloud(); + ~CoalCloud(); // Member Functions @@ -97,6 +98,12 @@ public: // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +#ifdef NoRepository + #include "CoalCloud.C" +#endif + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + #endif // ************************************************************************* // diff --git a/src/lagrangian/coalCombustion/coalParcel/submodels/makeCoalParcelIOList.C b/src/lagrangian/coalCombustion/CoalCloud/defineCoalCloud.C similarity index 93% rename from src/lagrangian/coalCombustion/coalParcel/submodels/makeCoalParcelIOList.C rename to src/lagrangian/coalCombustion/CoalCloud/defineCoalCloud.C index 1023c5e1668..64e60987e09 100644 --- a/src/lagrangian/coalCombustion/coalParcel/submodels/makeCoalParcelIOList.C +++ b/src/lagrangian/coalCombustion/CoalCloud/defineCoalCloud.C @@ -24,15 +24,14 @@ License \*---------------------------------------------------------------------------*/ -#include "makeParcelIOList.H" - -#include "coalParcel.H" +#include "createReactingCloudTypes.H" +#include "CoalCloud.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // namespace Foam { - makeParcelIOList(coalParcel); + createReactingCloudType(CoalCloud); }; diff --git a/src/lagrangian/coalCombustion/coalParcel/coalParcel.C b/src/lagrangian/coalCombustion/CoalParcel/CoalParcel.C similarity index 72% rename from src/lagrangian/coalCombustion/coalParcel/coalParcel.C rename to src/lagrangian/coalCombustion/CoalParcel/CoalParcel.C index 218ce201a05..edfb66467d3 100644 --- a/src/lagrangian/coalCombustion/coalParcel/coalParcel.C +++ b/src/lagrangian/coalCombustion/CoalParcel/CoalParcel.C @@ -24,34 +24,26 @@ License \*---------------------------------------------------------------------------*/ -#include "coalParcel.H" - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -namespace Foam -{ - defineTypeNameAndDebug(coalParcel, 0); - defineParticleTypeNameAndDebug(coalParcel, 0); - defineParcelTypeNameAndDebug(coalParcel, 0); -}; - +#include "CoalParcel.H" // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // -Foam::coalParcel::coalParcel +template<class ThermoType> +Foam::CoalParcel<ThermoType>::CoalParcel ( - ReactingMultiphaseCloud<coalParcel>& owner, + ReactingMultiphaseCloud<CoalParcel<ThermoType> >& owner, const vector& position, const label cellI ) : - ReactingMultiphaseParcel<coalParcel>(owner, position, cellI) + ReactingMultiphaseParcel<CoalParcel<ThermoType> >(owner, position, cellI) {} -Foam::coalParcel::coalParcel +template<class ThermoType> +Foam::CoalParcel<ThermoType>::CoalParcel ( - ReactingMultiphaseCloud<coalParcel>& owner, + ReactingMultiphaseCloud<CoalParcel<ThermoType> >& owner, const vector& position, const label cellI, const label typeId, @@ -62,10 +54,12 @@ Foam::coalParcel::coalParcel const scalarField& YGas0, const scalarField& YLiquid0, const scalarField& YSolid0, - const constantProperties& constProps + const typename + ReactingMultiphaseParcel<CoalParcel<ThermoType> >:: + constantProperties& constProps ) : - ReactingMultiphaseParcel<coalParcel> + ReactingMultiphaseParcel<CoalParcel<ThermoType> > ( owner, position, @@ -83,20 +77,22 @@ Foam::coalParcel::coalParcel {} -Foam::coalParcel::coalParcel +template<class ThermoType> +Foam::CoalParcel<ThermoType>::CoalParcel ( - const Cloud<coalParcel>& cloud, + const Cloud<CoalParcel<ThermoType> >& cloud, Istream& is, bool readFields ) : - ReactingMultiphaseParcel<coalParcel>(cloud, is, readFields) + ReactingMultiphaseParcel<CoalParcel<ThermoType> >(cloud, is, readFields) {} // * * * * * * * * * * * * * * * * Destructors * * * * * * * * * * * * * * // -Foam::coalParcel::~coalParcel() +template<class ThermoType> +Foam::CoalParcel<ThermoType>::~CoalParcel() {} diff --git a/src/lagrangian/coalCombustion/coalParcel/coalParcel.H b/src/lagrangian/coalCombustion/CoalParcel/CoalParcel.H similarity index 71% rename from src/lagrangian/coalCombustion/coalParcel/coalParcel.H rename to src/lagrangian/coalCombustion/CoalParcel/CoalParcel.H index 34b009530f6..a914cfbc9c8 100644 --- a/src/lagrangian/coalCombustion/coalParcel/coalParcel.H +++ b/src/lagrangian/coalCombustion/CoalParcel/CoalParcel.H @@ -23,19 +23,19 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Class - coalParcel + CoalParcel Description SourceFiles - coalParcel.C - coalParcelIO.C + CoalParcel.C + CoalParcelIO.C \*---------------------------------------------------------------------------*/ -#ifndef coalParcel_H -#define coalParcel_H +#ifndef CoalParcel_H +#define CoalParcel_H #include "ReactingMultiphaseParcel.H" @@ -44,34 +44,42 @@ SourceFiles namespace Foam { +// Forward declaration of classes +template<class ThermoType> +class CoalParcel; + /*---------------------------------------------------------------------------*\ - Class coalParcel Declaration + Class CoalParcel Declaration \*---------------------------------------------------------------------------*/ -class coalParcel +template<class ThermoType> +class CoalParcel : - public ReactingMultiphaseParcel<coalParcel> + public ReactingMultiphaseParcel<CoalParcel<ThermoType> > { public: + //- The type of thermodynamics this parcel was instantiated for + typedef ThermoType thermoType; + // Run-time type information - TypeName("coalParcel"); + TypeName("CoalParcel"); // Constructors //- Construct from owner, position, and cloud owner // Other properties initialised as null - coalParcel + CoalParcel ( - ReactingMultiphaseCloud<coalParcel>& owner, + ReactingMultiphaseCloud<CoalParcel>& owner, const vector& position, const label cellI ); //- Construct from components - coalParcel + CoalParcel ( - ReactingMultiphaseCloud<coalParcel>& owner, + ReactingMultiphaseCloud<CoalParcel>& owner, const vector& position, const label cellI, const label typeId, @@ -82,39 +90,40 @@ public: const scalarField& YGas0, const scalarField& YLiquid0, const scalarField& YSolid0, - const constantProperties& constProps + const typename + ReactingMultiphaseParcel<CoalParcel>:: + constantProperties& constProps ); //- Construct from Istream - coalParcel + CoalParcel ( - const Cloud<coalParcel>& c, + const Cloud<CoalParcel>& c, Istream& is, bool readFields = true ); //- Construct and return a clone - autoPtr<coalParcel> clone() const + autoPtr<CoalParcel> clone() const { - return autoPtr<coalParcel>(new coalParcel(*this)); + return autoPtr<CoalParcel>(new CoalParcel(*this)); } //- Destructor - virtual ~coalParcel(); + virtual ~CoalParcel(); }; -template<> -inline bool contiguous<coalParcel>() -{ - return false; // Now have scalar lists/fields (mass fractions) -} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +} // End namespace Foam // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -} // End namespace Foam +#ifdef NoRepository + #include "CoalParcel.C" +#endif // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/src/lagrangian/coalCombustion/coalParcel/submodels/makeCoalParcelCompositionModels.C b/src/lagrangian/coalCombustion/CoalParcel/defineCoalParcel.C similarity index 81% rename from src/lagrangian/coalCombustion/coalParcel/submodels/makeCoalParcelCompositionModels.C rename to src/lagrangian/coalCombustion/CoalParcel/defineCoalParcel.C index f6dea63009c..31531d45226 100644 --- a/src/lagrangian/coalCombustion/coalParcel/submodels/makeCoalParcelCompositionModels.C +++ b/src/lagrangian/coalCombustion/CoalParcel/defineCoalParcel.C @@ -24,24 +24,14 @@ License \*---------------------------------------------------------------------------*/ -#include "coalParcel.H" -#include "ReactingCloud.H" - -#include "SingleMixtureFraction.H" +#include "createCoalParcelTypes.H" +#include "CoalParcel.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // namespace Foam { - makeCompositionModel(ReactingCloud<coalParcel>); - - // Add instances of composition model to the table - makeCompositionModelType - ( - SingleMixtureFraction, - ReactingCloud, - coalParcel - ); + createCoalParcelType(CoalParcel); }; diff --git a/src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/submodels/makeBasicReactingMultiphaseParcelHeatTransferModels.C b/src/lagrangian/coalCombustion/CoalParcel/submodels/makeCoalParcelSubmodels.C similarity index 53% rename from src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/submodels/makeBasicReactingMultiphaseParcelHeatTransferModels.C rename to src/lagrangian/coalCombustion/CoalParcel/submodels/makeCoalParcelSubmodels.C index 53051b08dab..c2da43a2678 100644 --- a/src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/submodels/makeBasicReactingMultiphaseParcelHeatTransferModels.C +++ b/src/lagrangian/coalCombustion/CoalParcel/submodels/makeCoalParcelSubmodels.C @@ -24,31 +24,43 @@ License \*---------------------------------------------------------------------------*/ -#include "basicReactingMultiphaseParcelTypes.H" -#include "ThermoCloud.H" +#include "CoalParcel.H" -#include "NoHeatTransfer.H" -#include "RanzMarshall.H" +#include "makeReactingParcelDispersionModels.H" +#include "makeReactingParcelDragModels.H" +#include "makeReactingParcelInjectionModels.H" +#include "makeReactingParcelPatchInteractionModels.H" +#include "makeReactingParcelPostProcessingModels.H" + +#include "makeReactingParcelHeatTransferModels.H" + +#include "makeReactingMultiphaseParcelCompositionModels.H" +#include "makeReactingParcelPhaseChangeModels.H" + +#include "makeReactingMultiphaseParcelDevolatilisationModels.H" +#include "makeCoalParcelSurfaceReactionModels.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // namespace Foam { - makeHeatTransferModel(ThermoCloud<bReactingMultiphaseParcel>); - - // Add instances of heat transfer model to the table - makeHeatTransferModelType - ( - NoHeatTransfer, - ThermoCloud, - bReactingMultiphaseParcel - ); - makeHeatTransferModelType - ( - RanzMarshall, - ThermoCloud, - bReactingMultiphaseParcel - ); + // Kinematic sub-models + createReactingDispersionModelType(CoalParcel); + createReactingDragModelType(CoalParcel); + createReactingInjectionModelType(CoalParcel); + createReactingPatchInteractionModelType(CoalParcel); + createReactingPostProcessingModelType(CoalParcel); + + // Thermo sub-models + createReactingHeatTransferModelType(CoalParcel); + + // Reacting sub-models + createReactingMultiphaseCompositionModelType(CoalParcel); + createReactingPhaseChangeModelType(CoalParcel); + + // Reacting multiphase sub-models + createReactingMultiphaseDevolatilisationModelType(CoalParcel); + createCoalSurfaceReactionModelType(CoalParcel); }; diff --git a/src/lagrangian/coalCombustion/CoalParcel/submodels/makeCoalParcelSurfaceReactionModels.H b/src/lagrangian/coalCombustion/CoalParcel/submodels/makeCoalParcelSurfaceReactionModels.H new file mode 100644 index 00000000000..1875cc590c2 --- /dev/null +++ b/src/lagrangian/coalCombustion/CoalParcel/submodels/makeCoalParcelSurfaceReactionModels.H @@ -0,0 +1,97 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / 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 makeCoalParcelSurfaceReactionModels_H +#define makeCoalParcelSurfaceReactionModels_H + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#include "reactingThermoTypes.H" +#include "ReactingMultiphaseCloud.H" + +#include "NoSurfaceReaction.H" +#include "COxidationDiffusionLimitedRate.H" +#include "COxidationKineticDiffusionLimitedRate.H" +#include "COxidationMurphyShaddix.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#define createCoalSurfaceReactionModelType(ParcelType) \ + \ + createCoalSurfaceReactionModelThermoType \ + ( \ + ParcelType, \ + specieConstProperties \ + ); \ + createCoalSurfaceReactionModelThermoType \ + ( \ + ParcelType, \ + specieReactingProperties \ + ); + + +#define createCoalSurfaceReactionModelThermoType(ParcelType, ThermoType) \ + \ + makeSurfaceReactionModel \ + ( \ + ReactingMultiphaseCloud<ParcelType<ThermoType> > \ + ); \ + \ + makeSurfaceReactionModelThermoTypeNew \ + ( \ + NoSurfaceReaction, \ + ReactingMultiphaseCloud, \ + ParcelType, \ + ThermoType \ + ); \ + makeSurfaceReactionModelThermoTypeNew \ + ( \ + COxidationDiffusionLimitedRate, \ + ReactingMultiphaseCloud, \ + ParcelType, \ + ThermoType \ + ); \ + makeSurfaceReactionModelThermoTypeNew \ + ( \ + COxidationKineticDiffusionLimitedRate, \ + ReactingMultiphaseCloud, \ + ParcelType, \ + ThermoType \ + ); \ + makeSurfaceReactionModelThermoTypeNew \ + ( \ + COxidationMurphyShaddix, \ + ReactingMultiphaseCloud, \ + ParcelType, \ + ThermoType \ + ); + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* // diff --git a/src/lagrangian/coalCombustion/Make/files b/src/lagrangian/coalCombustion/Make/files index 9d9b8b6267f..4a7cb52d25d 100755 --- a/src/lagrangian/coalCombustion/Make/files +++ b/src/lagrangian/coalCombustion/Make/files @@ -1,25 +1,8 @@ -/* coal cloud */ -coalCloud/coalCloud.C +/* Coal cloud */ +CoalCloud/defineCoalCloud.C -/* coal parcel and sub-models */ -coalParcel/coalParcel.C -coalParcel/defineCoalParcel.C -coalParcel/submodels/makeCoalParcelCompositionModels.C -coalParcel/submodels/makeCoalParcelDevolatilisationModels.C -coalParcel/submodels/makeCoalParcelDragModels.C -coalParcel/submodels/makeCoalParcelDispersionModels.C -coalParcel/submodels/makeCoalParcelInjectionModels.C -coalParcel/submodels/makeCoalParcelHeatTransferModels.C -coalParcel/submodels/makeCoalParcelPhaseChangeModels.C -coalParcel/submodels/makeCoalParcelPatchInteractionModels.C -coalParcel/submodels/makeCoalParcelPostProcessingModels.C -coalParcel/submodels/makeCoalParcelSurfaceReactionModels.C - -submodels/surfaceReactionModel/COxidationDiffusionLimitedRate/COxidationDiffusionLimitedRate.C -submodels/surfaceReactionModel/COxidationKineticDiffusionLimitedRate/COxidationKineticDiffusionLimitedRate.C -submodels/surfaceReactionModel/COxidationMurphyShaddix/COxidationMurphyShaddix.C - -/* IOLists */ -coalParcel/submodels/makeCoalParcelIOList.C +/* Coal parcel and sub-models */ +CoalParcel/defineCoalParcel.C +CoalParcel/submodels/makeCoalParcelSubmodels.C LIB = $(FOAM_LIBBIN)/libcoalCombustion diff --git a/src/lagrangian/coalCombustion/coalParcel/defineCoalParcel.C b/src/lagrangian/coalCombustion/coalParcel/defineCoalParcel.C deleted file mode 100644 index 2c41d828983..00000000000 --- a/src/lagrangian/coalCombustion/coalParcel/defineCoalParcel.C +++ /dev/null @@ -1,50 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "coalParcel.H" -#include "ReactingMultiphaseCloud.H" - -namespace Foam -{ - defineTemplateTypeNameAndDebug(Cloud<coalParcel>, 0); - - defineParcelTypeNameAndDebug(KinematicParcel<coalParcel>, 0); -// defineTemplateTypeNameAndDebug(KinematicParcel<coalParcel>, 0); - defineParcelTypeNameAndDebug(ThermoParcel<coalParcel>, 0); - defineTemplateTypeNameAndDebug(ThermoParcel<coalParcel>, 0); - defineParcelTypeNameAndDebug(ReactingParcel<coalParcel>, 0); - defineTemplateTypeNameAndDebug(ReactingParcel<coalParcel>, 0); - defineParcelTypeNameAndDebug(ReactingMultiphaseParcel<coalParcel>, 0); - defineTemplateTypeNameAndDebug(ReactingMultiphaseParcel<coalParcel>, 0); - - defineParcelTypeNameAndDebug(KinematicCloud<coalParcel>, 0); - defineParcelTypeNameAndDebug(ThermoCloud<coalParcel>, 0); - defineParcelTypeNameAndDebug(ReactingCloud<coalParcel>, 0); - defineParcelTypeNameAndDebug(ReactingMultiphaseCloud<coalParcel>, 0); -}; - - -// ************************************************************************* // diff --git a/src/lagrangian/coalCombustion/coalParcel/submodels/makeCoalParcelDevolatilisationModels.C b/src/lagrangian/coalCombustion/coalParcel/submodels/makeCoalParcelDevolatilisationModels.C deleted file mode 100644 index 041a132d663..00000000000 --- a/src/lagrangian/coalCombustion/coalParcel/submodels/makeCoalParcelDevolatilisationModels.C +++ /dev/null @@ -1,65 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "coalParcel.H" -#include "ReactingMultiphaseCloud.H" - -#include "NoDevolatilisation.H" -#include "ConstantRateDevolatilisation.H" -#include "SingleKineticRateDevolatilisation.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - makeDevolatilisationModel - ( - ReactingMultiphaseCloud<coalParcel> - ); - - // Add instances of devolatilisation model to the table - makeDevolatilisationModelType - ( - NoDevolatilisation, - ReactingMultiphaseCloud, - coalParcel - ); - makeDevolatilisationModelType - ( - ConstantRateDevolatilisation, - ReactingMultiphaseCloud, - coalParcel - ); - makeDevolatilisationModelType - ( - SingleKineticRateDevolatilisation, - ReactingMultiphaseCloud, - coalParcel - ); -}; - - -// ************************************************************************* // diff --git a/src/lagrangian/coalCombustion/coalParcel/submodels/makeCoalParcelDispersionModels.C b/src/lagrangian/coalCombustion/coalParcel/submodels/makeCoalParcelDispersionModels.C deleted file mode 100644 index d6f1cc82322..00000000000 --- a/src/lagrangian/coalCombustion/coalParcel/submodels/makeCoalParcelDispersionModels.C +++ /dev/null @@ -1,68 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "coalParcel.H" -#include "KinematicCloud.H" - -#include "NoDispersion.H" -#include "GradientDispersionRAS.H" -#include "StochasticDispersionRAS.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - makeDispersionModel(KinematicCloud<coalParcel>); - - defineNamedTemplateTypeNameAndDebug - ( - DispersionRASModel<KinematicCloud<coalParcel> >, - 0 - ); - - // Add instances of dispersion model to the table - makeDispersionModelType - ( - NoDispersion, - KinematicCloud, - coalParcel - ); - makeDispersionModelType - ( - GradientDispersionRAS, - KinematicCloud, - coalParcel - ); - makeDispersionModelType - ( - StochasticDispersionRAS, - KinematicCloud, - coalParcel - ); -}; - - -// ************************************************************************* // diff --git a/src/lagrangian/coalCombustion/coalParcel/submodels/makeCoalParcelDragModels.C b/src/lagrangian/coalCombustion/coalParcel/submodels/makeCoalParcelDragModels.C deleted file mode 100644 index 162e1d56c2e..00000000000 --- a/src/lagrangian/coalCombustion/coalParcel/submodels/makeCoalParcelDragModels.C +++ /dev/null @@ -1,45 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "coalParcel.H" -#include "KinematicCloud.H" - -#include "NoDrag.H" -#include "SphereDrag.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - makeDragModel(KinematicCloud<coalParcel>); - - // Add instances of drag model to the table - makeDragModelType(NoDrag, KinematicCloud, coalParcel); - makeDragModelType(SphereDrag, KinematicCloud, coalParcel); -}; - - -// ************************************************************************* // diff --git a/src/lagrangian/coalCombustion/coalParcel/submodels/makeCoalParcelHeatTransferModels.C b/src/lagrangian/coalCombustion/coalParcel/submodels/makeCoalParcelHeatTransferModels.C deleted file mode 100644 index 92e1a672700..00000000000 --- a/src/lagrangian/coalCombustion/coalParcel/submodels/makeCoalParcelHeatTransferModels.C +++ /dev/null @@ -1,45 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "coalParcel.H" -#include "ThermoCloud.H" - -#include "NoHeatTransfer.H" -#include "RanzMarshall.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - makeHeatTransferModel(ThermoCloud<coalParcel>); - - // Add instances of heat transfer model to the table - makeHeatTransferModelType(NoHeatTransfer, ThermoCloud, coalParcel); - makeHeatTransferModelType(RanzMarshall, ThermoCloud, coalParcel); -}; - - -// ************************************************************************* // diff --git a/src/lagrangian/coalCombustion/coalParcel/submodels/makeCoalParcelInjectionModels.C b/src/lagrangian/coalCombustion/coalParcel/submodels/makeCoalParcelInjectionModels.C deleted file mode 100644 index bf68b994773..00000000000 --- a/src/lagrangian/coalCombustion/coalParcel/submodels/makeCoalParcelInjectionModels.C +++ /dev/null @@ -1,49 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "coalParcel.H" -#include "ReactingCloud.H" - -#include "ConeInjection.H" -#include "FieldActivatedInjection.H" -#include "ManualInjection.H" -#include "NoInjection.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - makeInjectionModel(KinematicCloud<coalParcel>); - - // Add instances of injection model to the table - makeInjectionModelType(ConeInjection, KinematicCloud, coalParcel); - makeInjectionModelType(FieldActivatedInjection, KinematicCloud, coalParcel); - makeInjectionModelType(ManualInjection, KinematicCloud, coalParcel); - makeInjectionModelType(NoInjection, KinematicCloud, coalParcel); -}; - - -// ************************************************************************* // diff --git a/src/lagrangian/coalCombustion/coalParcel/submodels/makeCoalParcelPatchInteractionModels.C b/src/lagrangian/coalCombustion/coalParcel/submodels/makeCoalParcelPatchInteractionModels.C deleted file mode 100644 index 326af23e819..00000000000 --- a/src/lagrangian/coalCombustion/coalParcel/submodels/makeCoalParcelPatchInteractionModels.C +++ /dev/null @@ -1,62 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "coalParcel.H" -#include "ReactingCloud.H" - -#include "LocalInteraction.H" -#include "Rebound.H" -#include "StandardWallInteraction.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - makePatchInteractionModel(KinematicCloud<coalParcel>); - - // Add instances of patch interaction model to the table - makePatchInteractionModelType - ( - LocalInteraction, - KinematicCloud, - coalParcel - ); - makePatchInteractionModelType - ( - Rebound, - KinematicCloud, - coalParcel - ); - makePatchInteractionModelType - ( - StandardWallInteraction, - KinematicCloud, - coalParcel - ); -}; - - -// ************************************************************************* // diff --git a/src/lagrangian/coalCombustion/coalParcel/submodels/makeCoalParcelPhaseChangeModels.C b/src/lagrangian/coalCombustion/coalParcel/submodels/makeCoalParcelPhaseChangeModels.C deleted file mode 100644 index ebacd714bd6..00000000000 --- a/src/lagrangian/coalCombustion/coalParcel/submodels/makeCoalParcelPhaseChangeModels.C +++ /dev/null @@ -1,58 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "coalParcel.H" -#include "ReactingCloud.H" - -#include "NoPhaseChange.H" -#include "LiquidEvaporation.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - makePhaseChangeModel - ( - ReactingCloud<coalParcel> - ); - - // Add instances of phase change model to the table - makePhaseChangeModelType - ( - NoPhaseChange, - ReactingCloud, - coalParcel - ); - makePhaseChangeModelType - ( - LiquidEvaporation, - ReactingCloud, - coalParcel - ); -}; - - -// ************************************************************************* // diff --git a/src/lagrangian/coalCombustion/coalParcel/submodels/makeCoalParcelPostProcessingModels.C b/src/lagrangian/coalCombustion/coalParcel/submodels/makeCoalParcelPostProcessingModels.C deleted file mode 100644 index 7a8594eedad..00000000000 --- a/src/lagrangian/coalCombustion/coalParcel/submodels/makeCoalParcelPostProcessingModels.C +++ /dev/null @@ -1,55 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "coalParcel.H" -#include "KinematicCloud.H" - -#include "NoPostProcessing.H" -#include "StandardPostProcessing.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - makePostProcessingModel(KinematicCloud<coalParcel>); - - // Add instances of post-processing model to the table - makePostProcessingModelType - ( - NoPostProcessing, - KinematicCloud, - coalParcel - ); - makePostProcessingModelType - ( - StandardPostProcessing, - KinematicCloud, - coalParcel - ); -}; - - -// ************************************************************************* // diff --git a/src/lagrangian/coalCombustion/coalParcel/submodels/makeCoalParcelSurfaceReactionModels.C b/src/lagrangian/coalCombustion/coalParcel/submodels/makeCoalParcelSurfaceReactionModels.C deleted file mode 100644 index ee25d721f38..00000000000 --- a/src/lagrangian/coalCombustion/coalParcel/submodels/makeCoalParcelSurfaceReactionModels.C +++ /dev/null @@ -1,69 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "coalParcel.H" -#include "ReactingMultiphaseCloud.H" - -#include "NoSurfaceReaction.H" -#include "COxidationDiffusionLimitedRate.H" -#include "COxidationKineticDiffusionLimitedRate.H" -#include "COxidationMurphyShaddix.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - makeSurfaceReactionModel(ReactingMultiphaseCloud<coalParcel>); - - // Add instances of surface reaction model to the table - makeSurfaceReactionModelType - ( - NoSurfaceReaction, - ReactingMultiphaseCloud, - coalParcel - ); - makeSurfaceReactionModelTypeInstance - ( - COxidationDiffusionLimitedRate, - ReactingMultiphaseCloud, - coalParcel - ); - makeSurfaceReactionModelTypeInstance - ( - COxidationKineticDiffusionLimitedRate, - ReactingMultiphaseCloud, - coalParcel - ); - makeSurfaceReactionModelTypeInstance - ( - COxidationMurphyShaddix, - ReactingMultiphaseCloud, - coalParcel - ); -}; - - -// ************************************************************************* // diff --git a/src/lagrangian/coalCombustion/include/createCoalParcelTypes.H b/src/lagrangian/coalCombustion/include/createCoalParcelTypes.H new file mode 100644 index 00000000000..1584712ba09 --- /dev/null +++ b/src/lagrangian/coalCombustion/include/createCoalParcelTypes.H @@ -0,0 +1,98 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / 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 createCoalParcelTypes_H +#define createCoalParcelTypes_H + +#include "makeParcelIOList.H" +#include "reactingThermoTypes.H" +#include "CoalCloud.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#define createCoalParcelType(ParcelType) \ + \ + createCoalParcelThermoType \ + ( \ + ParcelType, \ + specieConstProperties \ + ); \ + createCoalParcelThermoType \ + ( \ + ParcelType, \ + specieReactingProperties \ + ); + + +#define createCoalParcelThermoType(ParcelType, ThermoType) \ + \ + typedef ParcelType<ThermoType> ParcelType##ThermoType; \ + \ + makeParcelIOList(ParcelType##ThermoType); \ + \ + defineTemplateTypeNameAndDebug(ParcelType##ThermoType, 0); \ + defineTemplateTypeNameAndDebug(Particle<ParcelType##ThermoType>, 0); \ + defineTemplateTypeNameAndDebug(Cloud<ParcelType##ThermoType>, 0); \ + \ + defineParcelTypeNameAndDebug(KinematicParcel<ParcelType##ThermoType>, 0); \ + defineTemplateTypeNameAndDebug \ + ( \ + KinematicParcel<ParcelType##ThermoType>, \ + 0 \ + ); \ + defineParcelTypeNameAndDebug(ThermoParcel<ParcelType##ThermoType>, 0); \ + defineTemplateTypeNameAndDebug(ThermoParcel<ParcelType##ThermoType>, 0); \ + defineParcelTypeNameAndDebug(ReactingParcel<ParcelType##ThermoType>, 0); \ + defineTemplateTypeNameAndDebug(ReactingParcel<ParcelType##ThermoType>, 0);\ + defineParcelTypeNameAndDebug \ + ( \ + ReactingMultiphaseParcel<ParcelType##ThermoType>, \ + 0 \ + ); \ + defineTemplateTypeNameAndDebug \ + ( \ + ReactingMultiphaseParcel<ParcelType##ThermoType>, \ + 0 \ + ); \ + defineParcelTypeNameAndDebug(CoalParcel<ParcelType##ThermoType>, 0); \ + defineTemplateTypeNameAndDebug(CoalParcel<ParcelType##ThermoType>, 0); \ + \ + defineParcelTypeNameAndDebug(KinematicCloud<ParcelType##ThermoType>, 0); \ + defineParcelTypeNameAndDebug(ThermoCloud<ParcelType##ThermoType>, 0); \ + defineParcelTypeNameAndDebug(ReactingCloud<ParcelType##ThermoType>, 0); \ + defineParcelTypeNameAndDebug \ + ( \ + ReactingMultiphaseCloud<ParcelType##ThermoType>, \ + 0 \ + ); \ + defineParcelTypeNameAndDebug(CoalCloud<ParcelType##ThermoType>, 0); + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* // diff --git a/src/lagrangian/coalCombustion/submodels/surfaceReactionModel/COxidationDiffusionLimitedRate/COxidationDiffusionLimitedRate.C b/src/lagrangian/coalCombustion/submodels/surfaceReactionModel/COxidationDiffusionLimitedRate/COxidationDiffusionLimitedRate.C index 7e8f2a0e2ba..f0086ccc478 100644 --- a/src/lagrangian/coalCombustion/submodels/surfaceReactionModel/COxidationDiffusionLimitedRate/COxidationDiffusionLimitedRate.C +++ b/src/lagrangian/coalCombustion/submodels/surfaceReactionModel/COxidationDiffusionLimitedRate/COxidationDiffusionLimitedRate.C @@ -28,18 +28,14 @@ License // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // -Foam::COxidationDiffusionLimitedRate::COxidationDiffusionLimitedRate +template<class CloudType> +Foam::COxidationDiffusionLimitedRate<CloudType>::COxidationDiffusionLimitedRate ( const dictionary& dict, - ReactingMultiphaseCloud<coalParcel>& owner + CloudType& owner ) : - SurfaceReactionModel<ReactingMultiphaseCloud<coalParcel> > - ( - dict, - owner, - typeName - ), + SurfaceReactionModel<CloudType>(dict, owner, typeName), Sb_(dimensionedScalar(this->coeffDict().lookup("Sb")).value()), D_(dimensionedScalar(this->coeffDict().lookup("D")).value()), CsLocalId_(-1), @@ -63,10 +59,10 @@ Foam::COxidationDiffusionLimitedRate::COxidationDiffusionLimitedRate { FatalErrorIn ( - "COxidationDiffusionLimitedRate" + "COxidationDiffusionLimitedRate<CloudType>" "(" "const dictionary&, " - "ReactingMultiphaseCloud<coalParcel>&" + "CloudType&" ")" ) << "Stoichiometry of reaction, Sb, must be greater than zero" << nl << exit(FatalError); @@ -76,19 +72,23 @@ Foam::COxidationDiffusionLimitedRate::COxidationDiffusionLimitedRate // * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // -Foam::COxidationDiffusionLimitedRate::~COxidationDiffusionLimitedRate() +template<class CloudType> +Foam::COxidationDiffusionLimitedRate<CloudType>:: +~COxidationDiffusionLimitedRate() {} // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // -bool Foam::COxidationDiffusionLimitedRate::active() const +template<class CloudType> +bool Foam::COxidationDiffusionLimitedRate<CloudType>::active() const { return true; } -Foam::scalar Foam::COxidationDiffusionLimitedRate::calculate +template<class CloudType> +Foam::scalar Foam::COxidationDiffusionLimitedRate<CloudType>::calculate ( const scalar dt, const label cellI, @@ -110,7 +110,8 @@ Foam::scalar Foam::COxidationDiffusionLimitedRate::calculate ) const { // Fraction of remaining combustible material - const scalar fComb = YMixture[coalParcel::SLD]*YSolid[CsLocalId_]; + const label idSolid = CloudType::parcelType::SLD; + const scalar fComb = YMixture[idSolid]*YSolid[CsLocalId_]; // Surface combustion active combustible fraction is consumed if (fComb < SMALL) @@ -120,7 +121,7 @@ Foam::scalar Foam::COxidationDiffusionLimitedRate::calculate // Local mass fraction of O2 in the carrier phase const scalar YO2 = - owner().carrierThermo().composition().Y(O2GlobalId_)[cellI]; + this->owner().carrierThermo().composition().Y(O2GlobalId_)[cellI]; // Change in C mass [kg] scalar dmC = diff --git a/src/lagrangian/coalCombustion/submodels/surfaceReactionModel/COxidationDiffusionLimitedRate/COxidationDiffusionLimitedRate.H b/src/lagrangian/coalCombustion/submodels/surfaceReactionModel/COxidationDiffusionLimitedRate/COxidationDiffusionLimitedRate.H index 4458a6e31e2..2467f2a4567 100644 --- a/src/lagrangian/coalCombustion/submodels/surfaceReactionModel/COxidationDiffusionLimitedRate/COxidationDiffusionLimitedRate.H +++ b/src/lagrangian/coalCombustion/submodels/surfaceReactionModel/COxidationDiffusionLimitedRate/COxidationDiffusionLimitedRate.H @@ -38,19 +38,23 @@ Description #define COxidationDiffusionLimitedRate_H #include "SurfaceReactionModel.H" -#include "coalParcel.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +// Forward class declarations +template<class CloudType> +class COxidationDiffusionLimitedRate; + namespace Foam { /*---------------------------------------------------------------------------*\ - Class COxidationDiffusionLimitedRate Declaration + Class COxidationDiffusionLimitedRate Declaration \*---------------------------------------------------------------------------*/ +template<class CloudType> class COxidationDiffusionLimitedRate : - public SurfaceReactionModel<ReactingMultiphaseCloud<coalParcel> > + public SurfaceReactionModel<CloudType> { // Private data @@ -99,7 +103,7 @@ public: COxidationDiffusionLimitedRate ( const dictionary& dict, - ReactingMultiphaseCloud<coalParcel>& owner + CloudType& owner ); @@ -142,6 +146,12 @@ public: // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +#ifdef NoRepository + #include "COxidationDiffusionLimitedRate.C" +#endif + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + #endif // ************************************************************************* // diff --git a/src/lagrangian/coalCombustion/submodels/surfaceReactionModel/COxidationKineticDiffusionLimitedRate/COxidationKineticDiffusionLimitedRate.C b/src/lagrangian/coalCombustion/submodels/surfaceReactionModel/COxidationKineticDiffusionLimitedRate/COxidationKineticDiffusionLimitedRate.C index 078cd100d73..356abbe327a 100644 --- a/src/lagrangian/coalCombustion/submodels/surfaceReactionModel/COxidationKineticDiffusionLimitedRate/COxidationKineticDiffusionLimitedRate.C +++ b/src/lagrangian/coalCombustion/submodels/surfaceReactionModel/COxidationKineticDiffusionLimitedRate/COxidationKineticDiffusionLimitedRate.C @@ -28,14 +28,15 @@ License // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // -Foam::COxidationKineticDiffusionLimitedRate:: +template<class CloudType> +Foam::COxidationKineticDiffusionLimitedRate<CloudType>:: COxidationKineticDiffusionLimitedRate ( const dictionary& dict, - ReactingMultiphaseCloud<coalParcel>& owner + CloudType& owner ) : - SurfaceReactionModel<ReactingMultiphaseCloud<coalParcel> > + SurfaceReactionModel<CloudType> ( dict, owner, @@ -69,7 +70,7 @@ COxidationKineticDiffusionLimitedRate "COxidationKineticDiffusionLimitedRate" "(" "const dictionary&, " - "ReactingMultiphaseCloud<coalParcel>&" + "CloudType&" ")" ) << "Stoichiometry of reaction, Sb, must be greater than zero" << nl << exit(FatalError); @@ -79,20 +80,23 @@ COxidationKineticDiffusionLimitedRate // * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // -Foam::COxidationKineticDiffusionLimitedRate:: +template<class CloudType> +Foam::COxidationKineticDiffusionLimitedRate<CloudType>:: ~COxidationKineticDiffusionLimitedRate() {} // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // -bool Foam::COxidationKineticDiffusionLimitedRate::active() const +template<class CloudType> +bool Foam::COxidationKineticDiffusionLimitedRate<CloudType>::active() const { return true; } -Foam::scalar Foam::COxidationKineticDiffusionLimitedRate::calculate +template<class CloudType> +Foam::scalar Foam::COxidationKineticDiffusionLimitedRate<CloudType>::calculate ( const scalar dt, const label cellI, @@ -114,7 +118,8 @@ Foam::scalar Foam::COxidationKineticDiffusionLimitedRate::calculate ) const { // Fraction of remaining combustible material - const scalar fComb = YMixture[coalParcel::SLD]*YSolid[CsLocalId_]; + const label idSolid = CloudType::parcelType::SLD; + const scalar fComb = YMixture[idSolid]*YSolid[CsLocalId_]; // Surface combustion active combustible fraction is consumed if (fComb < SMALL) @@ -124,7 +129,7 @@ Foam::scalar Foam::COxidationKineticDiffusionLimitedRate::calculate // Local mass fraction of O2 in the carrier phase const scalar YO2 = - owner().carrierThermo().composition().Y(O2GlobalId_)[cellI]; + this->owner().carrierThermo().composition().Y(O2GlobalId_)[cellI]; // Diffusion rate coefficient const scalar D0 = C1_/d*pow(0.5*(T + Tc), 0.75); diff --git a/src/lagrangian/coalCombustion/submodels/surfaceReactionModel/COxidationKineticDiffusionLimitedRate/COxidationKineticDiffusionLimitedRate.H b/src/lagrangian/coalCombustion/submodels/surfaceReactionModel/COxidationKineticDiffusionLimitedRate/COxidationKineticDiffusionLimitedRate.H index 1073cb637f8..099614633dd 100644 --- a/src/lagrangian/coalCombustion/submodels/surfaceReactionModel/COxidationKineticDiffusionLimitedRate/COxidationKineticDiffusionLimitedRate.H +++ b/src/lagrangian/coalCombustion/submodels/surfaceReactionModel/COxidationKineticDiffusionLimitedRate/COxidationKineticDiffusionLimitedRate.H @@ -39,19 +39,24 @@ Description #define COxidationKineticDiffusionLimitedRate_H #include "SurfaceReactionModel.H" -#include "coalParcel.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // namespace Foam { + +// Forward class declarations +template<class CloudType> +class COxidationKineticDiffusionLimitedRate; + /*---------------------------------------------------------------------------*\ Class COxidationKineticDiffusionLimitedRate Declaration \*---------------------------------------------------------------------------*/ +template<class CloudType> class COxidationKineticDiffusionLimitedRate : - public SurfaceReactionModel<ReactingMultiphaseCloud<coalParcel> > + public SurfaceReactionModel<CloudType> { // Private data @@ -106,7 +111,7 @@ public: COxidationKineticDiffusionLimitedRate ( const dictionary& dict, - ReactingMultiphaseCloud<coalParcel>& owner + CloudType& owner ); @@ -149,6 +154,12 @@ public: // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +#ifdef NoRepository + #include "COxidationKineticDiffusionLimitedRate.C" +#endif + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + #endif // ************************************************************************* // diff --git a/src/lagrangian/coalCombustion/submodels/surfaceReactionModel/COxidationMurphyShaddix/COxidationMurphyShaddix.C b/src/lagrangian/coalCombustion/submodels/surfaceReactionModel/COxidationMurphyShaddix/COxidationMurphyShaddix.C index 265b4b66434..b4ff28cd9cf 100644 --- a/src/lagrangian/coalCombustion/submodels/surfaceReactionModel/COxidationMurphyShaddix/COxidationMurphyShaddix.C +++ b/src/lagrangian/coalCombustion/submodels/surfaceReactionModel/COxidationMurphyShaddix/COxidationMurphyShaddix.C @@ -28,20 +28,23 @@ License // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // -Foam::label Foam::COxidationMurphyShaddix::maxIters_ = 1000; +template<class CloudType> +Foam::label Foam::COxidationMurphyShaddix<CloudType>::maxIters_ = 1000; -Foam::scalar Foam::COxidationMurphyShaddix::tolerance_ = 1e-06; +template<class CloudType> +Foam::scalar Foam::COxidationMurphyShaddix<CloudType>::tolerance_ = 1e-06; // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // -Foam::COxidationMurphyShaddix::COxidationMurphyShaddix +template<class CloudType> +Foam::COxidationMurphyShaddix<CloudType>::COxidationMurphyShaddix ( const dictionary& dict, - ReactingMultiphaseCloud<coalParcel>& owner + CloudType& owner ) : - SurfaceReactionModel<ReactingMultiphaseCloud<coalParcel> > + SurfaceReactionModel<CloudType> ( dict, owner, @@ -76,19 +79,22 @@ Foam::COxidationMurphyShaddix::COxidationMurphyShaddix // * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // -Foam::COxidationMurphyShaddix::~COxidationMurphyShaddix() +template<class CloudType> +Foam::COxidationMurphyShaddix<CloudType>::~COxidationMurphyShaddix() {} // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // -bool Foam::COxidationMurphyShaddix::active() const +template<class CloudType> +bool Foam::COxidationMurphyShaddix<CloudType>::active() const { return true; } -Foam::scalar Foam::COxidationMurphyShaddix::calculate +template<class CloudType> +Foam::scalar Foam::COxidationMurphyShaddix<CloudType>::calculate ( const scalar dt, const label cellI, @@ -110,7 +116,8 @@ Foam::scalar Foam::COxidationMurphyShaddix::calculate ) const { // Fraction of remaining combustible material - const scalar fComb = YMixture[coalParcel::SLD]*YSolid[CsLocalId_]; + const label idSolid = CloudType::parcelType::SLD; + const scalar fComb = YMixture[idSolid]*YSolid[CsLocalId_]; // Surface combustion until combustible fraction is consumed if (fComb < SMALL) @@ -120,7 +127,7 @@ Foam::scalar Foam::COxidationMurphyShaddix::calculate // Cell carrier phase O2 species density [kg/m^3] const scalar rhoO2 = - rhoc*owner().carrierThermo().composition().Y(O2GlobalId_)[cellI]; + rhoc*this->owner().carrierThermo().composition().Y(O2GlobalId_)[cellI]; if (rhoO2 < SMALL) { @@ -186,8 +193,10 @@ Foam::scalar Foam::COxidationMurphyShaddix::calculate if (iter > maxIters_) { - WarningIn("scalar Foam::COxidationMurphyShaddix::calculate(...)") - << "iter limit reached (" << maxIters_ << ")" << nl << endl; + WarningIn + ( + "scalar Foam::COxidationMurphyShaddix<CloudType>::calculate(...)" + ) << "iter limit reached (" << maxIters_ << ")" << nl << endl; } // Calculate the number of molar units reacted diff --git a/src/lagrangian/coalCombustion/submodels/surfaceReactionModel/COxidationMurphyShaddix/COxidationMurphyShaddix.H b/src/lagrangian/coalCombustion/submodels/surfaceReactionModel/COxidationMurphyShaddix/COxidationMurphyShaddix.H index bc026db3646..e08516d2dfe 100644 --- a/src/lagrangian/coalCombustion/submodels/surfaceReactionModel/COxidationMurphyShaddix/COxidationMurphyShaddix.H +++ b/src/lagrangian/coalCombustion/submodels/surfaceReactionModel/COxidationMurphyShaddix/COxidationMurphyShaddix.H @@ -34,19 +34,24 @@ Description #define COxidationMurphyShaddix_H #include "SurfaceReactionModel.H" -#include "coalParcel.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // namespace Foam { + +// Forward class declarations +template<class CloudType> +class COxidationMurphyShaddix; + /*---------------------------------------------------------------------------*\ Class COxidationMurphyShaddix Declaration \*---------------------------------------------------------------------------*/ +template<class CloudType> class COxidationMurphyShaddix : - public SurfaceReactionModel<ReactingMultiphaseCloud<coalParcel> > + public SurfaceReactionModel<CloudType> { // Private data @@ -122,7 +127,7 @@ public: COxidationMurphyShaddix ( const dictionary& dict, - ReactingMultiphaseCloud<coalParcel>& owner + CloudType& owner ); @@ -165,6 +170,12 @@ public: // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +#ifdef NoRepository + #include "COxidationMurphyShaddix.C" +#endif + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + #endif // ************************************************************************* // diff --git a/src/lagrangian/intermediate/Make/files b/src/lagrangian/intermediate/Make/files index 2d8790fd763..c67e9e606d3 100644 --- a/src/lagrangian/intermediate/Make/files +++ b/src/lagrangian/intermediate/Make/files @@ -2,32 +2,33 @@ PARCELS=parcels DERIVEDPARCELS=$(PARCELS)/derived BASEPARCELS=$(PARCELS)/baseClasses -/* Parcels */ -$(DERIVEDPARCELS)/basicKinematicParcel/basicKinematicParcel.C -$(DERIVEDPARCELS)/basicThermoParcel/basicThermoParcel.C -/* $(DERIVEDPARCELS)/basicReactingParcel/basicReactingParcel.C */ -/* $(DERIVEDPARCELS)/basicReactingMultiphaseParcel/basicReactingMultiphaseParcel.C */ -/* $(DERIVEDPARCELS)/trackedReactingParcel/trackedReactingParcel.C */ +CLOUDS=clouds +DERIVEDCLOUDS=$(CLOUDS)/derived +BASECLOUDS=$(CLOUDS)/baseClasses + +/* Parcels */ $(BASEPARCELS)/reactingParcel/reactingParcel.C + /* Cloud base classes */ -clouds/baseClasses/kinematicCloud/kinematicCloud.C -clouds/baseClasses/thermoCloud/thermoCloud.C -clouds/baseClasses/reactingCloud/reactingCloud.C -clouds/baseClasses/reactingMultiphaseCloud/reactingMultiphaseCloud.C +$(BASECLOUDS)/kinematicCloud/kinematicCloud.C +$(BASECLOUDS)/thermoCloud/thermoCloud.C +$(BASECLOUDS)/reactingCloud/reactingCloud.C +$(BASECLOUDS)/reactingMultiphaseCloud/reactingMultiphaseCloud.C /* Cloud container/injection mechanisms */ -clouds/derived/basicKinematicCloud/basicKinematicCloud.C -clouds/derived/basicThermoCloud/basicThermoCloud.C -/* clouds/derived/basicReactingCloud/basicReactingCloud.C */ -/* clouds/derived/basicReactingMultiphaseCloud/basicReactingMultiphaseCloud.C */ -/* clouds/derived/trackedReactingCloud/trackedReactingCloud.C */ +$(DERIVEDCLOUDS)/basicKinematicCloud/basicKinematicCloud.C +$(DERIVEDCLOUDS)/basicThermoCloud/basicThermoCloud.C +$(DERIVEDCLOUDS)/BasicReactingCloud/defineBasicReactingCloud.C +$(DERIVEDCLOUDS)/BasicReactingMultiphaseCloud/defineBasicReactingMultiphaseCloud.C +$(DERIVEDCLOUDS)/BasicTrackedReactingCloud/defineBasicTrackedReactingCloud.C /* kinematic parcel sub-models */ KINEMATICPARCEL=$(DERIVEDPARCELS)/basicKinematicParcel +$(KINEMATICPARCEL)/basicKinematicParcel.C $(KINEMATICPARCEL)/defineBasicKinematicParcel.C $(KINEMATICPARCEL)/submodels/makeBasicKinematicParcelDispersionModels.C $(KINEMATICPARCEL)/submodels/makeBasicKinematicParcelDragModels.C @@ -38,6 +39,7 @@ $(KINEMATICPARCEL)/submodels/makeBasicKinematicParcelPostProcessingModels.C /* thermo parcel sub-models */ THERMOPARCEL=$(DERIVEDPARCELS)/basicThermoParcel +$(THERMOPARCEL)/basicThermoParcel.C $(THERMOPARCEL)/defineBasicThermoParcel.C $(THERMOPARCEL)/submodels/makeBasicThermoParcelDispersionModels.C $(THERMOPARCEL)/submodels/makeBasicThermoParcelDragModels.C @@ -50,42 +52,19 @@ $(THERMOPARCEL)/submodels/makeBasicThermoParcelPostProcessingModels.C /* reacting parcel sub-models */ REACTINGPARCEL=$(DERIVEDPARCELS)/BasicReactingParcel $(REACTINGPARCEL)/defineBasicReactingParcel.C -$(REACTINGPARCEL)/submodels/makeBasicReactingParcelCompositionModels.C -$(REACTINGPARCEL)/submodels/makeBasicReactingParcelDispersionModels.C -$(REACTINGPARCEL)/submodels/makeBasicReactingParcelDragModels.C -$(REACTINGPARCEL)/submodels/makeBasicReactingParcelHeatTransferModels.C -$(REACTINGPARCEL)/submodels/makeBasicReactingParcelInjectionModels.C -$(REACTINGPARCEL)/submodels/makeBasicReactingParcelPatchInteractionModels.C -$(REACTINGPARCEL)/submodels/makeBasicReactingParcelPhaseChangeModels.C -$(REACTINGPARCEL)/submodels/makeBasicReactingParcelPostProcessingModels.C - - -/* reacting multiphase parcel sub-models */ -REACTINGMPPARCEL=$(DERIVEDPARCELS)/BasicReactingMultiphaseParcel -$(REACTINGMPPARCEL)/defineBasicReactingMultiphaseParcel.C -$(REACTINGMPPARCEL)/submodels/makeBasicReactingMultiphaseParcelCompositionModels.C -$(REACTINGMPPARCEL)/submodels/makeBasicReactingMultiphaseParcelDevolatilisationModels.C -$(REACTINGMPPARCEL)/submodels/makeBasicReactingMultiphaseParcelDispersionModels.C -$(REACTINGMPPARCEL)/submodels/makeBasicReactingMultiphaseParcelDragModels.C -$(REACTINGMPPARCEL)/submodels/makeBasicReactingMultiphaseParcelHeatTransferModels.C -$(REACTINGMPPARCEL)/submodels/makeBasicReactingMultiphaseParcelInjectionModels.C -$(REACTINGMPPARCEL)/submodels/makeBasicReactingMultiphaseParcelPatchInteractionModels.C -$(REACTINGMPPARCEL)/submodels/makeBasicReactingMultiphaseParcelPhaseChangeModels.C -$(REACTINGMPPARCEL)/submodels/makeBasicReactingMultiphaseParcelPostProcessingModels.C -$(REACTINGMPPARCEL)/submodels/makeBasicReactingMultiphaseParcelSurfaceReactionModels.C +$(REACTINGPARCEL)/submodels/makeBasicReactingParcelSubmodels.C /* tracked reacting parcel sub-models */ TRACKEDREACTINGPARCEL=$(DERIVEDPARCELS)/BasicTrackedReactingParcel $(TRACKEDREACTINGPARCEL)/defineTrackedReactingParcel.C -$(TRACKEDREACTINGPARCEL)/submodels/makeTrackedReactingParcelCompositionModels.C -$(TRACKEDREACTINGPARCEL)/submodels/makeTrackedReactingParcelDispersionModels.C -$(TRACKEDREACTINGPARCEL)/submodels/makeTrackedReactingParcelDragModels.C -$(TRACKEDREACTINGPARCEL)/submodels/makeTrackedReactingParcelHeatTransferModels.C -$(TRACKEDREACTINGPARCEL)/submodels/makeTrackedReactingParcelInjectionModels.C -$(TRACKEDREACTINGPARCEL)/submodels/makeTrackedReactingParcelPatchInteractionModels.C -$(TRACKEDREACTINGPARCEL)/submodels/makeTrackedReactingParcelPhaseChangeModels.C -$(TRACKEDREACTINGPARCEL)/submodels/makeTrackedReactingParcelPostProcessingModels.C +$(TRACKEDREACTINGPARCEL)/submodels/makeBasicTrackedReactingParcelSubmodels.C + + +/* reacting multiphase parcel sub-models */ +/*REACTINGMPPARCEL=$(DERIVEDPARCELS)/BasicReactingMultiphaseParcel +$(REACTINGMPPARCEL)/defineBasicReactingMultiphaseParcel.C +$(REACTINGMPPARCEL)/submodels/makeBasicReactingMultiphaseSubmodels.C /* bolt-on models */ diff --git a/src/lagrangian/intermediate/clouds/Templates/ReactingCloud/ReactingCloud.H b/src/lagrangian/intermediate/clouds/Templates/ReactingCloud/ReactingCloud.H index 1ac2fb9af5e..d0296c0ea0b 100644 --- a/src/lagrangian/intermediate/clouds/Templates/ReactingCloud/ReactingCloud.H +++ b/src/lagrangian/intermediate/clouds/Templates/ReactingCloud/ReactingCloud.H @@ -47,8 +47,6 @@ SourceFiles #include "ThermoCloud.H" #include "reactingCloud.H" -#include "ReactingCloudThermoTypes.H" - // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // namespace Foam diff --git a/src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeBasicReactingParcelCompositionModels.C b/src/lagrangian/intermediate/clouds/derived/BasicReactingCloud/defineBasicReactingCloud.C similarity index 80% rename from src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeBasicReactingParcelCompositionModels.C rename to src/lagrangian/intermediate/clouds/derived/BasicReactingCloud/defineBasicReactingCloud.C index ef686198d6a..ca5b9e80906 100644 --- a/src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeBasicReactingParcelCompositionModels.C +++ b/src/lagrangian/intermediate/clouds/derived/BasicReactingCloud/defineBasicReactingCloud.C @@ -24,24 +24,14 @@ License \*---------------------------------------------------------------------------*/ -#include "basicReactingParcelTypes.H" -#include "ReactingCloud.H" - -#include "SinglePhaseMixture.H" +#include "createReactingCloudTypes.H" +#include "BasicReactingCloud.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // namespace Foam { - makeCompositionModel(ReactingCloud<bReactingParcel>); - - // Add instances of composition model to the table - makeCompositionModelType - ( - SinglePhaseMixture, - ReactingCloud, - bReactingParcel - ); + createReactingCloudType(BasicReactingCloud); }; diff --git a/src/lagrangian/intermediate/clouds/derived/BasicReactingMultiphaseCloud/BasicReactingMultiphaseCloud.H b/src/lagrangian/intermediate/clouds/derived/BasicReactingMultiphaseCloud/BasicReactingMultiphaseCloud.H index f1d94e4d8c8..cfabcd69274 100644 --- a/src/lagrangian/intermediate/clouds/derived/BasicReactingMultiphaseCloud/BasicReactingMultiphaseCloud.H +++ b/src/lagrangian/intermediate/clouds/derived/BasicReactingMultiphaseCloud/BasicReactingMultiphaseCloud.H @@ -55,7 +55,7 @@ class BasicReactingMultiphaseCloud; template<class ThermoType> class BasicReactingMultiphaseCloud : - public ReactingMultiphaseCloud<BasicReactingMultiphaseParcel> + public ReactingMultiphaseCloud<BasicReactingMultiphaseParcel<ThermoType> > { // Private Member Functions diff --git a/src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeBasicReactingParcelDragModels.C b/src/lagrangian/intermediate/clouds/derived/BasicReactingMultiphaseCloud/defineBasicReactingMultiphaseCloud.C similarity index 80% rename from src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeBasicReactingParcelDragModels.C rename to src/lagrangian/intermediate/clouds/derived/BasicReactingMultiphaseCloud/defineBasicReactingMultiphaseCloud.C index 6d51de8d7d0..24030e26860 100644 --- a/src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeBasicReactingParcelDragModels.C +++ b/src/lagrangian/intermediate/clouds/derived/BasicReactingMultiphaseCloud/defineBasicReactingMultiphaseCloud.C @@ -24,21 +24,14 @@ License \*---------------------------------------------------------------------------*/ -#include "basicReactingParcelTypes.H" -#include "KinematicCloud.H" - -#include "NoDrag.H" -#include "SphereDrag.H" +#include "createReactingCloudTypes.H" +#include "BasicReactingMultiphaseCloud.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // namespace Foam { - makeDragModel(KinematicCloud<bReactingParcel>); - - // Add instances of drag model to the table - makeDragModelType(NoDrag, KinematicCloud, bReactingParcel); - makeDragModelType(SphereDrag, KinematicCloud, bReactingParcel); + createReactingCloudType(BasicReactingMultiphaseCloud); }; diff --git a/src/lagrangian/intermediate/clouds/derived/BasicTrackedReactingCloud/BasicTrackedReactingCloud.C b/src/lagrangian/intermediate/clouds/derived/BasicTrackedReactingCloud/BasicTrackedReactingCloud.C index ecd0a267d84..2b20183eca9 100644 --- a/src/lagrangian/intermediate/clouds/derived/BasicTrackedReactingCloud/BasicTrackedReactingCloud.C +++ b/src/lagrangian/intermediate/clouds/derived/BasicTrackedReactingCloud/BasicTrackedReactingCloud.C @@ -24,12 +24,12 @@ License \*---------------------------------------------------------------------------*/ -#include "trackedReactingCloud.H" +#include "BasicTrackedReactingCloud.H" // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // template<class ThermoType> -Foam::trackedReactingCloud<ThermoType>::trackedReactingCloud +Foam::BasicTrackedReactingCloud<ThermoType>::BasicTrackedReactingCloud ( const word& cloudName, const volScalarField& rho, @@ -56,14 +56,14 @@ Foam::trackedReactingCloud<ThermoType>::trackedReactingCloud // * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // template<class ThermoType> -Foam::trackedReactingCloud<ThermoType>::~trackedReactingCloud() +Foam::BasicTrackedReactingCloud<ThermoType>::~BasicTrackedReactingCloud() {} // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // template<class ThermoType> -void Foam::trackedReactingCloud<ThermoType>::writeFields() const +void Foam::BasicTrackedReactingCloud<ThermoType>::writeFields() const { BasicTrackedReactingParcel<ThermoType>::writeFields(*this); } diff --git a/src/lagrangian/intermediate/clouds/derived/BasicTrackedReactingCloud/BasicTrackedReactingCloud.H b/src/lagrangian/intermediate/clouds/derived/BasicTrackedReactingCloud/BasicTrackedReactingCloud.H index 87d22a96473..7c92e61276a 100644 --- a/src/lagrangian/intermediate/clouds/derived/BasicTrackedReactingCloud/BasicTrackedReactingCloud.H +++ b/src/lagrangian/intermediate/clouds/derived/BasicTrackedReactingCloud/BasicTrackedReactingCloud.H @@ -23,18 +23,18 @@ License Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Class - Foam::trackedReactingCloud + Foam::BasicTrackedReactingCloud Description Reacting cloud templated on the reacting parcel SourceFiles - trackedReactingCloud.C + BasicTrackedReactingCloud.C \*---------------------------------------------------------------------------*/ -#ifndef trackedReactingCloud_H -#define trackedReactingCloud_H +#ifndef BasicTrackedReactingCloud_H +#define BasicTrackedReactingCloud_H #include "ReactingCloud.H" #include "BasicTrackedReactingParcel.H" @@ -46,36 +46,36 @@ namespace Foam // Forward declaration of classes template<class ThermoType> -class trackedReactingCloud; +class BasicTrackedReactingCloud; /*---------------------------------------------------------------------------*\ - Class trackedReactingCloud Declaration + Class BasicTrackedReactingCloud Declaration \*---------------------------------------------------------------------------*/ template<class ThermoType> -class trackedReactingCloud +class BasicTrackedReactingCloud : public ReactingCloud<BasicTrackedReactingParcel<ThermoType> > { // Private Member Functions //- Disallow default bitwise copy construct - trackedReactingCloud(const trackedReactingCloud&); + BasicTrackedReactingCloud(const BasicTrackedReactingCloud&); //- Disallow default bitwise assignment - void operator=(const trackedReactingCloud&); + void operator=(const BasicTrackedReactingCloud&); public: //- Runtime type information - TypeName("trackedReactingCloud"); + TypeName("BasicTrackedReactingCloud"); // Constructors //- Construct given carrier gas fields - trackedReactingCloud + BasicTrackedReactingCloud ( const word& cloudName, const volScalarField& rho, @@ -87,7 +87,7 @@ public: //- Destructor - ~trackedReactingCloud(); + ~BasicTrackedReactingCloud(); // Member Functions @@ -104,7 +104,7 @@ public: // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // #ifdef NoRepository - #include "trackedReactingCloud.C" + #include "BasicTrackedReactingCloud.C" #endif // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/src/lagrangian/intermediate/parcels/derived/BasicTrackedReactingParcel/basicTrackedReactingParcelTypes.H b/src/lagrangian/intermediate/clouds/derived/BasicTrackedReactingCloud/defineBasicTrackedReactingCloud.C similarity index 80% rename from src/lagrangian/intermediate/parcels/derived/BasicTrackedReactingParcel/basicTrackedReactingParcelTypes.H rename to src/lagrangian/intermediate/clouds/derived/BasicTrackedReactingCloud/defineBasicTrackedReactingCloud.C index 9a30c248c77..6f6700f198d 100644 --- a/src/lagrangian/intermediate/parcels/derived/BasicTrackedReactingParcel/basicTrackedReactingParcelTypes.H +++ b/src/lagrangian/intermediate/clouds/derived/BasicTrackedReactingCloud/defineBasicTrackedReactingCloud.C @@ -24,22 +24,15 @@ License \*---------------------------------------------------------------------------*/ -#ifndef basicTrackedReactingParcelTypes_H -#define basicTrackedReactingParcelTypes_H - -#include "BasicTrackedReactingParcel.H" -#include "ReactingCloudThermoTypes.H" +#include "createReactingCloudTypes.H" +#include "BasicTrackedReactingCloud.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // namespace Foam { - typedef BasicTrackedReactingParcel<specieReactingProperties> - bTrackedReactingParcel; + createReactingCloudType(BasicTrackedReactingCloud); }; -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif // ************************************************************************* // diff --git a/src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/basicReactingMultiphaseParcelTypes.H b/src/lagrangian/intermediate/clouds/include/createReactingCloudTypes.H similarity index 69% rename from src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/basicReactingMultiphaseParcelTypes.H rename to src/lagrangian/intermediate/clouds/include/createReactingCloudTypes.H index d693682796b..c298abd0448 100644 --- a/src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/basicReactingMultiphaseParcelTypes.H +++ b/src/lagrangian/intermediate/clouds/include/createReactingCloudTypes.H @@ -24,19 +24,23 @@ License \*---------------------------------------------------------------------------*/ -#ifndef basicReactingMultiphaseParcelTypes_H -#define basicReactingMultiphaseParcelTypes_H +#ifndef createReactingCloudTypes_H +#define createReactingCloudTypes_H -#include "BasicReactingMultiphaseParcel.H" -#include "ReactingCloudThermoTypes.H" +#include "reactingThermoTypes.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -namespace Foam -{ - typedef BasicReactingMultiphaseParcel<specieReactingProperties> - bReactingMultiphaseParcel; -}; +#define createReactingCloudType(CloudType) \ + \ + createReactingCloudThermoType(CloudType, specieConstProperties); \ + createReactingCloudThermoType(CloudType, specieReactingProperties); + + +#define createReactingCloudThermoType(CloudType, ThermoType) \ + \ + defineTemplateTypeNameAndDebug(CloudType<ThermoType>, 0); + // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/defineBasicReactingMultiphaseParcel.C b/src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/defineBasicReactingMultiphaseParcel.C index d022f38f20a..12df07fbbc6 100644 --- a/src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/defineBasicReactingMultiphaseParcel.C +++ b/src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/defineBasicReactingMultiphaseParcel.C @@ -24,79 +24,14 @@ License \*---------------------------------------------------------------------------*/ -#include "basicReactingMultiphaseParcelTypes.H" -#include "ReactingMultiphaseCloud.H" +#include "createReactingMultiphaseParcelTypes.H" +#include "BasicReactingMultiphaseParcel.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // namespace Foam { - defineTemplateTypeNameAndDebug(bReactingMultiphaseParcel, 0); - - defineTemplateTypeNameAndDebug(Particle<bReactingMultiphaseParcel>, 0); - - defineTemplateTypeNameAndDebug(Cloud<bReactingMultiphaseParcel>, 0); - - defineParcelTypeNameAndDebug - ( - KinematicParcel<bReactingMultiphaseParcel>, - 0 - ); - defineTemplateTypeNameAndDebug - ( - KinematicParcel<bReactingMultiphaseParcel>, - 0 - ); - defineParcelTypeNameAndDebug - ( - ThermoParcel<bReactingMultiphaseParcel>, - 0 - ); - defineTemplateTypeNameAndDebug - ( - ThermoParcel<bReactingMultiphaseParcel>, - 0 - ); - defineParcelTypeNameAndDebug - ( - ReactingParcel<bReactingMultiphaseParcel>, - 0 - ); - defineTemplateTypeNameAndDebug - ( - ReactingParcel<bReactingMultiphaseParcel>, - 0 - ); - defineParcelTypeNameAndDebug - ( - ReactingMultiphaseParcel<bReactingMultiphaseParcel>, - 0 - ); - defineTemplateTypeNameAndDebug - ( - ReactingMultiphaseParcel<bReactingMultiphaseParcel>, - 0 - ); - - defineParcelTypeNameAndDebug - ( - KinematicCloud<bReactingMultiphaseParcel>, - 0 - ); - defineParcelTypeNameAndDebug - ( - ThermoCloud<bReactingMultiphaseParcel>, - 0 - ); - defineParcelTypeNameAndDebug - ( - ReactingCloud<bReactingMultiphaseParcel>, - 0 - ); - defineParcelTypeNameAndDebug - ( - ReactingMultiphaseCloud<bReactingMultiphaseParcel>, - 0 - ); - + createReactingMultiphaseParcelType(BasicReactingMultiphaseParcel); }; diff --git a/src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/submodels/makeBasicReactingMultiphaseParcelCompositionModels.C b/src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/submodels/makeBasicReactingMultiphaseParcelCompositionModels.C deleted file mode 100644 index c1564097932..00000000000 --- a/src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/submodels/makeBasicReactingMultiphaseParcelCompositionModels.C +++ /dev/null @@ -1,51 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "basicReactingMultiphaseParcelTypes.H" -#include "ReactingCloud.H" - -#include "SingleMixtureFraction.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - makeCompositionModel - ( - ReactingCloud<bReactingMultiphaseParcel> - ); - - // Add instances of composition model to the table - makeCompositionModelType - ( - SingleMixtureFraction, - ReactingCloud, - bReactingMultiphaseParcel - ); -}; - - -// ************************************************************************* // diff --git a/src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/submodels/makeBasicReactingMultiphaseParcelDevolatilisationModels.C b/src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/submodels/makeBasicReactingMultiphaseParcelDevolatilisationModels.C deleted file mode 100644 index 8bd2d5b9610..00000000000 --- a/src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/submodels/makeBasicReactingMultiphaseParcelDevolatilisationModels.C +++ /dev/null @@ -1,65 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "basicReactingMultiphaseParcelTypes.H" -#include "ReactingMultiphaseCloud.H" - -#include "NoDevolatilisation.H" -#include "ConstantRateDevolatilisation.H" -#include "SingleKineticRateDevolatilisation.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - makeDevolatilisationModel - ( - ReactingMultiphaseCloud<bReactingMultiphaseParcel> - ); - - // Add instances of devolatilisation model to the table - makeDevolatilisationModelType - ( - NoDevolatilisation, - ReactingMultiphaseCloud, - bReactingMultiphaseParcel - ); - makeDevolatilisationModelType - ( - ConstantRateDevolatilisation, - ReactingMultiphaseCloud, - bReactingMultiphaseParcel - ); - makeDevolatilisationModelType - ( - SingleKineticRateDevolatilisation, - ReactingMultiphaseCloud, - bReactingMultiphaseParcel - ); -}; - - -// ************************************************************************* // diff --git a/src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/submodels/makeBasicReactingMultiphaseParcelDragModels.C b/src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/submodels/makeBasicReactingMultiphaseParcelDragModels.C deleted file mode 100644 index 9cda16d3f4b..00000000000 --- a/src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/submodels/makeBasicReactingMultiphaseParcelDragModels.C +++ /dev/null @@ -1,50 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "basicReactingMultiphaseParcelTypes.H" -#include "KinematicCloud.H" - -#include "NoDrag.H" -#include "SphereDrag.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - makeDragModel(KinematicCloud<bReactingMultiphaseParcel>); - - // Add instances of drag model to the table - makeDragModelType(NoDrag, KinematicCloud, bReactingMultiphaseParcel); - makeDragModelType - ( - SphereDrag, - KinematicCloud, - bReactingMultiphaseParcel - ); -}; - - -// ************************************************************************* // diff --git a/src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/submodels/makeBasicReactingMultiphaseParcelInjectionModels.C b/src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/submodels/makeBasicReactingMultiphaseParcelInjectionModels.C deleted file mode 100644 index 03ebbf29f55..00000000000 --- a/src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/submodels/makeBasicReactingMultiphaseParcelInjectionModels.C +++ /dev/null @@ -1,69 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "basicReactingMultiphaseParcelTypes.H" -#include "ReactingCloud.H" - -#include "ConeInjection.H" -#include "FieldActivatedInjection.H" -#include "ManualInjection.H" -#include "NoInjection.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - makeInjectionModel(KinematicCloud<bReactingMultiphaseParcel>); - - // Add instances of injection model to the table - makeInjectionModelType - ( - ConeInjection, - KinematicCloud, - bReactingMultiphaseParcel - ); - makeInjectionModelType - ( - FieldActivatedInjection, - KinematicCloud, - bReactingMultiphaseParcel - ); - makeInjectionModelType - ( - ManualInjection, - KinematicCloud, - bReactingMultiphaseParcel - ); - makeInjectionModelType - ( - NoInjection, - KinematicCloud, - bReactingMultiphaseParcel - ); -}; - - -// ************************************************************************* // diff --git a/src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/submodels/makeBasicReactingMultiphaseParcelPatchInteractionModels.C b/src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/submodels/makeBasicReactingMultiphaseParcelPatchInteractionModels.C deleted file mode 100644 index 67f00c34e6c..00000000000 --- a/src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/submodels/makeBasicReactingMultiphaseParcelPatchInteractionModels.C +++ /dev/null @@ -1,62 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "basicReactingMultiphaseParcelTypes.H" -#include "KinematicCloud.H" - -#include "LocalInteraction.H" -#include "Rebound.H" -#include "StandardWallInteraction.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - makePatchInteractionModel(KinematicCloud<bReactingMultiphaseParcel>); - - // Add instances of patch interaction model to the table - makePatchInteractionModelType - ( - LocalInteraction, - KinematicCloud, - bReactingMultiphaseParcel - ); - makePatchInteractionModelType - ( - Rebound, - KinematicCloud, - bReactingMultiphaseParcel - ); - makePatchInteractionModelType - ( - StandardWallInteraction, - KinematicCloud, - bReactingMultiphaseParcel - ); -}; - - -// ************************************************************************* // diff --git a/src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/submodels/makeBasicReactingMultiphaseParcelPhaseChangeModels.C b/src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/submodels/makeBasicReactingMultiphaseParcelPhaseChangeModels.C deleted file mode 100644 index 2fb67a6f831..00000000000 --- a/src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/submodels/makeBasicReactingMultiphaseParcelPhaseChangeModels.C +++ /dev/null @@ -1,58 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "basicReactingMultiphaseParcelTypes.H" -#include "ReactingCloud.H" - -#include "NoPhaseChange.H" -#include "LiquidEvaporation.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - makePhaseChangeModel - ( - ReactingCloud<bReactingMultiphaseParcel> - ); - - // Add instances of phase change model to the table - makePhaseChangeModelType - ( - NoPhaseChange, - ReactingCloud, - bReactingMultiphaseParcel - ); - makePhaseChangeModelType - ( - LiquidEvaporation, - ReactingCloud, - bReactingMultiphaseParcel - ); -}; - - -// ************************************************************************* // diff --git a/src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/submodels/makeBasicReactingMultiphaseParcelPostProcessingModels.C b/src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/submodels/makeBasicReactingMultiphaseParcelPostProcessingModels.C deleted file mode 100644 index 96dfb6c6106..00000000000 --- a/src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/submodels/makeBasicReactingMultiphaseParcelPostProcessingModels.C +++ /dev/null @@ -1,55 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "basicReactingMultiphaseParcelTypes.H" -#include "KinematicCloud.H" - -#include "NoPostProcessing.H" -#include "StandardPostProcessing.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - makePostProcessingModel(KinematicCloud<bReactingMultiphaseParcel>); - - // Add instances of post-processing model to the table - makePostProcessingModelType - ( - NoPostProcessing, - KinematicCloud, - bReactingMultiphaseParcel - ); - makePostProcessingModelType - ( - StandardPostProcessing, - KinematicCloud, - bReactingMultiphaseParcel - ); -}; - - -// ************************************************************************* // diff --git a/src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/submodels/makeBasicReactingMultiphaseParcelSubmodels.C b/src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/submodels/makeBasicReactingMultiphaseParcelSubmodels.C new file mode 100644 index 00000000000..c5a665fe017 --- /dev/null +++ b/src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/submodels/makeBasicReactingMultiphaseParcelSubmodels.C @@ -0,0 +1,73 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd. + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the + Free Software Foundation; either version 2 of the License, or (at your + option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM; if not, write to the Free Software Foundation, + Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +\*---------------------------------------------------------------------------*/ + +#include "BasicReactingMultiphaseParcel.H" + +#include "makeReactingParcelDispersionModels.H" +#include "makeReactingParcelDragModels.H" +#include "makeReactingParcelInjectionModels.H" +#include "makeReactingParcelPatchInteractionModels.H" +#include "makeReactingParcelPostProcessingModels.H" + +#include "makeReactingParcelHeatTransferModels.H" + +#include "makeReactingMultiphaseParcelCompositionModels.H" +#include "makeReactingParcelPhaseChangeModels.H" + +#include "makeReactingMultiphaseParcelDevolatilisationModels.H" +#include "makeReactingMultiphaseParcelSurfaceReactionModels.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ + // Kinematic sub-models + createReactingDispersionModelType(BasicReactingMultiphaseParcel); + createReactingDragModelType(BasicReactingMultiphaseParcel); + createReactingInjectionModelType(BasicReactingMultiphaseParcel); + createReactingPatchInteractionModelType(BasicReactingMultiphaseParcel); + createReactingPostProcessingModelType(BasicReactingMultiphaseParcel); + + // Thermo sub-models + createReactingHeatTransferModelType(BasicReactingMultiphaseParcel); + + // Reacting sub-models + createReactingMultiphaseCompositionModelType(BasicReactingMultiphaseParcel); + createReactingPhaseChangeModelType(BasicReactingMultiphaseParcel); + + // Reacting multiphase sub-models + createReactingMultiphaseDevolatilisationModelType + ( + BasicReactingMultiphaseParcel + ); + createReactingMultiphaseSurfaceReactionModelType + ( + BasicReactingMultiphaseParcel + ); +}; + + +// ************************************************************************* // diff --git a/src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/submodels/makeBasicReactingMultiphaseParcelSurfaceReactionModels.C b/src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/submodels/makeBasicReactingMultiphaseParcelSurfaceReactionModels.C deleted file mode 100644 index 779a90c43f6..00000000000 --- a/src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/submodels/makeBasicReactingMultiphaseParcelSurfaceReactionModels.C +++ /dev/null @@ -1,51 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "basicReactingMultiphaseParcelTypes.H" -#include "ReactingMultiphaseCloud.H" - -#include "NoSurfaceReaction.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - makeSurfaceReactionModel - ( - ReactingMultiphaseCloud<bReactingMultiphaseParcel> - ); - - // Add instances of surface reaction model to the table - makeSurfaceReactionModelType - ( - NoSurfaceReaction, - ReactingMultiphaseCloud, - bReactingMultiphaseParcel - ); -}; - - -// ************************************************************************* // diff --git a/src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/submodels/makeReactingMultiphaseParcelCompositionModels.H b/src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/submodels/makeReactingMultiphaseParcelCompositionModels.H new file mode 100644 index 00000000000..9f7a15cd43a --- /dev/null +++ b/src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/submodels/makeReactingMultiphaseParcelCompositionModels.H @@ -0,0 +1,70 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / 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 makeReactingMultiphaseParcelCompositionModels_H +#define makeReactingMultiphaseParcelCompositionModels_H + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#include "reactingThermoTypes.H" +#include "ReactingCloud.H" + +#include "SingleMixtureFraction.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#define createReactingMultiphaseCompositionModelType(ParcelType) \ + \ + createReactingMultiphaseCompositionModelThermoType \ + ( \ + ParcelType, \ + specieConstProperties \ + ); \ + createReactingMultiphaseCompositionModelThermoType \ + ( \ + ParcelType, \ + specieReactingProperties \ + ); + + +#define createReactingMultiphaseCompositionModelThermoType(ParcelType, ThermoType)\ + \ + makeCompositionModel(ReactingCloud<ParcelType<ThermoType> >); \ + \ + makeCompositionModelThermoType \ + ( \ + SingleMixtureFraction, \ + ReactingCloud, \ + ParcelType, \ + ThermoType \ + ); + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* // diff --git a/src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/submodels/makeReactingMultiphaseParcelDevolatilisationModels.H b/src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/submodels/makeReactingMultiphaseParcelDevolatilisationModels.H new file mode 100644 index 00000000000..5a3a32e16b2 --- /dev/null +++ b/src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/submodels/makeReactingMultiphaseParcelDevolatilisationModels.H @@ -0,0 +1,89 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / 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 makeReactingMultiphaseParcelDevolatilisationModels_H +#define makeReactingMultiphaseParcelDevolatilisationModels_H + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#include "reactingThermoTypes.H" +#include "ReactingMultiphaseCloud.H" + +#include "ConstantRateDevolatilisation.H" +#include "NoDevolatilisation.H" +#include "SingleKineticRateDevolatilisation.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#define createReactingMultiphaseDevolatilisationModelType(ParcelType) \ + \ + createReactingMultiphaseDevolatilisationModelThermoType \ + ( \ + ParcelType, \ + specieConstProperties \ + ); \ + createReactingMultiphaseDevolatilisationModelThermoType \ + ( \ + ParcelType, \ + specieReactingProperties \ + ); + + +#define createReactingMultiphaseDevolatilisationModelThermoType(ParcelType, ThermoType)\ + \ + makeDevolatilisationModel \ + ( \ + ReactingMultiphaseCloud<ParcelType<ThermoType> > \ + ); \ + \ + makeDevolatilisationModelThermoType \ + ( \ + ConstantRateDevolatilisation, \ + ReactingMultiphaseCloud, \ + ParcelType, \ + ThermoType \ + ); \ + makeDevolatilisationModelThermoType \ + ( \ + NoDevolatilisation, \ + ReactingMultiphaseCloud, \ + ParcelType, \ + ThermoType \ + ); \ + makeDevolatilisationModelThermoType \ + ( \ + SingleKineticRateDevolatilisation, \ + ReactingMultiphaseCloud, \ + ParcelType, \ + ThermoType \ + ); + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* // diff --git a/src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/submodels/makeReactingMultiphaseParcelSurfaceReactionModels.H b/src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/submodels/makeReactingMultiphaseParcelSurfaceReactionModels.H new file mode 100644 index 00000000000..bf04b132d6e --- /dev/null +++ b/src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/submodels/makeReactingMultiphaseParcelSurfaceReactionModels.H @@ -0,0 +1,73 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / 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 makeReactingMultiphaseParcelSurfaceReactionModels_H +#define makeReactingMultiphaseParcelSurfaceReactionModels_H + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#include "reactingThermoTypes.H" +#include "ReactingMultiphaseCloud.H" + +#include "NoSurfaceReaction.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#define createReactingMultiphaseSurfaceReactionModelType(ParcelType) \ + \ + createReactingMultiphaseSurfaceReactionModelThermoType \ + ( \ + ParcelType, \ + specieConstProperties \ + ); \ + createReactingMultiphaseSurfaceReactionModelThermoType \ + ( \ + ParcelType, \ + specieReactingProperties \ + ); + + +#define createReactingMultiphaseSurfaceReactionModelThermoType(ParcelType, ThermoType)\ + \ + makeSurfaceReactionModel \ + ( \ + ReactingMultiphaseCloud<ParcelType<ThermoType> > \ + ); \ + \ + makeSurfaceReactionModelThermoType \ + ( \ + NoSurfaceReaction, \ + ReactingMultiphaseCloud, \ + ParcelType, \ + ThermoType \ + ); + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* // diff --git a/src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/defineBasicReactingParcel.C b/src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/defineBasicReactingParcel.C index 6e64dd43ceb..2c2e78630d6 100644 --- a/src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/defineBasicReactingParcel.C +++ b/src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/defineBasicReactingParcel.C @@ -24,7 +24,8 @@ License \*---------------------------------------------------------------------------*/ -#include "basicReactingParcelTypes.H" +#include "createReactingParcelTypes.H" +#include "BasicReactingParcel.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeBasicReactingParcelDispersionModels.C b/src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeBasicReactingParcelDispersionModels.C deleted file mode 100644 index 81c8562f507..00000000000 --- a/src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeBasicReactingParcelDispersionModels.C +++ /dev/null @@ -1,68 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "basicReactingParcelTypes.H" -#include "KinematicCloud.H" - -#include "NoDispersion.H" -#include "GradientDispersionRAS.H" -#include "StochasticDispersionRAS.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - makeDispersionModel(KinematicCloud<bReactingParcel>); - - defineNamedTemplateTypeNameAndDebug - ( - DispersionRASModel<KinematicCloud<bReactingParcel> >, - 0 - ); - - // Add instances of dispersion model to the table - makeDispersionModelType - ( - NoDispersion, - KinematicCloud, - bReactingParcel - ); - makeDispersionModelType - ( - GradientDispersionRAS, - KinematicCloud, - bReactingParcel - ); - makeDispersionModelType - ( - StochasticDispersionRAS, - KinematicCloud, - bReactingParcel - ); -}; - - -// ************************************************************************* // diff --git a/src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeBasicReactingParcelHeatTransferModels.C b/src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeBasicReactingParcelHeatTransferModels.C deleted file mode 100644 index fbb32db8e4a..00000000000 --- a/src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeBasicReactingParcelHeatTransferModels.C +++ /dev/null @@ -1,55 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "basicReactingParcelTypes.H" -#include "ThermoCloud.H" - -#include "NoHeatTransfer.H" -#include "RanzMarshall.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - makeHeatTransferModel(ThermoCloud<bReactingParcel>); - - // Add instances of heat transfer model to the table - makeHeatTransferModelType - ( - NoHeatTransfer, - ThermoCloud, - bReactingParcel - ); - makeHeatTransferModelType - ( - RanzMarshall, - ThermoCloud, - bReactingParcel - ); -}; - - -// ************************************************************************* // diff --git a/src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeBasicReactingParcelInjectionModels.C b/src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeBasicReactingParcelInjectionModels.C deleted file mode 100644 index 7402b25ecc9..00000000000 --- a/src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeBasicReactingParcelInjectionModels.C +++ /dev/null @@ -1,76 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "basicReactingParcelTypes.H" -#include "ReactingCloud.H" - -#include "ConeInjection.H" -#include "FieldActivatedInjection.H" -#include "ManualInjection.H" -#include "NoInjection.H" -#include "ReactingLookupTableInjection.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - makeInjectionModel(KinematicCloud<bReactingParcel>); - - // Add instances of injection model to the table - makeInjectionModelType - ( - ConeInjection, - KinematicCloud, - bReactingParcel - ); - makeInjectionModelType - ( - FieldActivatedInjection, - KinematicCloud, - bReactingParcel - ); - makeInjectionModelType - ( - ManualInjection, - KinematicCloud, - bReactingParcel - ); - makeInjectionModelType - ( - NoInjection, - KinematicCloud, - bReactingParcel - ); - makeInjectionModelType - ( - ReactingLookupTableInjection, - KinematicCloud, - bReactingParcel - ); -}; - - -// ************************************************************************* // diff --git a/src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeBasicReactingParcelPatchInteractionModels.C b/src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeBasicReactingParcelPatchInteractionModels.C deleted file mode 100644 index f0abeae98b1..00000000000 --- a/src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeBasicReactingParcelPatchInteractionModels.C +++ /dev/null @@ -1,62 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "basicReactingParcelTypes.H" -#include "KinematicCloud.H" - -#include "LocalInteraction.H" -#include "Rebound.H" -#include "StandardWallInteraction.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - makePatchInteractionModel(KinematicCloud<bReactingParcel>); - - // Add instances of patch interaction model to the table - makePatchInteractionModelType - ( - LocalInteraction, - KinematicCloud, - bReactingParcel - ); - makePatchInteractionModelType - ( - Rebound, - KinematicCloud, - bReactingParcel - ); - makePatchInteractionModelType - ( - StandardWallInteraction, - KinematicCloud, - bReactingParcel - ); -}; - - -// ************************************************************************* // diff --git a/src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeBasicReactingParcelPhaseChangeModels.C b/src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeBasicReactingParcelPhaseChangeModels.C deleted file mode 100644 index c0190acefae..00000000000 --- a/src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeBasicReactingParcelPhaseChangeModels.C +++ /dev/null @@ -1,55 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "basicReactingParcelTypes.H" -#include "ReactingCloud.H" - -#include "NoPhaseChange.H" -#include "LiquidEvaporation.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - makePhaseChangeModel(ReactingCloud<bReactingParcel>); - - // Add instances of phase change model to the table - makePhaseChangeModelType - ( - NoPhaseChange, - ReactingCloud, - bReactingParcel - ); - makePhaseChangeModelType - ( - LiquidEvaporation, - ReactingCloud, - bReactingParcel - ); -}; - - -// ************************************************************************* // diff --git a/src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeBasicReactingParcelPostProcessingModels.C b/src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeBasicReactingParcelPostProcessingModels.C deleted file mode 100644 index cd8bd46b234..00000000000 --- a/src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeBasicReactingParcelPostProcessingModels.C +++ /dev/null @@ -1,55 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "basicReactingParcelTypes.H" -#include "KinematicCloud.H" - -#include "NoPostProcessing.H" -#include "StandardPostProcessing.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - makePostProcessingModel(KinematicCloud<bReactingParcel>); - - // Add instances of post-processing model to the table - makePostProcessingModelType - ( - NoPostProcessing, - KinematicCloud, - bReactingParcel - ); - makePostProcessingModelType - ( - StandardPostProcessing, - KinematicCloud, - bReactingParcel - ); -}; - - -// ************************************************************************* // diff --git a/src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/submodels/makeBasicReactingMultiphaseParcelDispersionModels.C b/src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeBasicReactingParcelSubmodels.C similarity index 58% rename from src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/submodels/makeBasicReactingMultiphaseParcelDispersionModels.C rename to src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeBasicReactingParcelSubmodels.C index 6de7b5da1ad..18dcc54fd09 100644 --- a/src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/submodels/makeBasicReactingMultiphaseParcelDispersionModels.C +++ b/src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeBasicReactingParcelSubmodels.C @@ -24,44 +24,36 @@ License \*---------------------------------------------------------------------------*/ -#include "basicReactingMultiphaseParcelTypes.H" -#include "KinematicCloud.H" +#include "BasicReactingParcel.H" -#include "NoDispersion.H" -#include "GradientDispersionRAS.H" -#include "StochasticDispersionRAS.H" +#include "makeReactingParcelDispersionModels.H" +#include "makeReactingParcelDragModels.H" +#include "makeReactingParcelInjectionModels.H" +#include "makeReactingParcelPatchInteractionModels.H" +#include "makeReactingParcelPostProcessingModels.H" + +#include "makeReactingParcelHeatTransferModels.H" + +#include "makeReactingParcelCompositionModels.H" +#include "makeReactingParcelPhaseChangeModels.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // namespace Foam { - makeDispersionModel(KinematicCloud<bReactingMultiphaseParcel>); - - defineNamedTemplateTypeNameAndDebug - ( - DispersionRASModel<KinematicCloud<bReactingMultiphaseParcel> >, - 0 - ); - - // Add instances of dispersion model to the table - makeDispersionModelType - ( - NoDispersion, - KinematicCloud, - bReactingMultiphaseParcel - ); - makeDispersionModelType - ( - GradientDispersionRAS, - KinematicCloud, - bReactingMultiphaseParcel - ); - makeDispersionModelType - ( - StochasticDispersionRAS, - KinematicCloud, - bReactingMultiphaseParcel - ); + // Kinematic sub-models + createReactingDispersionModelType(BasicReactingParcel); + createReactingDragModelType(BasicReactingParcel); + createReactingInjectionModelType(BasicReactingParcel); + createReactingPatchInteractionModelType(BasicReactingParcel); + createReactingPostProcessingModelType(BasicReactingParcel); + + // Thermo sub-models + createReactingHeatTransferModelType(BasicReactingParcel); + + // Reacting sub-models + createReactingCompositionModelType(BasicReactingParcel); + createReactingPhaseChangeModelType(BasicReactingParcel); }; diff --git a/src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeReactingParcelCompositionModels.H b/src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeReactingParcelCompositionModels.H new file mode 100644 index 00000000000..2f6abe0926a --- /dev/null +++ b/src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeReactingParcelCompositionModels.H @@ -0,0 +1,70 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / 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 makeReactingParcelCompositionModels_H +#define makeReactingParcelCompositionModels_H + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#include "reactingThermoTypes.H" +#include "ReactingCloud.H" + +#include "SinglePhaseMixture.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#define createReactingCompositionModelType(ParcelType) \ + \ + createReactingCompositionModelThermoType \ + ( \ + ParcelType, \ + specieConstProperties \ + ); \ + createReactingCompositionModelThermoType \ + ( \ + ParcelType, \ + specieReactingProperties \ + ); + + +#define createReactingCompositionModelThermoType(ParcelType, ThermoType) \ + \ + makeCompositionModel(ReactingCloud<ParcelType<ThermoType> >); \ + \ + makeCompositionModelThermoType \ + ( \ + SinglePhaseMixture, \ + ReactingCloud, \ + ParcelType, \ + ThermoType \ + ); + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* // diff --git a/src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeReactingParcelDispersionModels.H b/src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeReactingParcelDispersionModels.H new file mode 100644 index 00000000000..23827d50d63 --- /dev/null +++ b/src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeReactingParcelDispersionModels.H @@ -0,0 +1,93 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / 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 makeReactingParcelDispersionModels_H +#define makeReactingParcelDispersionModels_H + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#include "reactingThermoTypes.H" +#include "KinematicCloud.H" + +#include "NoDispersion.H" +#include "GradientDispersionRAS.H" +#include "StochasticDispersionRAS.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#define createReactingDispersionModelType(ParcelType) \ + \ + createReactingDispersionModelThermoType \ + ( \ + ParcelType, \ + specieConstProperties \ + ); \ + \ + createReactingDispersionModelThermoType \ + ( \ + ParcelType, \ + specieReactingProperties \ + ); + + +#define createReactingDispersionModelThermoType(ParcelType, ThermoType) \ + \ + makeDispersionModel(KinematicCloud<ParcelType<ThermoType> >); \ + \ + defineNamedTemplateTypeNameAndDebug \ + ( \ + DispersionRASModel<KinematicCloud<ParcelType<ThermoType> > >, \ + 0 \ + ); \ + \ + makeDispersionModelThermoType \ + ( \ + NoDispersion, \ + KinematicCloud, \ + ParcelType, \ + ThermoType \ + ); \ + makeDispersionModelThermoType \ + ( \ + GradientDispersionRAS, \ + KinematicCloud, \ + ParcelType, \ + ThermoType \ + ); \ + makeDispersionModelThermoType \ + ( \ + StochasticDispersionRAS, \ + KinematicCloud, \ + ParcelType, \ + ThermoType \ + ); + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* // diff --git a/src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeReactingParcelDragModels.H b/src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeReactingParcelDragModels.H new file mode 100644 index 00000000000..d919375f8ce --- /dev/null +++ b/src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeReactingParcelDragModels.H @@ -0,0 +1,78 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / 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 makeReactingParcelDragModels_H +#define makeReactingParcelDragModels_H + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#include "reactingThermoTypes.H" +#include "KinematicCloud.H" + +#include "NoDrag.H" +#include "SphereDrag.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#define createReactingDragModelType(ParcelType) \ + \ + createReactingDragModelThermoType \ + ( \ + ParcelType, \ + specieConstProperties \ + ); \ + createReactingDragModelThermoType \ + ( \ + ParcelType, \ + specieReactingProperties \ + ); + + +#define createReactingDragModelThermoType(ParcelType, ThermoType) \ + \ + makeDragModel(KinematicCloud<ParcelType<ThermoType> >); \ + \ + makeDragModelThermoType \ + ( \ + NoDrag, \ + KinematicCloud, \ + ParcelType, \ + ThermoType \ + ); \ + makeDragModelThermoType \ + ( \ + SphereDrag, \ + KinematicCloud, \ + ParcelType, \ + ThermoType \ + ); + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* // diff --git a/src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeReactingParcelHeatTransferModels.H b/src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeReactingParcelHeatTransferModels.H new file mode 100644 index 00000000000..021efc11f45 --- /dev/null +++ b/src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeReactingParcelHeatTransferModels.H @@ -0,0 +1,78 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / 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 makeReactingParcelHeatTransferModels_H +#define makeReactingParcelHeatTransferModels_H + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#include "reactingThermoTypes.H" +#include "ThermoCloud.H" + +#include "NoHeatTransfer.H" +#include "RanzMarshall.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#define createReactingHeatTransferModelType(ParcelType) \ + \ + createReactingHeatTransferModelThermoType \ + ( \ + ParcelType, \ + specieConstProperties \ + ); \ + createReactingHeatTransferModelThermoType \ + ( \ + ParcelType, \ + specieReactingProperties \ + ); + + +#define createReactingHeatTransferModelThermoType(ParcelType, ThermoType) \ + \ + makeHeatTransferModel(ThermoCloud<ParcelType<ThermoType> >); \ + \ + makeHeatTransferModelThermoType \ + ( \ + NoHeatTransfer, \ + ThermoCloud, \ + ParcelType, \ + ThermoType \ + ); \ + makeHeatTransferModelThermoType \ + ( \ + RanzMarshall, \ + ThermoCloud, \ + ParcelType, \ + ThermoType \ + ); \ + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* // diff --git a/src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeReactingParcelInjectionModels.H b/src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeReactingParcelInjectionModels.H new file mode 100644 index 00000000000..4873eac32cb --- /dev/null +++ b/src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeReactingParcelInjectionModels.H @@ -0,0 +1,103 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / 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 makeReactingParcelInjectionModels_H +#define makeReactingParcelInjectionModels_H + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#include "reactingThermoTypes.H" +#include "KinematicCloud.H" + +#include "ConeInjection.H" +#include "FieldActivatedInjection.H" +#include "ManualInjection.H" +#include "NoInjection.H" +#include "ReactingLookupTableInjection.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#define createReactingInjectionModelType(ParcelType) \ + \ + createReactingInjectionModelThermoType \ + ( \ + ParcelType, \ + specieConstProperties \ + ); \ + \ + createReactingInjectionModelThermoType \ + ( \ + ParcelType, \ + specieReactingProperties \ + ); + + +#define createReactingInjectionModelThermoType(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 \ + ); \ + makeInjectionModelThermoType \ + ( \ + ReactingLookupTableInjection, \ + KinematicCloud, \ + ParcelType, \ + ThermoType \ + ); + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* // diff --git a/src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeReactingParcelPatchInteractionModels.H b/src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeReactingParcelPatchInteractionModels.H new file mode 100644 index 00000000000..74f4470045b --- /dev/null +++ b/src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeReactingParcelPatchInteractionModels.H @@ -0,0 +1,87 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / 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 makeReactingParcelPatchInteractionModels_H +#define makeReactingParcelPatchInteractionModels_H + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#include "reactingThermoTypes.H" +#include "KinematicCloud.H" + +#include "LocalInteraction.H" +#include "Rebound.H" +#include "StandardWallInteraction.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#define createReactingPatchInteractionModelType(ParcelType) \ + \ + createReactingPatchInteractionModelThermoType \ + ( \ + ParcelType, \ + specieConstProperties \ + ); \ + \ + createReactingPatchInteractionModelThermoType \ + ( \ + ParcelType, \ + specieReactingProperties \ + ); + + +#define createReactingPatchInteractionModelThermoType(ParcelType, ThermoType) \ + \ + makePatchInteractionModel(KinematicCloud<ParcelType<ThermoType> >); \ + \ + makePatchInteractionModelThermoType \ + ( \ + LocalInteraction, \ + KinematicCloud, \ + ParcelType, \ + ThermoType \ + ); \ + makePatchInteractionModelThermoType \ + ( \ + Rebound, \ + KinematicCloud, \ + ParcelType, \ + ThermoType \ + ); \ + makePatchInteractionModelThermoType \ + ( \ + StandardWallInteraction, \ + KinematicCloud, \ + ParcelType, \ + ThermoType \ + ); + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* // diff --git a/src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeReactingParcelPhaseChangeModels.H b/src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeReactingParcelPhaseChangeModels.H new file mode 100644 index 00000000000..19e4810b743 --- /dev/null +++ b/src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeReactingParcelPhaseChangeModels.H @@ -0,0 +1,79 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / 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 makeReactingParcelPhaseChangeModels_H +#define makeReactingParcelPhaseChangeModels_H + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#include "reactingThermoTypes.H" +#include "ReactingCloud.H" + +#include "NoPhaseChange.H" +#include "LiquidEvaporation.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#define createReactingPhaseChangeModelType(ParcelType) \ + \ + createReactingPhaseChangeModelThermoType \ + ( \ + ParcelType, \ + specieConstProperties \ + ); \ + \ + createReactingPhaseChangeModelThermoType \ + ( \ + ParcelType, \ + specieReactingProperties \ + ); + + +#define createReactingPhaseChangeModelThermoType(ParcelType, ThermoType) \ + \ + makePhaseChangeModel(ReactingCloud<ParcelType<ThermoType> >); \ + \ + makePhaseChangeModelThermoType \ + ( \ + NoPhaseChange, \ + ReactingCloud, \ + ParcelType, \ + ThermoType \ + ); \ + makePhaseChangeModelThermoType \ + ( \ + LiquidEvaporation, \ + ReactingCloud, \ + ParcelType, \ + ThermoType \ + ); + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* // diff --git a/src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeReactingParcelPostProcessingModels.H b/src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeReactingParcelPostProcessingModels.H new file mode 100644 index 00000000000..b4f3b8e56fa --- /dev/null +++ b/src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/submodels/makeReactingParcelPostProcessingModels.H @@ -0,0 +1,79 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / 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 makeReactingParcelPostProcessingModels_H +#define makeReactingParcelPostProcessingModels_H + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#include "reactingThermoTypes.H" +#include "KinematicCloud.H" + +#include "NoPostProcessing.H" +#include "StandardPostProcessing.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#define createReactingPostProcessingModelType(ParcelType) \ + \ + createReactingPostProcessingModelThermoType \ + ( \ + ParcelType, \ + specieConstProperties \ + ); \ + \ + createReactingPostProcessingModelThermoType \ + ( \ + ParcelType, \ + specieReactingProperties \ + ); + + +#define createReactingPostProcessingModelThermoType(ParcelType, ThermoType) \ + \ + makePostProcessingModel(KinematicCloud<ParcelType<ThermoType> >); \ + \ + makePostProcessingModelThermoType \ + ( \ + NoPostProcessing, \ + KinematicCloud, \ + ParcelType, \ + ThermoType \ + ); \ + makePostProcessingModelThermoType \ + ( \ + StandardPostProcessing, \ + KinematicCloud, \ + ParcelType, \ + ThermoType \ + ); + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* // diff --git a/src/lagrangian/intermediate/parcels/derived/BasicTrackedReactingParcel/defineTrackedReactingParcel.C b/src/lagrangian/intermediate/parcels/derived/BasicTrackedReactingParcel/defineTrackedReactingParcel.C index 9d7660fab74..2ffcf453b6a 100644 --- a/src/lagrangian/intermediate/parcels/derived/BasicTrackedReactingParcel/defineTrackedReactingParcel.C +++ b/src/lagrangian/intermediate/parcels/derived/BasicTrackedReactingParcel/defineTrackedReactingParcel.C @@ -24,35 +24,14 @@ License \*---------------------------------------------------------------------------*/ -#include "basicTrackedReactingParcelTypes.H" -#include "BasicReactingCloud.H" +#include "createTrackedReactingParcelTypes.H" +#include "BasicTrackedReactingParcel.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // namespace Foam { - defineTemplateTypeNameAndDebug(bTrackedReactingParcel, 0); - defineTemplateTypeNameAndDebug(Particle<bTrackedReactingParcel>, 0); - defineTemplateTypeNameAndDebug(Cloud<bTrackedReactingParcel>, 0); - - defineParcelTypeNameAndDebug(KinematicParcel<bTrackedReactingParcel>, 0); - defineTemplateTypeNameAndDebug(KinematicParcel<bTrackedReactingParcel>, 0); - defineParcelTypeNameAndDebug(ThermoParcel<bTrackedReactingParcel>, 0); - defineTemplateTypeNameAndDebug(ThermoParcel<bTrackedReactingParcel>, 0); - defineParcelTypeNameAndDebug(ReactingParcel<bTrackedReactingParcel>, 0); - defineTemplateTypeNameAndDebug(ReactingParcel<bTrackedReactingParcel>, 0); - defineTemplateTypeNameAndDebug - ( - TrackedReactingParcel<bTrackedReactingParcel>, - 0 - ); - - defineParcelTypeNameAndDebug(KinematicCloud<bTrackedReactingParcel>, 0); -// defineTemplateTypeNameAndDebug(KinematicCloud<bTrackedReactingParcel>, 0); - - defineParcelTypeNameAndDebug(ThermoCloud<bTrackedReactingParcel>, 0); -// defineTemplateTypeNameAndDebug(ThermoCloud<bTrackedReactingParcel>, 0); - - defineParcelTypeNameAndDebug(ReactingCloud<bTrackedReactingParcel>, 0); -// defineTemplateTypeNameAndDebug(ReactingCloud<bTrackedReactingParcel>, 0); + createTrackedReactingParcelType(BasicTrackedReactingParcel); } diff --git a/src/lagrangian/intermediate/parcels/derived/BasicTrackedReactingParcel/submodels/makeTrackedReactingParcelDragModels.C b/src/lagrangian/intermediate/parcels/derived/BasicTrackedReactingParcel/submodels/makeBasicTrackedReactingParcelSubmodels.C similarity index 57% rename from src/lagrangian/intermediate/parcels/derived/BasicTrackedReactingParcel/submodels/makeTrackedReactingParcelDragModels.C rename to src/lagrangian/intermediate/parcels/derived/BasicTrackedReactingParcel/submodels/makeBasicTrackedReactingParcelSubmodels.C index 358da8e2e21..e81e981f998 100644 --- a/src/lagrangian/intermediate/parcels/derived/BasicTrackedReactingParcel/submodels/makeTrackedReactingParcelDragModels.C +++ b/src/lagrangian/intermediate/parcels/derived/BasicTrackedReactingParcel/submodels/makeBasicTrackedReactingParcelSubmodels.C @@ -24,22 +24,37 @@ License \*---------------------------------------------------------------------------*/ -#include "basicTrackedReactingParcelTypes.H" -#include "KinematicCloud.H" +#include "BasicTrackedReactingParcel.H" -#include "NoDrag.H" -#include "SphereDrag.H" +#include "makeReactingParcelDispersionModels.H" +#include "makeReactingParcelDragModels.H" +#include "makeReactingParcelInjectionModels.H" +#include "makeReactingParcelPatchInteractionModels.H" +#include "makeReactingParcelPostProcessingModels.H" + +#include "makeReactingParcelHeatTransferModels.H" + +#include "makeReactingParcelCompositionModels.H" +#include "makeReactingParcelPhaseChangeModels.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // namespace Foam { - makeDragModel(KinematicCloud<bTrackedReactingParcel>); - - // Add instances of drag model to the table - makeDragModelType(NoDrag, KinematicCloud, bTrackedReactingParcel); - makeDragModelType(SphereDrag, KinematicCloud, bTrackedReactingParcel); -} + // Kinematic sub-models + createReactingDispersionModelType(BasicTrackedReactingParcel); + createReactingDragModelType(BasicTrackedReactingParcel); + createReactingInjectionModelType(BasicTrackedReactingParcel); + createReactingPatchInteractionModelType(BasicTrackedReactingParcel); + createReactingPostProcessingModelType(BasicTrackedReactingParcel); + + // Thermo sub-models + createReactingHeatTransferModelType(BasicTrackedReactingParcel); + + // Reacting sub-models + createReactingCompositionModelType(BasicTrackedReactingParcel); + createReactingPhaseChangeModelType(BasicTrackedReactingParcel); +}; // ************************************************************************* // diff --git a/src/lagrangian/intermediate/parcels/derived/BasicTrackedReactingParcel/submodels/makeTrackedReactingParcelCompositionModels.C b/src/lagrangian/intermediate/parcels/derived/BasicTrackedReactingParcel/submodels/makeTrackedReactingParcelCompositionModels.C deleted file mode 100644 index e573e7ca36c..00000000000 --- a/src/lagrangian/intermediate/parcels/derived/BasicTrackedReactingParcel/submodels/makeTrackedReactingParcelCompositionModels.C +++ /dev/null @@ -1,48 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "basicTrackedReactingParcelTypes.H" -#include "ReactingCloud.H" - -#include "SinglePhaseMixture.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - makeCompositionModel(ReactingCloud<bTrackedReactingParcel>); - - // Add instances of composition model to the table - makeCompositionModelType - ( - SinglePhaseMixture, - ReactingCloud, - bTrackedReactingParcel - ); -} - - -// ************************************************************************* // diff --git a/src/lagrangian/intermediate/parcels/derived/BasicTrackedReactingParcel/submodels/makeTrackedReactingParcelDispersionModels.C b/src/lagrangian/intermediate/parcels/derived/BasicTrackedReactingParcel/submodels/makeTrackedReactingParcelDispersionModels.C deleted file mode 100644 index 1858335ca95..00000000000 --- a/src/lagrangian/intermediate/parcels/derived/BasicTrackedReactingParcel/submodels/makeTrackedReactingParcelDispersionModels.C +++ /dev/null @@ -1,68 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "basicTrackedReactingParcelTypes.H" -#include "KinematicCloud.H" - -#include "NoDispersion.H" -#include "GradientDispersionRAS.H" -#include "StochasticDispersionRAS.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - makeDispersionModel(KinematicCloud<bTrackedReactingParcel>); - - defineNamedTemplateTypeNameAndDebug - ( - DispersionRASModel<KinematicCloud<bTrackedReactingParcel> >, - 0 - ); - - // Add instances of dispersion model to the table - makeDispersionModelType - ( - NoDispersion, - KinematicCloud, - bTrackedReactingParcel - ); - makeDispersionModelType - ( - GradientDispersionRAS, - KinematicCloud, - bTrackedReactingParcel - ); - makeDispersionModelType - ( - StochasticDispersionRAS, - KinematicCloud, - bTrackedReactingParcel - ); -} - - -// ************************************************************************* // diff --git a/src/lagrangian/intermediate/parcels/derived/BasicTrackedReactingParcel/submodels/makeTrackedReactingParcelHeatTransferModels.C b/src/lagrangian/intermediate/parcels/derived/BasicTrackedReactingParcel/submodels/makeTrackedReactingParcelHeatTransferModels.C deleted file mode 100644 index 7dfe9a3131e..00000000000 --- a/src/lagrangian/intermediate/parcels/derived/BasicTrackedReactingParcel/submodels/makeTrackedReactingParcelHeatTransferModels.C +++ /dev/null @@ -1,55 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "basicTrackedReactingParcelTypes.H" -#include "ThermoCloud.H" - -#include "NoHeatTransfer.H" -#include "RanzMarshall.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - makeHeatTransferModel(ThermoCloud<bTrackedReactingParcel>); - - // Add instances of heat transfer model to the table - makeHeatTransferModelType - ( - NoHeatTransfer, - ThermoCloud, - bTrackedReactingParcel - ); - makeHeatTransferModelType - ( - RanzMarshall, - ThermoCloud, - bTrackedReactingParcel - ); -} - - -// ************************************************************************* // diff --git a/src/lagrangian/intermediate/parcels/derived/BasicTrackedReactingParcel/submodels/makeTrackedReactingParcelInjectionModels.C b/src/lagrangian/intermediate/parcels/derived/BasicTrackedReactingParcel/submodels/makeTrackedReactingParcelInjectionModels.C deleted file mode 100644 index 28083e2973a..00000000000 --- a/src/lagrangian/intermediate/parcels/derived/BasicTrackedReactingParcel/submodels/makeTrackedReactingParcelInjectionModels.C +++ /dev/null @@ -1,76 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "basicTrackedReactingParcelTypes.H" -#include "ReactingCloud.H" - -#include "ConeInjection.H" -#include "FieldActivatedInjection.H" -#include "ManualInjection.H" -#include "NoInjection.H" -#include "ReactingLookupTableInjection.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - makeInjectionModel(KinematicCloud<bTrackedReactingParcel>); - - // Add instances of injection model to the table - makeInjectionModelType - ( - ConeInjection, - KinematicCloud, - bTrackedReactingParcel - ); - makeInjectionModelType - ( - FieldActivatedInjection, - KinematicCloud, - bTrackedReactingParcel - ); - makeInjectionModelType - ( - ManualInjection, - KinematicCloud, - bTrackedReactingParcel - ); - makeInjectionModelType - ( - NoInjection, - KinematicCloud, - bTrackedReactingParcel - ); - makeInjectionModelType - ( - ReactingLookupTableInjection, - KinematicCloud, - bTrackedReactingParcel - ); -} - - -// ************************************************************************* // diff --git a/src/lagrangian/intermediate/parcels/derived/BasicTrackedReactingParcel/submodels/makeTrackedReactingParcelPatchInteractionModels.C b/src/lagrangian/intermediate/parcels/derived/BasicTrackedReactingParcel/submodels/makeTrackedReactingParcelPatchInteractionModels.C deleted file mode 100644 index 15dd56ee3da..00000000000 --- a/src/lagrangian/intermediate/parcels/derived/BasicTrackedReactingParcel/submodels/makeTrackedReactingParcelPatchInteractionModels.C +++ /dev/null @@ -1,62 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "basicTrackedReactingParcelTypes.H" -#include "KinematicCloud.H" - -#include "LocalInteraction.H" -#include "Rebound.H" -#include "StandardWallInteraction.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - makePatchInteractionModel(KinematicCloud<bTrackedReactingParcel>); - - // Add instances of patch interaction model to the table - makePatchInteractionModelType - ( - LocalInteraction, - KinematicCloud, - bTrackedReactingParcel - ); - makePatchInteractionModelType - ( - Rebound, - KinematicCloud, - bTrackedReactingParcel - ); - makePatchInteractionModelType - ( - StandardWallInteraction, - KinematicCloud, - bTrackedReactingParcel - ); -} - - -// ************************************************************************* // diff --git a/src/lagrangian/intermediate/parcels/derived/BasicTrackedReactingParcel/submodels/makeTrackedReactingParcelPhaseChangeModels.C b/src/lagrangian/intermediate/parcels/derived/BasicTrackedReactingParcel/submodels/makeTrackedReactingParcelPhaseChangeModels.C deleted file mode 100644 index 533cf64dc9c..00000000000 --- a/src/lagrangian/intermediate/parcels/derived/BasicTrackedReactingParcel/submodels/makeTrackedReactingParcelPhaseChangeModels.C +++ /dev/null @@ -1,55 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "basicTrackedReactingParcelTypes.H" -#include "ReactingCloud.H" - -#include "NoPhaseChange.H" -#include "LiquidEvaporation.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - makePhaseChangeModel(ReactingCloud<bTrackedReactingParcel>); - - // Add instances of phase change model to the table - makePhaseChangeModelType - ( - NoPhaseChange, - ReactingCloud, - bTrackedReactingParcel - ); - makePhaseChangeModelType - ( - LiquidEvaporation, - ReactingCloud, - bTrackedReactingParcel - ); -} - - -// ************************************************************************* // diff --git a/src/lagrangian/intermediate/parcels/derived/BasicTrackedReactingParcel/submodels/makeTrackedReactingParcelPostProcessingModels.C b/src/lagrangian/intermediate/parcels/derived/BasicTrackedReactingParcel/submodels/makeTrackedReactingParcelPostProcessingModels.C deleted file mode 100644 index c67cd52a6ad..00000000000 --- a/src/lagrangian/intermediate/parcels/derived/BasicTrackedReactingParcel/submodels/makeTrackedReactingParcelPostProcessingModels.C +++ /dev/null @@ -1,55 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software; you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the - Free Software Foundation; either version 2 of the License, or (at your - option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM; if not, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "basicTrackedReactingParcelTypes.H" -#include "KinematicCloud.H" - -#include "NoPostProcessing.H" -#include "StandardPostProcessing.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - makePostProcessingModel(KinematicCloud<bTrackedReactingParcel>); - - // Add instances of post-processing model to the table - makePostProcessingModelType - ( - NoPostProcessing, - KinematicCloud, - bTrackedReactingParcel - ); - makePostProcessingModelType - ( - StandardPostProcessing, - KinematicCloud, - bTrackedReactingParcel - ); -} - - -// ************************************************************************* // diff --git a/src/lagrangian/intermediate/parcels/include/createReactingMultiphaseParcelTypes.H b/src/lagrangian/intermediate/parcels/include/createReactingMultiphaseParcelTypes.H new file mode 100644 index 00000000000..80e065083d9 --- /dev/null +++ b/src/lagrangian/intermediate/parcels/include/createReactingMultiphaseParcelTypes.H @@ -0,0 +1,94 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / 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 createReactingMultiphaseParcelTypes_H +#define createReactingMultiphaseParcelTypes_H + +#include "makeParcelIOList.H" +#include "reactingThermoTypes.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#define createReactingMultiphaseParcelType(ParcelType) \ + \ + createReactingMultiphaseParcelThermoType \ + ( \ + ParcelType, \ + specieConstProperties \ + ); \ + createReactingParcelThermoType \ + ( \ + ParcelType, \ + specieReactingProperties \ + ); + + +#define createReactingMultiphaseParcelThermoType(ParcelType, ThermoType) \ + \ + typedef ParcelType<ThermoType> ParcelType##ThermoType; \ + \ + makeParcelIOList(ParcelType##ThermoType); \ + \ + defineTemplateTypeNameAndDebug(ParcelType##ThermoType, 0); \ + defineTemplateTypeNameAndDebug(Particle<ParcelType##ThermoType>, 0); \ + defineTemplateTypeNameAndDebug(Cloud<ParcelType##ThermoType>, 0); \ + \ + defineParcelTypeNameAndDebug(KinematicParcel<ParcelType##ThermoType>, 0); \ + defineTemplateTypeNameAndDebug \ + ( \ + KinematicParcel<ParcelType##ThermoType>, \ + 0 \ + ); \ + defineParcelTypeNameAndDebug(ThermoParcel<ParcelType##ThermoType>, 0); \ + defineTemplateTypeNameAndDebug(ThermoParcel<ParcelType##ThermoType>, 0); \ + defineParcelTypeNameAndDebug(ReactingParcel<ParcelType##ThermoType>, 0); \ + defineTemplateTypeNameAndDebug(ReactingParcel<ParcelType##ThermoType>, 0);\ + defineParcelTypeNameAndDebug \ + ( \ + ReactingMultiphaseParcel<ParcelType##ThermoType>, \ + 0 \ + ); \ + defineTemplateTypeNameAndDebug \ + ( \ + ReactingMultiphaseParcel<ParcelType##ThermoType>, \ + 0 \ + ); \ + \ + defineParcelTypeNameAndDebug(KinematicCloud<ParcelType##ThermoType>, 0); \ + defineParcelTypeNameAndDebug(ThermoCloud<ParcelType##ThermoType>, 0); \ + defineParcelTypeNameAndDebug(ReactingCloud<ParcelType##ThermoType>, 0); \ + defineParcelTypeNameAndDebug \ + ( \ + ReactingMultiphaseCloud<ParcelType##ThermoType>, \ + 0 \ + ); + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* // diff --git a/src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/basicReactingParcelTypes.H b/src/lagrangian/intermediate/parcels/include/createReactingParcelTypes.H similarity index 87% rename from src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/basicReactingParcelTypes.H rename to src/lagrangian/intermediate/parcels/include/createReactingParcelTypes.H index c64bfc94735..3045c3406f4 100644 --- a/src/lagrangian/intermediate/parcels/derived/BasicReactingParcel/basicReactingParcelTypes.H +++ b/src/lagrangian/intermediate/parcels/include/createReactingParcelTypes.H @@ -24,21 +24,11 @@ License \*---------------------------------------------------------------------------*/ -#ifndef basicReactingParcelTypes_H -#define basicReactingParcelTypes_H +#ifndef createReactingParcelTypes_H +#define createReactingParcelTypes_H -#include "BasicReactingParcel.H" -#include "BasicReactingCloud.H" - -#include "ReactingCloudThermoTypes.H" #include "makeParcelIOList.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - typedef BasicReactingParcel<specieReactingProperties> bReactingParcel; -}; +#include "reactingThermoTypes.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -54,8 +44,6 @@ namespace Foam \ makeParcelIOList(ParcelType##ThermoType); \ \ - defineTemplateTypeNameAndDebug(BasicReactingCloud<ThermoType>, 0); \ - \ defineTemplateTypeNameAndDebug(ParcelType##ThermoType, 0); \ defineTemplateTypeNameAndDebug(Particle<ParcelType##ThermoType>, 0); \ defineTemplateTypeNameAndDebug(Cloud<ParcelType##ThermoType>, 0); \ diff --git a/src/lagrangian/intermediate/parcels/include/createTrackedReactingParcelTypes.H b/src/lagrangian/intermediate/parcels/include/createTrackedReactingParcelTypes.H new file mode 100644 index 00000000000..c374a2dcd96 --- /dev/null +++ b/src/lagrangian/intermediate/parcels/include/createTrackedReactingParcelTypes.H @@ -0,0 +1,70 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / 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 createTrackedReactingParcelTypes_H +#define createTrackedReactingParcelTypes_H + +#include "createReactingParcelTypes.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#define createTrackedReactingParcelType(ParcelType) \ + \ + createTrackedReactingParcelThermoType \ + ( \ + ParcelType, \ + specieConstProperties \ + ); \ + createTrackedReactingParcelThermoType \ + ( \ + ParcelType, \ + specieReactingProperties \ + ); + + +#define createTrackedReactingParcelThermoType(ParcelType, ThermoType) \ + \ + createReactingParcelThermoType(ParcelType, ThermoType); \ + \ + typedef ParcelType<ThermoType> ParcelType##ThermoType; \ + \ + defineParcelTypeNameAndDebug \ + ( \ + TrackedReactingParcel<ParcelType##ThermoType>, \ + 0 \ + ); \ + defineTemplateTypeNameAndDebug \ + ( \ + TrackedReactingParcel<ParcelType##ThermoType>, \ + 0 \ + ); + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* // diff --git a/src/lagrangian/intermediate/clouds/Templates/ReactingCloud/ReactingCloudThermoTypes.H b/src/lagrangian/intermediate/parcels/include/reactingThermoTypes.H similarity index 94% rename from src/lagrangian/intermediate/clouds/Templates/ReactingCloud/ReactingCloudThermoTypes.H rename to src/lagrangian/intermediate/parcels/include/reactingThermoTypes.H index 015f00fb8b1..5848a52964a 100644 --- a/src/lagrangian/intermediate/clouds/Templates/ReactingCloud/ReactingCloudThermoTypes.H +++ b/src/lagrangian/intermediate/parcels/include/reactingThermoTypes.H @@ -26,18 +26,19 @@ Typedefs Foam::ReactingCloudThermoTypes Description + Type definitions for available thermo pacakges \*---------------------------------------------------------------------------*/ -#ifndef ReactingCloudThermoTypes_H -#define ReactingCloudThermoTypes_H +#ifndef reactingThermoTypes_H +#define reactingThermoTypes_H -#include "sutherlandTransport.H" -#include "constTransport.H" -#include "specieThermo.H" +#include "perfectGas.H" #include "hConstThermo.H" #include "janafThermo.H" -#include "perfectGas.H" +#include "specieThermo.H" +#include "sutherlandTransport.H" +#include "constTransport.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/src/lagrangian/intermediate/submodels/IO/IOList/makeParcelIOLists.C b/src/lagrangian/intermediate/submodels/IO/IOList/makeParcelIOLists.C index 04ff69a9c6a..2decc76d4b9 100644 --- a/src/lagrangian/intermediate/submodels/IO/IOList/makeParcelIOLists.C +++ b/src/lagrangian/intermediate/submodels/IO/IOList/makeParcelIOLists.C @@ -28,9 +28,6 @@ License #include "basicKinematicParcel.H" #include "basicThermoParcel.H" -#include "basicReactingMultiphaseParcelTypes.H" - -#include "basicTrackedReactingParcelTypes.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -38,9 +35,6 @@ namespace Foam { makeParcelIOList(basicKinematicParcel); makeParcelIOList(basicThermoParcel); - makeParcelIOList(bReactingMultiphaseParcel); - - makeParcelIOList(bTrackedReactingParcel); }; diff --git a/src/lagrangian/intermediate/submodels/Kinematic/DispersionModel/DispersionModel/DispersionModel.H b/src/lagrangian/intermediate/submodels/Kinematic/DispersionModel/DispersionModel/DispersionModel.H index 1cf7be00f8d..46e7d104bfa 100644 --- a/src/lagrangian/intermediate/submodels/Kinematic/DispersionModel/DispersionModel/DispersionModel.H +++ b/src/lagrangian/intermediate/submodels/Kinematic/DispersionModel/DispersionModel/DispersionModel.H @@ -160,6 +160,20 @@ public: add##SS##CloudType##ParcelType##ConstructorToTable_; +#define makeDispersionModelThermoType(SS, CloudType, ParcelType, ThermoType) \ + \ + defineNamedTemplateTypeNameAndDebug \ + ( \ + SS<CloudType<ParcelType<ThermoType> > >, \ + 0 \ + ); \ + \ + DispersionModel<CloudType<ParcelType<ThermoType> > >:: \ + adddictionaryConstructorToTable \ + <SS<CloudType<ParcelType<ThermoType> > > > \ + add##SS##CloudType##ParcelType##ThermoType##ConstructorToTable_; + + // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // #ifdef NoRepository diff --git a/src/lagrangian/intermediate/submodels/Kinematic/DragModel/DragModel/DragModel.H b/src/lagrangian/intermediate/submodels/Kinematic/DragModel/DragModel/DragModel.H index 34220baafeb..9fae0e9b110 100644 --- a/src/lagrangian/intermediate/submodels/Kinematic/DragModel/DragModel/DragModel.H +++ b/src/lagrangian/intermediate/submodels/Kinematic/DragModel/DragModel/DragModel.H @@ -155,6 +155,20 @@ public: add##SS##CloudType##ParcelType##ConstructorToTable_; +#define makeDragModelThermoType(SS, CloudType, ParcelType, ThermoType) \ + \ + defineNamedTemplateTypeNameAndDebug \ + ( \ + SS<CloudType<ParcelType<ThermoType> > >, \ + 0 \ + ); \ + \ + DragModel<CloudType<ParcelType<ThermoType> > >:: \ + adddictionaryConstructorToTable \ + <SS<CloudType<ParcelType<ThermoType> > > > \ + add##SS##CloudType##ParcelType##ThermoType##ConstructorToTable_; + + // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // #ifdef NoRepository diff --git a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InjectionModel/InjectionModel.H b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InjectionModel/InjectionModel.H index 4b4c07a9f72..b00356a174d 100644 --- a/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InjectionModel/InjectionModel.H +++ b/src/lagrangian/intermediate/submodels/Kinematic/InjectionModel/InjectionModel/InjectionModel.H @@ -303,21 +303,6 @@ public: ) = 0; virtual bool fullyDescribed() const = 0; -/* - //- Return the velocity of the parcel to introduce at a time - virtual vector velocity - ( - const label parcelI, - const scalar time - ) = 0; - - //- Return the diameter of the parcel to introduce at a time - virtual scalar d0 - ( - const label parcelI, - const scalar time - ) const = 0; -*/ }; @@ -343,6 +328,21 @@ public: add##SS##CloudType##ParcelType##ConstructorToTable_; +#define makeInjectionModelThermoType(SS, CloudType, ParcelType, ThermoType) \ + \ + defineNamedTemplateTypeNameAndDebug \ + ( \ + SS<CloudType<ParcelType<ThermoType> > >, \ + 0 \ + ); \ + \ + InjectionModel<CloudType<ParcelType<ThermoType> > >:: \ + adddictionaryConstructorToTable \ + <SS<CloudType<ParcelType<ThermoType> > > > \ + add##SS##CloudType##ParcelType##ThermoType##ConstructorToTable_; + + + // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // #include "InjectionModelI.H" diff --git a/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/PatchInteractionModel/PatchInteractionModel.H b/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/PatchInteractionModel/PatchInteractionModel.H index f6cada656f1..cffca1e2866 100644 --- a/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/PatchInteractionModel/PatchInteractionModel.H +++ b/src/lagrangian/intermediate/submodels/Kinematic/PatchInteractionModel/PatchInteractionModel/PatchInteractionModel.H @@ -160,6 +160,20 @@ public: add##SS##CloudType##ParcelType##ConstructorToTable_; +#define makePatchInteractionModelThermoType(SS, CloudType, ParcelType, ThermoType)\ + \ + defineNamedTemplateTypeNameAndDebug \ + ( \ + SS<CloudType<ParcelType<ThermoType> > >, \ + 0 \ + ); \ + \ + PatchInteractionModel<CloudType<ParcelType<ThermoType> > >:: \ + adddictionaryConstructorToTable \ + <SS<CloudType<ParcelType<ThermoType> > > > \ + add##SS##CloudType##ParcelType##ThermoType##ConstructorToTable_; + + // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // #ifdef NoRepository diff --git a/src/lagrangian/intermediate/submodels/Kinematic/PostProcessingModel/PostProcessingModel/PostProcessingModel.H b/src/lagrangian/intermediate/submodels/Kinematic/PostProcessingModel/PostProcessingModel/PostProcessingModel.H index c450ed07c40..4f3d68187b8 100644 --- a/src/lagrangian/intermediate/submodels/Kinematic/PostProcessingModel/PostProcessingModel/PostProcessingModel.H +++ b/src/lagrangian/intermediate/submodels/Kinematic/PostProcessingModel/PostProcessingModel/PostProcessingModel.H @@ -178,6 +178,20 @@ public: add##SS##CloudType##ParcelType##ConstructorToTable_; +#define makePostProcessingModelThermoType(SS, CloudType, ParcelType, ThermoType)\ + \ + defineNamedTemplateTypeNameAndDebug \ + ( \ + SS<CloudType<ParcelType<ThermoType> > >, \ + 0 \ + ); \ + \ + PostProcessingModel<CloudType<ParcelType<ThermoType> > >:: \ + adddictionaryConstructorToTable \ + <SS<CloudType<ParcelType<ThermoType> > > > \ + add##SS##CloudType##ParcelType##ThermoType##ConstructorToTable_; + + // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // #include "PostProcessingModelI.H" diff --git a/src/lagrangian/intermediate/submodels/Reacting/CompositionModel/CompositionModel/CompositionModel.H b/src/lagrangian/intermediate/submodels/Reacting/CompositionModel/CompositionModel/CompositionModel.H index 2dac578982b..6010e3c43fe 100644 --- a/src/lagrangian/intermediate/submodels/Reacting/CompositionModel/CompositionModel/CompositionModel.H +++ b/src/lagrangian/intermediate/submodels/Reacting/CompositionModel/CompositionModel/CompositionModel.H @@ -282,13 +282,18 @@ public: ); -#define makeCompositionModelType(SS, CloudType, ParcelType) \ +#define makeCompositionModelThermoType(SS, CloudType, ParcelType, ThermoType) \ \ - defineNamedTemplateTypeNameAndDebug(SS<CloudType<ParcelType> >, 0); \ + defineNamedTemplateTypeNameAndDebug \ + ( \ + SS<CloudType<ParcelType<ThermoType> > >, \ + 0 \ + ); \ \ - CompositionModel<CloudType<ParcelType> >:: \ - adddictionaryConstructorToTable<SS<CloudType<ParcelType> > > \ - add##SS##CloudType##ParcelType##ConstructorToTable_; + CompositionModel<CloudType<ParcelType<ThermoType> > >:: \ + adddictionaryConstructorToTable \ + <SS<CloudType<ParcelType<ThermoType> > > > \ + add##SS##CloudType##ParcelType##ThermoType##ConstructorToTable_; // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/src/lagrangian/intermediate/submodels/Reacting/CompositionModel/SinglePhaseMixture/SinglePhaseMixture.H b/src/lagrangian/intermediate/submodels/Reacting/CompositionModel/SinglePhaseMixture/SinglePhaseMixture.H index 91a727587dc..695c48c1a70 100644 --- a/src/lagrangian/intermediate/submodels/Reacting/CompositionModel/SinglePhaseMixture/SinglePhaseMixture.H +++ b/src/lagrangian/intermediate/submodels/Reacting/CompositionModel/SinglePhaseMixture/SinglePhaseMixture.H @@ -141,13 +141,13 @@ public: // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -#ifdef NoRepository -# include "SinglePhaseMixture.C" -#endif +} // End namespace Foam // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -} // End namespace Foam +#ifdef NoRepository +# include "SinglePhaseMixture.C" +#endif // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/src/lagrangian/intermediate/submodels/Reacting/PhaseChangeModel/PhaseChangeModel/PhaseChangeModel.H b/src/lagrangian/intermediate/submodels/Reacting/PhaseChangeModel/PhaseChangeModel/PhaseChangeModel.H index b8ebc644b01..2e0f03a3f52 100644 --- a/src/lagrangian/intermediate/submodels/Reacting/PhaseChangeModel/PhaseChangeModel/PhaseChangeModel.H +++ b/src/lagrangian/intermediate/submodels/Reacting/PhaseChangeModel/PhaseChangeModel/PhaseChangeModel.H @@ -168,13 +168,18 @@ public: ); -#define makePhaseChangeModelType(SS, CloudType, ParcelType) \ +#define makePhaseChangeModelThermoType(SS, CloudType, ParcelType, ThermoType) \ \ - defineNamedTemplateTypeNameAndDebug(SS<CloudType<ParcelType> >, 0); \ + defineNamedTemplateTypeNameAndDebug \ + ( \ + SS<CloudType<ParcelType<ThermoType> > >, \ + 0 \ + ); \ \ - PhaseChangeModel<CloudType<ParcelType> >:: \ - adddictionaryConstructorToTable<SS<CloudType<ParcelType> > > \ - add##SS##CloudType##ParcelType##ConstructorToTable_; + PhaseChangeModel<CloudType<ParcelType<ThermoType> > >:: \ + adddictionaryConstructorToTable \ + <SS<CloudType<ParcelType<ThermoType> > > > \ + add##SS##CloudType##ParcelType##ThermoType##ConstructorToTable_; // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/src/lagrangian/intermediate/submodels/ReactingMultiphase/DevolatilisationModel/DevolatilisationModel/DevolatilisationModel.H b/src/lagrangian/intermediate/submodels/ReactingMultiphase/DevolatilisationModel/DevolatilisationModel/DevolatilisationModel.H index bb4e7ddc637..dd80ba9fd23 100644 --- a/src/lagrangian/intermediate/submodels/ReactingMultiphase/DevolatilisationModel/DevolatilisationModel/DevolatilisationModel.H +++ b/src/lagrangian/intermediate/submodels/ReactingMultiphase/DevolatilisationModel/DevolatilisationModel/DevolatilisationModel.H @@ -160,13 +160,18 @@ public: ); -#define makeDevolatilisationModelType(SS, CloudType, ParcelType) \ +#define makeDevolatilisationModelThermoType(SS, CloudType, ParcelType, ThermoType)\ \ - defineNamedTemplateTypeNameAndDebug(SS<CloudType<ParcelType> >, 0); \ + defineNamedTemplateTypeNameAndDebug \ + ( \ + SS<CloudType<ParcelType<ThermoType> > >, \ + 0 \ + ); \ \ - DevolatilisationModel<CloudType<ParcelType> >:: \ - adddictionaryConstructorToTable<SS<CloudType<ParcelType> > > \ - add##SS##CloudType##ParcelType##ConstructorToTable_; + DevolatilisationModel<CloudType<ParcelType<ThermoType> > >:: \ + adddictionaryConstructorToTable \ + <SS<CloudType<ParcelType<ThermoType> > > > \ + add##SS##CloudType##ParcelType##ThermoType##ConstructorToTable_; // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/src/lagrangian/intermediate/submodels/ReactingMultiphase/SurfaceReactionModel/SurfaceReactionModel/SurfaceReactionModel.H b/src/lagrangian/intermediate/submodels/ReactingMultiphase/SurfaceReactionModel/SurfaceReactionModel/SurfaceReactionModel.H index 8f1657f47a4..ba1d41825fd 100644 --- a/src/lagrangian/intermediate/submodels/ReactingMultiphase/SurfaceReactionModel/SurfaceReactionModel/SurfaceReactionModel.H +++ b/src/lagrangian/intermediate/submodels/ReactingMultiphase/SurfaceReactionModel/SurfaceReactionModel/SurfaceReactionModel.H @@ -190,6 +190,19 @@ public: add##SS##CloudType##ParcelType##ConstructorToTable_; +#define makeSurfaceReactionModelThermoTypeNew(SS, CloudType, ParcelType, ThermoType)\ + \ + defineNamedTemplateTypeNameAndDebug \ + ( \ + SS<CloudType<ParcelType<ThermoType> > >, \ + 0 \ + ); \ + \ + SurfaceReactionModel<CloudType<ParcelType<ThermoType> > >:: \ + adddictionaryConstructorToTable \ + <SS<CloudType<ParcelType<ThermoType> > > > \ + add##SS##CloudType##ParcelType##ThermoType##ConstructorToTable_; + // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // #ifdef NoRepository diff --git a/src/lagrangian/intermediate/submodels/Thermodynamic/HeatTransferModel/HeatTransferModel/HeatTransferModel.H b/src/lagrangian/intermediate/submodels/Thermodynamic/HeatTransferModel/HeatTransferModel/HeatTransferModel.H index af5a43679c9..9e6ccdc4af2 100644 --- a/src/lagrangian/intermediate/submodels/Thermodynamic/HeatTransferModel/HeatTransferModel/HeatTransferModel.H +++ b/src/lagrangian/intermediate/submodels/Thermodynamic/HeatTransferModel/HeatTransferModel/HeatTransferModel.H @@ -189,6 +189,20 @@ public: add##SS##CloudType##ParcelType##ConstructorToTable_; +#define makeHeatTransferModelThermoType(SS, CloudType, ParcelType, ThermoType)\ + \ + defineNamedTemplateTypeNameAndDebug \ + ( \ + SS<CloudType<ParcelType<ThermoType> > >, \ + 0 \ + ); \ + \ + HeatTransferModel<CloudType<ParcelType<ThermoType> > >:: \ + adddictionaryConstructorToTable \ + <SS<CloudType<ParcelType<ThermoType> > > > \ + add##SS##CloudType##ParcelType##ThermoType##ConstructorToTable_; + + // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // #ifdef NoRepository -- GitLab