From c766b6c3015a439f16ceec448b9a2883fb6a8e8f Mon Sep 17 00:00:00 2001 From: andy 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} | 61 ++++++----- .../defineCoalParcel.C} | 16 +-- .../submodels/makeCoalParcelSubmodels.C} | 48 +++++--- .../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} | 52 ++++----- .../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} | 33 ++++-- ...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, 1820 insertions(+), 2308 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 3bccc682d3..18dbce7757 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 34398f6b82..ecd70150b9 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 coalParcels ( "coalCloud1", rho, diff --git a/applications/solvers/lagrangian/reactingParcelFoam/reactingParcelFoam.C b/applications/solvers/lagrangian/reactingParcelFoam/reactingParcelFoam.C index 89a2e815f3..06efa86e2b 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 e41b822e38..1b923614d2 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 +Foam::CoalCloud::CoalCloud ( const word& cloudName, const volScalarField& rho, const volVectorField& U, const dimensionedVector& g, hCombustionThermo& thermo, - PtrList& gases + PtrList& carrierSpecies ) : - ReactingMultiphaseCloud + ReactingMultiphaseCloud > ( cloudName, rho, U, g, thermo, - gases + carrierSpecies ) { - coalParcel::readFields(*this); + CoalParcel::readFields(*this); } // * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // -Foam::coalCloud::~coalCloud() +template +Foam::CoalCloud::~CoalCloud() {} // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // -void Foam::coalCloud::writeFields() const +template +void Foam::CoalCloud::writeFields() const { - coalParcel::writeFields(*this); + CoalParcel::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 4b1d3e852d..4dbad0662f 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 CoalCloud : - public ReactingMultiphaseCloud + public ReactingMultiphaseCloud > { // 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& gases + PtrList& 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 1023c5e166..64e60987e0 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 218ce201a0..edfb66467d 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 +Foam::CoalParcel::CoalParcel ( - ReactingMultiphaseCloud& owner, + ReactingMultiphaseCloud >& owner, const vector& position, const label cellI ) : - ReactingMultiphaseParcel(owner, position, cellI) + ReactingMultiphaseParcel >(owner, position, cellI) {} -Foam::coalParcel::coalParcel +template +Foam::CoalParcel::CoalParcel ( - ReactingMultiphaseCloud& owner, + ReactingMultiphaseCloud >& 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 >:: + constantProperties& constProps ) : - ReactingMultiphaseParcel + ReactingMultiphaseParcel > ( owner, position, @@ -83,20 +77,22 @@ Foam::coalParcel::coalParcel {} -Foam::coalParcel::coalParcel +template +Foam::CoalParcel::CoalParcel ( - const Cloud& cloud, + const Cloud >& cloud, Istream& is, bool readFields ) : - ReactingMultiphaseParcel(cloud, is, readFields) + ReactingMultiphaseParcel >(cloud, is, readFields) {} // * * * * * * * * * * * * * * * * Destructors * * * * * * * * * * * * * * // -Foam::coalParcel::~coalParcel() +template +Foam::CoalParcel::~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 34b009530f..a914cfbc9c 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 CoalParcel; + /*---------------------------------------------------------------------------*\ - Class coalParcel Declaration + Class CoalParcel Declaration \*---------------------------------------------------------------------------*/ -class coalParcel +template +class CoalParcel : - public ReactingMultiphaseParcel + public ReactingMultiphaseParcel > { 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& owner, + ReactingMultiphaseCloud& owner, const vector& position, const label cellI ); //- Construct from components - coalParcel + CoalParcel ( - ReactingMultiphaseCloud& owner, + ReactingMultiphaseCloud& owner, const vector& position, const label cellI, const label typeId, @@ -82,42 +90,43 @@ public: const scalarField& YGas0, const scalarField& YLiquid0, const scalarField& YSolid0, - const constantProperties& constProps + const typename + ReactingMultiphaseParcel:: + constantProperties& constProps ); //- Construct from Istream - coalParcel + CoalParcel ( - const Cloud& c, + const Cloud& c, Istream& is, bool readFields = true ); //- Construct and return a clone - autoPtr clone() const + autoPtr clone() const { - return autoPtr(new coalParcel(*this)); + return autoPtr(new CoalParcel(*this)); } //- Destructor - virtual ~coalParcel(); + virtual ~CoalParcel(); }; -template<> -inline bool contiguous() -{ - return false; // Now have scalar lists/fields (mass fractions) -} - - // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // } // End namespace Foam // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +#ifdef NoRepository + #include "CoalParcel.C" +#endif + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + #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 f6dea63009..31531d4522 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); - - // 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 53051b08da..c2da43a267 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); + // Kinematic sub-models + createReactingDispersionModelType(CoalParcel); + createReactingDragModelType(CoalParcel); + createReactingInjectionModelType(CoalParcel); + createReactingPatchInteractionModelType(CoalParcel); + createReactingPostProcessingModelType(CoalParcel); - // Add instances of heat transfer model to the table - makeHeatTransferModelType - ( - NoHeatTransfer, - ThermoCloud, - bReactingMultiphaseParcel - ); - makeHeatTransferModelType - ( - RanzMarshall, - ThermoCloud, - bReactingMultiphaseParcel - ); + // 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 0000000000..1875cc590c --- /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 > \ + ); \ + \ + 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 9d9b8b6267..4a7cb52d25 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 2c41d82898..0000000000 --- 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, 0); - - defineParcelTypeNameAndDebug(KinematicParcel, 0); -// defineTemplateTypeNameAndDebug(KinematicParcel, 0); - defineParcelTypeNameAndDebug(ThermoParcel, 0); - defineTemplateTypeNameAndDebug(ThermoParcel, 0); - defineParcelTypeNameAndDebug(ReactingParcel, 0); - defineTemplateTypeNameAndDebug(ReactingParcel, 0); - defineParcelTypeNameAndDebug(ReactingMultiphaseParcel, 0); - defineTemplateTypeNameAndDebug(ReactingMultiphaseParcel, 0); - - defineParcelTypeNameAndDebug(KinematicCloud, 0); - defineParcelTypeNameAndDebug(ThermoCloud, 0); - defineParcelTypeNameAndDebug(ReactingCloud, 0); - defineParcelTypeNameAndDebug(ReactingMultiphaseCloud, 0); -}; - - -// ************************************************************************* // diff --git a/src/lagrangian/coalCombustion/coalParcel/submodels/makeCoalParcelDevolatilisationModels.C b/src/lagrangian/coalCombustion/coalParcel/submodels/makeCoalParcelDevolatilisationModels.C deleted file mode 100644 index 041a132d66..0000000000 --- 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 - ); - - // 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 d6f1cc8232..0000000000 --- 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); - - defineNamedTemplateTypeNameAndDebug - ( - DispersionRASModel >, - 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 162e1d56c2..0000000000 --- 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); - - // 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 92e1a67270..0000000000 --- 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); - - // 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 bf68b99477..0000000000 --- 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); - - // 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 326af23e81..0000000000 --- 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); - - // 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 ebacd714bd..0000000000 --- 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 - ); - - // 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 7a8594eeda..0000000000 --- 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); - - // 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 ee25d721f3..0000000000 --- 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); - - // 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 0000000000..1584712ba0 --- /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 ParcelType##ThermoType; \ + \ + makeParcelIOList(ParcelType##ThermoType); \ + \ + defineTemplateTypeNameAndDebug(ParcelType##ThermoType, 0); \ + defineTemplateTypeNameAndDebug(Particle, 0); \ + defineTemplateTypeNameAndDebug(Cloud, 0); \ + \ + defineParcelTypeNameAndDebug(KinematicParcel, 0); \ + defineTemplateTypeNameAndDebug \ + ( \ + KinematicParcel, \ + 0 \ + ); \ + defineParcelTypeNameAndDebug(ThermoParcel, 0); \ + defineTemplateTypeNameAndDebug(ThermoParcel, 0); \ + defineParcelTypeNameAndDebug(ReactingParcel, 0); \ + defineTemplateTypeNameAndDebug(ReactingParcel, 0);\ + defineParcelTypeNameAndDebug \ + ( \ + ReactingMultiphaseParcel, \ + 0 \ + ); \ + defineTemplateTypeNameAndDebug \ + ( \ + ReactingMultiphaseParcel, \ + 0 \ + ); \ + defineParcelTypeNameAndDebug(CoalParcel, 0); \ + defineTemplateTypeNameAndDebug(CoalParcel, 0); \ + \ + defineParcelTypeNameAndDebug(KinematicCloud, 0); \ + defineParcelTypeNameAndDebug(ThermoCloud, 0); \ + defineParcelTypeNameAndDebug(ReactingCloud, 0); \ + defineParcelTypeNameAndDebug \ + ( \ + ReactingMultiphaseCloud, \ + 0 \ + ); \ + defineParcelTypeNameAndDebug(CoalCloud, 0); + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* // diff --git a/src/lagrangian/coalCombustion/submodels/surfaceReactionModel/COxidationDiffusionLimitedRate/COxidationDiffusionLimitedRate.C b/src/lagrangian/coalCombustion/submodels/surfaceReactionModel/COxidationDiffusionLimitedRate/COxidationDiffusionLimitedRate.C index 7e8f2a0e2b..f0086ccc47 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 +Foam::COxidationDiffusionLimitedRate::COxidationDiffusionLimitedRate ( const dictionary& dict, - ReactingMultiphaseCloud& owner + CloudType& owner ) : - SurfaceReactionModel > - ( - dict, - owner, - typeName - ), + SurfaceReactionModel(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" "(" "const dictionary&, " - "ReactingMultiphaseCloud&" + "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 +Foam::COxidationDiffusionLimitedRate:: +~COxidationDiffusionLimitedRate() {} // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // -bool Foam::COxidationDiffusionLimitedRate::active() const +template +bool Foam::COxidationDiffusionLimitedRate::active() const { return true; } -Foam::scalar Foam::COxidationDiffusionLimitedRate::calculate +template +Foam::scalar Foam::COxidationDiffusionLimitedRate::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 4458a6e31e..2467f2a456 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 COxidationDiffusionLimitedRate; + namespace Foam { /*---------------------------------------------------------------------------*\ - Class COxidationDiffusionLimitedRate Declaration + Class COxidationDiffusionLimitedRate Declaration \*---------------------------------------------------------------------------*/ +template class COxidationDiffusionLimitedRate : - public SurfaceReactionModel > + public SurfaceReactionModel { // Private data @@ -99,7 +103,7 @@ public: COxidationDiffusionLimitedRate ( const dictionary& dict, - ReactingMultiphaseCloud& 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 078cd100d7..356abbe327 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 +Foam::COxidationKineticDiffusionLimitedRate:: COxidationKineticDiffusionLimitedRate ( const dictionary& dict, - ReactingMultiphaseCloud& owner + CloudType& owner ) : - SurfaceReactionModel > + SurfaceReactionModel ( dict, owner, @@ -69,7 +70,7 @@ COxidationKineticDiffusionLimitedRate "COxidationKineticDiffusionLimitedRate" "(" "const dictionary&, " - "ReactingMultiphaseCloud&" + "CloudType&" ")" ) << "Stoichiometry of reaction, Sb, must be greater than zero" << nl << exit(FatalError); @@ -79,20 +80,23 @@ COxidationKineticDiffusionLimitedRate // * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // -Foam::COxidationKineticDiffusionLimitedRate:: +template +Foam::COxidationKineticDiffusionLimitedRate:: ~COxidationKineticDiffusionLimitedRate() {} // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // -bool Foam::COxidationKineticDiffusionLimitedRate::active() const +template +bool Foam::COxidationKineticDiffusionLimitedRate::active() const { return true; } -Foam::scalar Foam::COxidationKineticDiffusionLimitedRate::calculate +template +Foam::scalar Foam::COxidationKineticDiffusionLimitedRate::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 1073cb637f..099614633d 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 COxidationKineticDiffusionLimitedRate; + /*---------------------------------------------------------------------------*\ Class COxidationKineticDiffusionLimitedRate Declaration \*---------------------------------------------------------------------------*/ +template class COxidationKineticDiffusionLimitedRate : - public SurfaceReactionModel > + public SurfaceReactionModel { // Private data @@ -106,7 +111,7 @@ public: COxidationKineticDiffusionLimitedRate ( const dictionary& dict, - ReactingMultiphaseCloud& 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 265b4b6643..b4ff28cd9c 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 +Foam::label Foam::COxidationMurphyShaddix::maxIters_ = 1000; -Foam::scalar Foam::COxidationMurphyShaddix::tolerance_ = 1e-06; +template +Foam::scalar Foam::COxidationMurphyShaddix::tolerance_ = 1e-06; // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // -Foam::COxidationMurphyShaddix::COxidationMurphyShaddix +template +Foam::COxidationMurphyShaddix::COxidationMurphyShaddix ( const dictionary& dict, - ReactingMultiphaseCloud& owner + CloudType& owner ) : - SurfaceReactionModel > + SurfaceReactionModel ( dict, owner, @@ -76,19 +79,22 @@ Foam::COxidationMurphyShaddix::COxidationMurphyShaddix // * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // -Foam::COxidationMurphyShaddix::~COxidationMurphyShaddix() +template +Foam::COxidationMurphyShaddix::~COxidationMurphyShaddix() {} // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // -bool Foam::COxidationMurphyShaddix::active() const +template +bool Foam::COxidationMurphyShaddix::active() const { return true; } -Foam::scalar Foam::COxidationMurphyShaddix::calculate +template +Foam::scalar Foam::COxidationMurphyShaddix::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::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 bc026db364..e08516d2df 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 COxidationMurphyShaddix; + /*---------------------------------------------------------------------------*\ Class COxidationMurphyShaddix Declaration \*---------------------------------------------------------------------------*/ +template class COxidationMurphyShaddix : - public SurfaceReactionModel > + public SurfaceReactionModel { // Private data @@ -122,7 +127,7 @@ public: COxidationMurphyShaddix ( const dictionary& dict, - ReactingMultiphaseCloud& 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 2d8790fd76..c67e9e606d 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 1ac2fb9af5..d0296c0ea0 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 ef686198d6..ca5b9e8090 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); - - // 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 f1d94e4d8c..cfabcd6927 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 BasicReactingMultiphaseCloud : - public ReactingMultiphaseCloud + public ReactingMultiphaseCloud > { // 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 6d51de8d7d..24030e2686 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); - - // 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 ecd0a267d8..2b20183eca 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 -Foam::trackedReactingCloud::trackedReactingCloud +Foam::BasicTrackedReactingCloud::BasicTrackedReactingCloud ( const word& cloudName, const volScalarField& rho, @@ -56,14 +56,14 @@ Foam::trackedReactingCloud::trackedReactingCloud // * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // template -Foam::trackedReactingCloud::~trackedReactingCloud() +Foam::BasicTrackedReactingCloud::~BasicTrackedReactingCloud() {} // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // template -void Foam::trackedReactingCloud::writeFields() const +void Foam::BasicTrackedReactingCloud::writeFields() const { BasicTrackedReactingParcel::writeFields(*this); } diff --git a/src/lagrangian/intermediate/clouds/derived/BasicTrackedReactingCloud/BasicTrackedReactingCloud.H b/src/lagrangian/intermediate/clouds/derived/BasicTrackedReactingCloud/BasicTrackedReactingCloud.H index 87d22a9647..7c92e61276 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 trackedReactingCloud; +class BasicTrackedReactingCloud; /*---------------------------------------------------------------------------*\ - Class trackedReactingCloud Declaration + Class BasicTrackedReactingCloud Declaration \*---------------------------------------------------------------------------*/ template -class trackedReactingCloud +class BasicTrackedReactingCloud : public ReactingCloud > { // 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 9a30c248c7..6f6700f198 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 - 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 d693682796..c298abd044 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 - bReactingMultiphaseParcel; -}; +#define createReactingCloudType(CloudType) \ + \ + createReactingCloudThermoType(CloudType, specieConstProperties); \ + createReactingCloudThermoType(CloudType, specieReactingProperties); + + +#define createReactingCloudThermoType(CloudType, ThermoType) \ + \ + defineTemplateTypeNameAndDebug(CloudType, 0); + // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/defineBasicReactingMultiphaseParcel.C b/src/lagrangian/intermediate/parcels/derived/BasicReactingMultiphaseParcel/defineBasicReactingMultiphaseParcel.C index d022f38f20..12df07fbbc 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, 0); - - defineTemplateTypeNameAndDebug(Cloud, 0); - - defineParcelTypeNameAndDebug - ( - KinematicParcel, - 0 - ); - defineTemplateTypeNameAndDebug - ( - KinematicParcel, - 0 - ); - defineParcelTypeNameAndDebug - ( - ThermoParcel, - 0 - ); - defineTemplateTypeNameAndDebug - ( - ThermoParcel, - 0 - ); - defineParcelTypeNameAndDebug - ( - ReactingParcel, - 0 - ); - defineTemplateTypeNameAndDebug - ( - ReactingParcel, - 0 - ); - defineParcelTypeNameAndDebug - ( - ReactingMultiphaseParcel, - 0 - ); - defineTemplateTypeNameAndDebug - ( - ReactingMultiphaseParcel, - 0 - ); - - defineParcelTypeNameAndDebug - ( - KinematicCloud, - 0 - ); - defineParcelTypeNameAndDebug - ( - ThermoCloud, - 0 - ); - defineParcelTypeNameAndDebug - ( - ReactingCloud, - 0 - ); - defineParcelTypeNameAndDebug - ( - ReactingMultiphaseCloud, - 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 c156409793..0000000000 --- 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 - ); - - // 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 8bd2d5b961..0000000000 --- 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 - ); - - // 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 9cda16d3f4..0000000000 --- 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); - - // 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 03ebbf29f5..0000000000 --- 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); - - // 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 67f00c34e6..0000000000 --- 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); - - // 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 2fb67a6f83..0000000000 --- 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 - ); - - // 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 96dfb6c610..0000000000 --- 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); - - // 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 0000000000..c5a665fe01 --- /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 779a90c43f..0000000000 --- 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 - ); - - // 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 0000000000..9f7a15cd43 --- /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 >); \ + \ + 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 0000000000..5a3a32e16b --- /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 > \ + ); \ + \ + 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 0000000000..bf04b132d6 --- /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 > \ + ); \ + \ + 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 6e64dd43ce..2c2e78630d 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 81c8562f50..0000000000 --- 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); - - defineNamedTemplateTypeNameAndDebug - ( - DispersionRASModel >, - 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 fbb32db8e4..0000000000 --- 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); - - // 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 7402b25ecc..0000000000 --- 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); - - // 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 f0abeae98b..0000000000 --- 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); - - // 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 c0190acefa..0000000000 --- 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); - - // 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 cd8bd46b23..0000000000 --- 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); - - // 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 6de7b5da1a..18dcc54fd0 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); + // Kinematic sub-models + createReactingDispersionModelType(BasicReactingParcel); + createReactingDragModelType(BasicReactingParcel); + createReactingInjectionModelType(BasicReactingParcel); + createReactingPatchInteractionModelType(BasicReactingParcel); + createReactingPostProcessingModelType(BasicReactingParcel); - defineNamedTemplateTypeNameAndDebug - ( - DispersionRASModel >, - 0 - ); + // Thermo sub-models + createReactingHeatTransferModelType(BasicReactingParcel); - // Add instances of dispersion model to the table - makeDispersionModelType - ( - NoDispersion, - KinematicCloud, - bReactingMultiphaseParcel - ); - makeDispersionModelType - ( - GradientDispersionRAS, - KinematicCloud, - bReactingMultiphaseParcel - ); - makeDispersionModelType - ( - StochasticDispersionRAS, - KinematicCloud, - bReactingMultiphaseParcel - ); + // 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 0000000000..2f6abe0926 --- /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 >); \ + \ + 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 0000000000..23827d50d6 --- /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 >); \ + \ + defineNamedTemplateTypeNameAndDebug \ + ( \ + DispersionRASModel > >, \ + 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 0000000000..d919375f8c --- /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 >); \ + \ + 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 0000000000..021efc11f4 --- /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 >); \ + \ + 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 0000000000..4873eac32c --- /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 >); \ + \ + 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 0000000000..74f4470045 --- /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 >); \ + \ + 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 0000000000..19e4810b74 --- /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 >); \ + \ + 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 0000000000..b4f3b8e56f --- /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 >); \ + \ + 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 9d7660fab7..2ffcf453b6 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, 0); - defineTemplateTypeNameAndDebug(Cloud, 0); - - defineParcelTypeNameAndDebug(KinematicParcel, 0); - defineTemplateTypeNameAndDebug(KinematicParcel, 0); - defineParcelTypeNameAndDebug(ThermoParcel, 0); - defineTemplateTypeNameAndDebug(ThermoParcel, 0); - defineParcelTypeNameAndDebug(ReactingParcel, 0); - defineTemplateTypeNameAndDebug(ReactingParcel, 0); - defineTemplateTypeNameAndDebug - ( - TrackedReactingParcel, - 0 - ); - - defineParcelTypeNameAndDebug(KinematicCloud, 0); -// defineTemplateTypeNameAndDebug(KinematicCloud, 0); - - defineParcelTypeNameAndDebug(ThermoCloud, 0); -// defineTemplateTypeNameAndDebug(ThermoCloud, 0); - - defineParcelTypeNameAndDebug(ReactingCloud, 0); -// defineTemplateTypeNameAndDebug(ReactingCloud, 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 358da8e2e2..e81e981f99 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); + // Kinematic sub-models + createReactingDispersionModelType(BasicTrackedReactingParcel); + createReactingDragModelType(BasicTrackedReactingParcel); + createReactingInjectionModelType(BasicTrackedReactingParcel); + createReactingPatchInteractionModelType(BasicTrackedReactingParcel); + createReactingPostProcessingModelType(BasicTrackedReactingParcel); - // Add instances of drag model to the table - makeDragModelType(NoDrag, KinematicCloud, bTrackedReactingParcel); - makeDragModelType(SphereDrag, KinematicCloud, bTrackedReactingParcel); -} + // 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 e573e7ca36..0000000000 --- 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); - - // 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 1858335ca9..0000000000 --- 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); - - defineNamedTemplateTypeNameAndDebug - ( - DispersionRASModel >, - 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 7dfe9a3131..0000000000 --- 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); - - // 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 28083e2973..0000000000 --- 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); - - // 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 15dd56ee3d..0000000000 --- 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); - - // 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 533cf64dc9..0000000000 --- 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); - - // 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 c67cd52a6a..0000000000 --- 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); - - // 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 0000000000..80e065083d --- /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 ParcelType##ThermoType; \ + \ + makeParcelIOList(ParcelType##ThermoType); \ + \ + defineTemplateTypeNameAndDebug(ParcelType##ThermoType, 0); \ + defineTemplateTypeNameAndDebug(Particle, 0); \ + defineTemplateTypeNameAndDebug(Cloud, 0); \ + \ + defineParcelTypeNameAndDebug(KinematicParcel, 0); \ + defineTemplateTypeNameAndDebug \ + ( \ + KinematicParcel, \ + 0 \ + ); \ + defineParcelTypeNameAndDebug(ThermoParcel, 0); \ + defineTemplateTypeNameAndDebug(ThermoParcel, 0); \ + defineParcelTypeNameAndDebug(ReactingParcel, 0); \ + defineTemplateTypeNameAndDebug(ReactingParcel, 0);\ + defineParcelTypeNameAndDebug \ + ( \ + ReactingMultiphaseParcel, \ + 0 \ + ); \ + defineTemplateTypeNameAndDebug \ + ( \ + ReactingMultiphaseParcel, \ + 0 \ + ); \ + \ + defineParcelTypeNameAndDebug(KinematicCloud, 0); \ + defineParcelTypeNameAndDebug(ThermoCloud, 0); \ + defineParcelTypeNameAndDebug(ReactingCloud, 0); \ + defineParcelTypeNameAndDebug \ + ( \ + ReactingMultiphaseCloud, \ + 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 c64bfc9473..3045c3406f 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 bReactingParcel; -}; +#include "reactingThermoTypes.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -54,8 +44,6 @@ namespace Foam \ makeParcelIOList(ParcelType##ThermoType); \ \ - defineTemplateTypeNameAndDebug(BasicReactingCloud, 0); \ - \ defineTemplateTypeNameAndDebug(ParcelType##ThermoType, 0); \ defineTemplateTypeNameAndDebug(Particle, 0); \ defineTemplateTypeNameAndDebug(Cloud, 0); \ diff --git a/src/lagrangian/intermediate/parcels/include/createTrackedReactingParcelTypes.H b/src/lagrangian/intermediate/parcels/include/createTrackedReactingParcelTypes.H new file mode 100644 index 0000000000..c374a2dcd9 --- /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 ParcelType##ThermoType; \ + \ + defineParcelTypeNameAndDebug \ + ( \ + TrackedReactingParcel, \ + 0 \ + ); \ + defineTemplateTypeNameAndDebug \ + ( \ + TrackedReactingParcel, \ + 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 015f00fb8b..5848a52964 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 04ff69a9c6..2decc76d4b 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 1cf7be00f8..46e7d104bf 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 > >, \ + 0 \ + ); \ + \ + DispersionModel > >:: \ + adddictionaryConstructorToTable \ + > > > \ + 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 34220baafe..9fae0e9b11 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 > >, \ + 0 \ + ); \ + \ + DragModel > >:: \ + adddictionaryConstructorToTable \ + > > > \ + 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 4b4c07a9f7..b00356a174 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 > >, \ + 0 \ + ); \ + \ + InjectionModel > >:: \ + adddictionaryConstructorToTable \ + > > > \ + 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 f6cada656f..cffca1e286 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 > >, \ + 0 \ + ); \ + \ + PatchInteractionModel > >:: \ + adddictionaryConstructorToTable \ + > > > \ + 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 c450ed07c4..4f3d68187b 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 > >, \ + 0 \ + ); \ + \ + PostProcessingModel > >:: \ + adddictionaryConstructorToTable \ + > > > \ + 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 2dac578982..6010e3c43f 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 >, 0); \ + defineNamedTemplateTypeNameAndDebug \ + ( \ + SS > >, \ + 0 \ + ); \ \ - CompositionModel >:: \ - adddictionaryConstructorToTable > > \ - add##SS##CloudType##ParcelType##ConstructorToTable_; + CompositionModel > >:: \ + adddictionaryConstructorToTable \ + > > > \ + 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 91a727587d..695c48c1a7 100644 --- a/src/lagrangian/intermediate/submodels/Reacting/CompositionModel/SinglePhaseMixture/SinglePhaseMixture.H +++ b/src/lagrangian/intermediate/submodels/Reacting/CompositionModel/SinglePhaseMixture/SinglePhaseMixture.H @@ -139,6 +139,10 @@ public: }; +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +} // End namespace Foam + // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // #ifdef NoRepository @@ -147,10 +151,6 @@ public: // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - #endif // ************************************************************************* // diff --git a/src/lagrangian/intermediate/submodels/Reacting/PhaseChangeModel/PhaseChangeModel/PhaseChangeModel.H b/src/lagrangian/intermediate/submodels/Reacting/PhaseChangeModel/PhaseChangeModel/PhaseChangeModel.H index b8ebc644b0..2e0f03a3f5 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 >, 0); \ + defineNamedTemplateTypeNameAndDebug \ + ( \ + SS > >, \ + 0 \ + ); \ \ - PhaseChangeModel >:: \ - adddictionaryConstructorToTable > > \ - add##SS##CloudType##ParcelType##ConstructorToTable_; + PhaseChangeModel > >:: \ + adddictionaryConstructorToTable \ + > > > \ + 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 bb4e7ddc63..dd80ba9fd2 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 >, 0); \ + defineNamedTemplateTypeNameAndDebug \ + ( \ + SS > >, \ + 0 \ + ); \ \ - DevolatilisationModel >:: \ - adddictionaryConstructorToTable > > \ - add##SS##CloudType##ParcelType##ConstructorToTable_; + DevolatilisationModel > >:: \ + adddictionaryConstructorToTable \ + > > > \ + 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 8f1657f47a..ba1d41825f 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 > >, \ + 0 \ + ); \ + \ + SurfaceReactionModel > >:: \ + adddictionaryConstructorToTable \ + > > > \ + 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 af5a43679c..9e6ccdc4af 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 > >, \ + 0 \ + ); \ + \ + HeatTransferModel > >:: \ + adddictionaryConstructorToTable \ + > > > \ + add##SS##CloudType##ParcelType##ThermoType##ConstructorToTable_; + + // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // #ifdef NoRepository