Commit 94c54c1c authored by andy's avatar andy
Browse files

ENH: Updated lagrangian intermediate template instantiation macros

parent 34888963
......@@ -26,13 +26,13 @@ License
#include "basicKinematicCollidingCloud.H"
// Kinematic
#include "makeParcelForcesNew.H"
#include "makeParcelDispersionModelsNew.H"
#include "makeParcelInjectionModelsNew.H"
#include "makeParcelForces.H"
#include "makeParcelDispersionModels.H"
#include "makeParcelInjectionModels.H"
#include "makeParcelCollisionModels.H"
#include "makeParcelPatchInteractionModelsNew.H"
#include "makeParcelPostProcessingModelsNew.H"
#include "makeParcelSurfaceFilmModelsNew.H"
#include "makeParcelPatchInteractionModels.H"
#include "makeParcelPostProcessingModels.H"
#include "makeParcelSurfaceFilmModels.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
......@@ -40,15 +40,15 @@ namespace Foam
{
// Kinematic sub-models
typedef basicKinematicCollidingCloud::cloudType
basicKinematicCollidingCloud_1;
basicKinematicCollidingCloud_K;
makeParcelForcesNew(basicKinematicCollidingCloud_1);
makeParcelDispersionModelsNew(basicKinematicCollidingCloud_1);
makeParcelInjectionModelsNew(basicKinematicCollidingCloud_1);
makeParcelForces(basicKinematicCollidingCloud_K);
makeParcelDispersionModels(basicKinematicCollidingCloud_K);
makeParcelInjectionModels(basicKinematicCollidingCloud_K);
makeParcelCollisionModels(basicKinematicCollidingCloud);
makeParcelPatchInteractionModelsNew(basicKinematicCollidingCloud_1);
makeParcelPostProcessingModelsNew(basicKinematicCollidingCloud_1);
makeParcelSurfaceFilmModelsNew(basicKinematicCollidingCloud_1);
makeParcelPatchInteractionModels(basicKinematicCollidingCloud_K);
makeParcelPostProcessingModels(basicKinematicCollidingCloud_K);
makeParcelSurfaceFilmModels(basicKinematicCollidingCloud_K);
}
......
......@@ -23,29 +23,27 @@ License
\*---------------------------------------------------------------------------*/
#include "basicKinematicParcel.H"
#include "basicKinematicCloud.H"
// Kinematic
#include "makeParcelForces.H"
#include "makeParcelDispersionModels.H"
#include "makeParcelInjectionModels.H"
#include "makeParcelCollisionModels.H"
#include "makeParcelPatchInteractionModels.H"
#include "makeParcelPostProcessingModels.H"
#include "makeParcelSurfaceFilmModels.H"
#include "makeParcelForcesNew.H"
#include "makeParcelDispersionModelsNew.H"
#include "makeParcelInjectionModelsNew.H"
#include "makeParcelPatchInteractionModelsNew.H"
#include "makeParcelPostProcessingModelsNew.H"
#include "makeParcelSurfaceFilmModelsNew.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
namespace Foam
{
// Kinematic sub-models
makeParcelForces(basicKinematicParcel);
makeParcelDispersionModels(basicKinematicParcel);
makeParcelInjectionModels(basicKinematicParcel);
makeParcelCollisionModels(basicKinematicParcel);
makeParcelPatchInteractionModels(basicKinematicParcel);
makeParcelPostProcessingModels(basicKinematicParcel);
makeParcelSurfaceFilmModels(basicKinematicParcel);
makeParcelForcesNew(basicKinematicCloud);
makeParcelDispersionModelsNew(basicKinematicCloud);
makeParcelInjectionModelsNew(basicKinematicCloud);
makeParcelPatchInteractionModelsNew(basicKinematicCloud);
makeParcelPostProcessingModelsNew(basicKinematicCloud);
makeParcelSurfaceFilmModelsNew(basicKinematicCloud);
}
......
......@@ -23,13 +23,12 @@ License
\*---------------------------------------------------------------------------*/
#include "basicReactingMultiphaseParcel.H"
#include "basicReactingMultiphaseCloud.H"
// Kinematic
#include "makeThermoParcelForces.H" // thermo variant
#include "makeParcelDispersionModels.H"
#include "makeReactingMultiphaseParcelInjectionModels.H" // MP variant
#include "makeParcelCollisionModels.H"
#include "makeParcelPatchInteractionModels.H"
#include "makeParcelPostProcessingModels.H"
......@@ -49,36 +48,42 @@ License
namespace Foam
{
typedef basicReactingMultiphaseCloud::cloudType
basicReactingMultiphaseCloud_R;
typedef basicReactingMultiphaseCloud_R::cloudType
basicReactingMultiphaseCloud_T;
typedef basicReactingMultiphaseCloud_T::cloudType
basicReactingMultiphaseCloud_K;
// Kinematic sub-models
makeThermoParcelForces(basicReactingMultiphaseParcel);
makeParcelDispersionModels(basicReactingMultiphaseParcel);
makeReactingMultiphaseParcelInjectionModels(basicReactingMultiphaseParcel);
makeParcelCollisionModels(basicReactingMultiphaseParcel);
makeParcelPatchInteractionModels(basicReactingMultiphaseParcel);
makeParcelPostProcessingModels(basicReactingMultiphaseParcel);
makeThermoParcelForces(basicReactingMultiphaseCloud_K);
makeParcelDispersionModels(basicReactingMultiphaseCloud_K);
makeReactingMultiphaseParcelInjectionModels(basicReactingMultiphaseCloud_K);
makeParcelPatchInteractionModels(basicReactingMultiphaseCloud_K);
makeParcelPostProcessingModels(basicReactingMultiphaseCloud_K);
// Thermo sub-models
makeParcelHeatTransferModels(basicReactingMultiphaseParcel);
makeParcelHeatTransferModels(basicReactingMultiphaseCloud_T);
// Reacting sub-models
makeReactingMultiphaseParcelCompositionModels
(
basicReactingMultiphaseParcel
basicReactingMultiphaseCloud_R
);
makeReactingParcelPhaseChangeModels(basicReactingMultiphaseParcel);
makeReactingParcelPhaseChangeModels(basicReactingMultiphaseCloud_R);
// Reacting multiphase sub-models
makeReactingMultiphaseParcelDevolatilisationModels
(
basicReactingMultiphaseParcel
basicReactingMultiphaseCloud
);
makeReactingParcelSurfaceFilmModels
(
basicReactingMultiphaseParcel
basicReactingMultiphaseCloud_K
);
makeReactingMultiphaseParcelSurfaceReactionModels
(
basicReactingMultiphaseParcel
basicReactingMultiphaseCloud
);
}
......
......@@ -23,13 +23,12 @@ License
\*---------------------------------------------------------------------------*/
#include "basicReactingParcel.H"
#include "basicReactingCloud.H"
// Kinematic
#include "makeThermoParcelForces.H" // thermo variant
#include "makeParcelDispersionModels.H"
#include "makeReactingParcelInjectionModels.H" // Reacting variant
#include "makeParcelCollisionModels.H"
#include "makeParcelPatchInteractionModels.H"
#include "makeParcelPostProcessingModels.H"
......@@ -45,21 +44,23 @@ License
namespace Foam
{
typedef basicReactingCloud::cloudType basicReactingCloud_T;
typedef basicReactingCloud_T::cloudType basicReactingCloud_K;
// Kinematic sub-models
makeThermoParcelForces(basicReactingParcel);
makeParcelDispersionModels(basicReactingParcel);
makeReactingParcelInjectionModels(basicReactingParcel);
makeParcelCollisionModels(basicReactingParcel);
makeParcelPatchInteractionModels(basicReactingParcel);
makeParcelPostProcessingModels(basicReactingParcel);
makeThermoParcelForces(basicReactingCloud_K);
makeParcelDispersionModels(basicReactingCloud_K);
makeReactingParcelInjectionModels(basicReactingCloud_K);
makeParcelPatchInteractionModels(basicReactingCloud_K);
makeParcelPostProcessingModels(basicReactingCloud_K);
// Thermo sub-models
makeParcelHeatTransferModels(basicReactingParcel);
makeParcelHeatTransferModels(basicReactingCloud_T);
// Reacting sub-models
makeReactingParcelCompositionModels(basicReactingParcel);
makeReactingParcelPhaseChangeModels(basicReactingParcel);
makeReactingParcelSurfaceFilmModels(basicReactingParcel);
makeReactingParcelCompositionModels(basicReactingCloud);
makeReactingParcelPhaseChangeModels(basicReactingCloud);
makeReactingParcelSurfaceFilmModels(basicReactingCloud_K);
}
......
......@@ -23,13 +23,12 @@ License
\*---------------------------------------------------------------------------*/
#include "basicThermoParcel.H"
#include "basicThermoCloud.H"
// Kinematic
#include "makeThermoParcelForces.H" // thermo variant
#include "makeParcelDispersionModels.H"
#include "makeParcelInjectionModels.H"
#include "makeParcelCollisionModels.H"
#include "makeParcelPatchInteractionModels.H"
#include "makeParcelPostProcessingModels.H"
......@@ -42,16 +41,18 @@ License
namespace Foam
{
// Kinematic sub-models
makeThermoParcelForces(basicThermoParcel);
makeParcelDispersionModels(basicThermoParcel);
makeParcelInjectionModels(basicThermoParcel);
makeParcelCollisionModels(basicThermoParcel);
makeParcelPatchInteractionModels(basicThermoParcel);
makeParcelPostProcessingModels(basicThermoParcel);
typedef basicThermoCloud::cloudType basicThermoCloud_K;
// Kinematic sub-models
makeThermoParcelForces(basicThermoCloud_K);
makeParcelDispersionModels(basicThermoCloud_K);
makeParcelInjectionModels(basicThermoCloud_K);
makeParcelPatchInteractionModels(basicThermoCloud_K);
makeParcelPostProcessingModels(basicThermoCloud_K);
// Thermo sub-models
makeParcelHeatTransferModels(basicThermoParcel);
makeParcelSurfaceFilmModels(basicThermoParcel);
makeParcelHeatTransferModels(basicThermoCloud);
makeParcelSurfaceFilmModels(basicThermoCloud_K);
}
......
......@@ -28,9 +28,6 @@ License
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#include "Cloud.H"
#include "KinematicCloud.H"
#include "NoCollision.H"
#include "PairCollision.H"
......@@ -41,20 +38,18 @@ License
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#define makeParcelCollisionModels(ParcelType) \
\
typedef KinematicCloud<Cloud<ParcelType> > KC##ParcelType; \
#define makeParcelCollisionModels(CloudType) \
\
makeCollisionModel(KC##ParcelType); \
makeCollisionModelType(NoCollision, KC##ParcelType); \
makeCollisionModelType(PairCollision, KC##ParcelType); \
makeCollisionModel(CloudType); \
makeCollisionModelType(NoCollision, CloudType); \
makeCollisionModelType(PairCollision, CloudType); \
\
makePairModel(KC##ParcelType); \
makePairModelType(PairSpringSliderDashpot, KC##ParcelType); \
makePairModel(CloudType); \
makePairModelType(PairSpringSliderDashpot, CloudType); \
\
makeWallModel(KC##ParcelType); \
makeWallModelType(WallSpringSliderDashpot, KC##ParcelType); \
makeWallModelType(WallLocalSpringSliderDashpot, KC##ParcelType);
makeWallModel(CloudType); \
makeWallModelType(WallSpringSliderDashpot, CloudType); \
makeWallModelType(WallLocalSpringSliderDashpot, CloudType);
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
......
......@@ -28,30 +28,21 @@ License
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#include "Cloud.H"
#include "KinematicCloud.H"
#include "NoDispersion.H"
#include "GradientDispersionRAS.H"
#include "StochasticDispersionRAS.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#define makeParcelDispersionModels(ParcelType) \
\
typedef KinematicCloud<Cloud<ParcelType> > KC##ParcelType; \
#define makeParcelDispersionModels(CloudType) \
\
makeDispersionModel(KC##ParcelType); \
makeDispersionModel(CloudType); \
\
defineNamedTemplateTypeNameAndDebug \
( \
DispersionRASModel<KC##ParcelType>, \
0 \
); \
defineNamedTemplateTypeNameAndDebug(DispersionRASModel<CloudType>, 0); \
\
makeDispersionModelType(NoDispersion, KC##ParcelType); \
makeDispersionModelType(GradientDispersionRAS, KC##ParcelType); \
makeDispersionModelType(StochasticDispersionRAS, KC##ParcelType);
makeDispersionModelType(NoDispersion, CloudType); \
makeDispersionModelType(GradientDispersionRAS, CloudType); \
makeDispersionModelType(StochasticDispersionRAS, CloudType);
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
......
......@@ -28,9 +28,6 @@ License
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#include "Cloud.H"
#include "KinematicCloud.H"
#include "SphereDragForce.H"
#include "NonSphereDragForce.H"
......@@ -41,17 +38,15 @@ License
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#define makeParcelForces(ParcelType) \
\
typedef KinematicCloud<Cloud<ParcelType> > KC##ParcelType; \
#define makeParcelForces(CloudType) \
\
makeParticleForceModel(KC##ParcelType); \
makeParticleForceModelType(SphereDragForce, KC##ParcelType); \
makeParticleForceModelType(NonSphereDragForce, KC##ParcelType); \
makeParticleForceModelType(GravityForce, KC##ParcelType); \
makeParticleForceModelType(ParamagneticForce, KC##ParcelType); \
makeParticleForceModelType(PressureGradientForce, KC##ParcelType); \
makeParticleForceModelType(SRFForce, KC##ParcelType);
makeParticleForceModel(CloudType); \
makeParticleForceModelType(SphereDragForce, CloudType); \
makeParticleForceModelType(NonSphereDragForce, CloudType); \
makeParticleForceModelType(GravityForce, CloudType); \
makeParticleForceModelType(ParamagneticForce, CloudType); \
makeParticleForceModelType(PressureGradientForce, CloudType); \
makeParticleForceModelType(SRFForce, CloudType);
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
......
......@@ -28,23 +28,17 @@ License
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#include "Cloud.H"
#include "KinematicCloud.H"
#include "ThermoCloud.H"
#include "NoHeatTransfer.H"
#include "RanzMarshall.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#define makeParcelHeatTransferModels(ParcelType) \
\
typedef ThermoCloud<KinematicCloud<Cloud<ParcelType> > > TKC##ParcelType; \
#define makeParcelHeatTransferModels(CloudType) \
\
makeHeatTransferModel(TKC##ParcelType); \
makeHeatTransferModel(CloudType); \
\
makeHeatTransferModelType(NoHeatTransfer, TKC##ParcelType); \
makeHeatTransferModelType(RanzMarshall, TKC##ParcelType);
makeHeatTransferModelType(NoHeatTransfer, CloudType); \
makeHeatTransferModelType(RanzMarshall, CloudType);
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
......
......@@ -28,9 +28,6 @@ License
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#include "Cloud.H"
#include "KinematicCloud.H"
#include "ConeInjection.H"
#include "FieldActivatedInjection.H"
#include "InflationInjection.H"
......@@ -42,19 +39,17 @@ License
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#define makeParcelInjectionModels(ParcelType) \
\
typedef KinematicCloud<Cloud<ParcelType> > KC##ParcelType; \
#define makeParcelInjectionModels(CloudType) \
\
makeInjectionModel(KC##ParcelType); \
makeInjectionModel(CloudType); \
\
makeInjectionModelType(ConeInjection, KC##ParcelType); \
makeInjectionModelType(FieldActivatedInjection, KC##ParcelType); \
makeInjectionModelType(InflationInjection, KC##ParcelType); \
makeInjectionModelType(KinematicLookupTableInjection, KC##ParcelType); \
makeInjectionModelType(ManualInjection, KC##ParcelType); \
makeInjectionModelType(NoInjection, KC##ParcelType); \
makeInjectionModelType(PatchInjection, KC##ParcelType);
makeInjectionModelType(ConeInjection, CloudType); \
makeInjectionModelType(FieldActivatedInjection, CloudType); \
makeInjectionModelType(InflationInjection, CloudType); \
makeInjectionModelType(KinematicLookupTableInjection, CloudType); \
makeInjectionModelType(ManualInjection, CloudType); \
makeInjectionModelType(NoInjection, CloudType); \
makeInjectionModelType(PatchInjection, CloudType);
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
......
......@@ -28,9 +28,6 @@ License
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#include "Cloud.H"
#include "KinematicCloud.H"
#include "LocalInteraction.H"
#include "NoInteraction.H"
#include "Rebound.H"
......@@ -38,16 +35,14 @@ License
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#define makeParcelPatchInteractionModels(ParcelType) \
\
typedef KinematicCloud<Cloud<ParcelType> > KC##ParcelType; \
#define makeParcelPatchInteractionModels(CloudType) \
\
makePatchInteractionModel(KC##ParcelType); \
makePatchInteractionModel(CloudType); \
\
makePatchInteractionModelType(LocalInteraction, KC##ParcelType); \
makePatchInteractionModelType(NoInteraction, KC##ParcelType); \
makePatchInteractionModelType(Rebound, KC##ParcelType); \
makePatchInteractionModelType(StandardWallInteraction, KC##ParcelType);
makePatchInteractionModelType(LocalInteraction, CloudType); \
makePatchInteractionModelType(NoInteraction, CloudType); \
makePatchInteractionModelType(Rebound, CloudType); \
makePatchInteractionModelType(StandardWallInteraction, CloudType);
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
......
......@@ -28,24 +28,19 @@ License
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#include "Cloud.H"
#include "KinematicCloud.H"
#include "NoPostProcessing.H"
#include "ParticleTracks.H"
#include "PatchPostProcessing.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#define makeParcelPostProcessingModels(ParcelType) \
\
typedef KinematicCloud<Cloud<ParcelType> > KC##ParcelType; \
#define makeParcelPostProcessingModels(CloudType) \
\
makePostProcessingModel(KC##ParcelType); \
makePostProcessingModel(CloudType); \
\
makePostProcessingModelType(NoPostProcessing, KC##ParcelType); \
makePostProcessingModelType(ParticleTracks, KC##ParcelType); \
makePostProcessingModelType(PatchPostProcessing, KC##ParcelType);
makePostProcessingModelType(NoPostProcessing, CloudType); \
makePostProcessingModelType(ParticleTracks, CloudType); \
makePostProcessingModelType(PatchPostProcessing, CloudType);
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
......
......@@ -28,19 +28,14 @@ License
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#include "Cloud.H"
#include "KinematicCloud.H"
#include "NoSurfaceFilm.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#define makeParcelSurfaceFilmModels(ParcelType) \
\
typedef KinematicCloud<Cloud<ParcelType> > KC##ParcelType; \
#define makeParcelSurfaceFilmModels(CloudType) \
\
makeSurfaceFilmModel(KC##ParcelType); \
makeSurfaceFilmModelType(NoSurfaceFilm, KC##ParcelType);
makeSurfaceFilmModel(CloudType); \
makeSurfaceFilmModelType(NoSurfaceFilm, CloudType);
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
......
......@@ -28,24 +28,16 @@ License
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#include "Cloud.H"
#include "KinematicCloud.H"
#include "ThermoCloud.H"
#include "ReactingCloud.H"
#include "NoComposition.H"
#include "SingleMixtureFraction.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#define makeReactingMultiphaseParcelCompositionModels(ParcelType) \
\
typedef ReactingCloud<ThermoCloud<KinematicCloud<Cloud<ParcelType> > > > \
RTKC##ParcelType; \
#define makeReactingMultiphaseParcelCompositionModels(CloudType) \
\
makeCompositionModel(RTKC##ParcelType); \
makeCompositionModelType(NoComposition, RTKC##ParcelType); \
makeCompositionModelType(SingleMixtureFraction, RTKC##ParcelType);
makeCompositionModel(CloudType); \
makeCompositionModelType(NoComposition, CloudType); \
makeCompositionModelType(SingleMixtureFraction, CloudType);
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
......
......@@ -28,52 +28,21 @@ License
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#include "Cloud.H"
#include "KinematicCloud.H"
#include "ThermoCloud.H"
#include "ReactingCloud.H"
#include "ReactingMultiphaseCloud.H"
#include "ConstantRateDevolatilisation.H"
#include "NoDevolatilisation.H"
#include "SingleKineticRateDevolatilisation.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#define makeReactingMultiphaseParcelDevolatilisationModels(ParcelType) \
\
typedef ReactingMultiphaseCloud \
< \
ReactingCloud \
< \
ThermoCloud \
< \
KinematicCloud \
< \
Cloud \
< \
ParcelType \
> \
> \
> \
> \
> RMPRTKC##ParcelType; \