diff --git a/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.C b/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.C index de61c7aa2e..c68238a28f 100644 --- a/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.C +++ b/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.C @@ -298,26 +298,29 @@ void Foam::KinematicCloud::resetSourceTerms() template void Foam::KinematicCloud::evolve() { - autoPtr > rhoInterpolator = interpolation::New - ( - interpolationSchemes_, - vpi_, - rho_ - ); + autoPtr > rhoInterpolator = + interpolation::New + ( + interpolationSchemes_, + vpi_, + rho_ + ); - autoPtr > UInterpolator = interpolation::New - ( - interpolationSchemes_, - vpi_, - U_ - ); + autoPtr > UInterpolator = + interpolation::New + ( + interpolationSchemes_, + vpi_, + U_ + ); - autoPtr > muInterpolator = interpolation::New - ( - interpolationSchemes_, - vpi_, - mu_ - ); + autoPtr > muInterpolator = + interpolation::New + ( + interpolationSchemes_, + vpi_, + mu_ + ); typename ParcelType::trackData td ( diff --git a/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.H b/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.H index 74f114d5a6..7a572c45c1 100644 --- a/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.H +++ b/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.H @@ -244,6 +244,25 @@ protected: const scalar pVolume ); + //- Inject more parcels + template + void inject(TrackingData& td); + + //- Inject parcel if it is valid - delete otherwise + template + void injectParcel + ( + TrackingData& td, + ParcelType* p + ); + + //- Move the parcels + template + void move(TrackingData& td); + + //- Post-injection checks + void postInjectCheck(); + public: @@ -264,7 +283,7 @@ public: ); - // Destructors + // Destructor virtual ~KinematicCloud(); @@ -375,9 +394,6 @@ public: // Check - //- Post-injection checks - void postInjectCheck(); - //- Total mass injected inline const scalar massInjected() const; @@ -411,35 +427,13 @@ public: inline const tmp alpha() const; - // Edit + // Cloud evolution functions //- Reset the spray source terms void resetSourceTerms(); //- Evolve the spray (move, inject) void evolve(); - - //- Move the parcels - template - void move - ( - TrackingData& td - ); - - //- Inject parcel if it is valid - delete otherwise - template - void injectParcel - ( - TrackingData& td, - ParcelType* p - ); - - //- Inject more parcels - template - void inject - ( - TrackingData& td - ); }; diff --git a/src/lagrangian/intermediate/clouds/Templates/ReactingCloud/ReactingCloud.C b/src/lagrangian/intermediate/clouds/Templates/ReactingCloud/ReactingCloud.C index 09a43b1499..5251907c13 100644 --- a/src/lagrangian/intermediate/clouds/Templates/ReactingCloud/ReactingCloud.C +++ b/src/lagrangian/intermediate/clouds/Templates/ReactingCloud/ReactingCloud.C @@ -185,22 +185,7 @@ void Foam::ReactingCloud::evolve() inject(td); - move(td); -} - - -template -template -void Foam::ReactingCloud::move -( - TrackingData& td -) -{ - if (this->coupled()) - { - resetSourceTerms(); - } - Cloud::move(td); + this->move(td); } @@ -226,7 +211,7 @@ void Foam::ReactingCloud::inject // Return if no parcels are required if (!nParcels) { - postInjectCheck(); + this->postInjectCheck(); return; } @@ -322,11 +307,11 @@ void Foam::ReactingCloud::inject pPtr->stepFraction() = (this->db().time().deltaT().value() - dt) /this->db().time().deltaT().value(); - injectParcel(td, pPtr); + this->injectParcel(td, pPtr); } } - postInjectCheck(); + this->postInjectCheck(); if (debug) { @@ -335,23 +320,4 @@ void Foam::ReactingCloud::inject } -template -template -void Foam::ReactingCloud::injectParcel -( - TrackingData& td, - ParcelType* p -) -{ - ThermoCloud::injectParcel(td, p); -} - - -template -void Foam::ReactingCloud::postInjectCheck() -{ - ThermoCloud::postInjectCheck(); -} - - // ************************************************************************* // diff --git a/src/lagrangian/intermediate/clouds/Templates/ReactingCloud/ReactingCloud.H b/src/lagrangian/intermediate/clouds/Templates/ReactingCloud/ReactingCloud.H index 6b563de9ec..14222dd198 100644 --- a/src/lagrangian/intermediate/clouds/Templates/ReactingCloud/ReactingCloud.H +++ b/src/lagrangian/intermediate/clouds/Templates/ReactingCloud/ReactingCloud.H @@ -114,6 +114,13 @@ class ReactingCloud void operator=(const ReactingCloud&); +protected: + + //- Inject more parcels + template + void inject(TrackingData& td); + + public: //- Runtime type information @@ -135,7 +142,7 @@ public: ); - // Destructors + // Destructor virtual ~ReactingCloud(); @@ -192,41 +199,13 @@ public: Srho1() const; - // Check - - //- Post-injection checks - void postInjectCheck(); - - - // Edit + // Cloud evolution functions //- Reset the spray source terms void resetSourceTerms(); //- Evolve the spray (move, inject) void evolve(); - - //- Move the parcels - template - void move - ( - TrackingData& td - ); - - //- Inject parcel if it is valid - delete otherwise - template - void injectParcel - ( - TrackingData& td, - ParcelType* p - ); - - //- Inject more parcels - template - void inject - ( - TrackingData& td - ); }; diff --git a/src/lagrangian/intermediate/clouds/Templates/ThermoCloud/ThermoCloud.C b/src/lagrangian/intermediate/clouds/Templates/ThermoCloud/ThermoCloud.C index 4f266fc822..a4f6f9324b 100644 --- a/src/lagrangian/intermediate/clouds/Templates/ThermoCloud/ThermoCloud.C +++ b/src/lagrangian/intermediate/clouds/Templates/ThermoCloud/ThermoCloud.C @@ -176,22 +176,7 @@ void Foam::ThermoCloud::evolve() inject(td); - move(td); -} - - -template -template -void Foam::ThermoCloud::move -( - TrackingData& td -) -{ - if (this->coupled()) - { - resetSourceTerms(); - } - Cloud::move(td); + this->move(td); } @@ -207,23 +192,4 @@ void Foam::ThermoCloud::inject } -template -template -void Foam::ThermoCloud::injectParcel -( - TrackingData& td, - ParcelType* p -) -{ - KinematicCloud::injectParcel(td, p); -} - - -template -void Foam::ThermoCloud::postInjectCheck() -{ - KinematicCloud::postInjectCheck(); -} - - // ************************************************************************* // diff --git a/src/lagrangian/intermediate/clouds/Templates/ThermoCloud/ThermoCloud.H b/src/lagrangian/intermediate/clouds/Templates/ThermoCloud/ThermoCloud.H index 8338ed3b1d..98a2e496a6 100644 --- a/src/lagrangian/intermediate/clouds/Templates/ThermoCloud/ThermoCloud.H +++ b/src/lagrangian/intermediate/clouds/Templates/ThermoCloud/ThermoCloud.H @@ -116,6 +116,13 @@ class ThermoCloud void operator=(const ThermoCloud&); +protected: + + //- Inject more parcels + template + void inject(TrackingData& td); + + public: //- Runtime type information @@ -136,7 +143,7 @@ public: ); - // Destructors + // Destructor virtual ~ThermoCloud(); @@ -200,48 +207,13 @@ public: inline tmp sigmap() const; - // Check - - //- Post-injection checks - void postInjectCheck(); - - - // Edit - - //- Reset the spray source terms - void resetSourceTerms(); + // Cloud evolution functions //- Evolve the spray (move, inject) void evolve(); - - // Tracking - - //- Move the particles under the influence of the given - // gravitational acceleration - template - void move - ( - TrackingData& td - ); - - - // Injection - - //- Inject parcel if it is valid - delete otherwise - template - void injectParcel - ( - TrackingData& td, - ParcelType* p - ); - - //- Inject more parcels - template - void inject - ( - TrackingData& td - ); + //- Reset the spray source terms + void resetSourceTerms(); }; diff --git a/src/lagrangian/intermediate/clouds/derived/basicKinematicCloud/basicKinematicCloud.C b/src/lagrangian/intermediate/clouds/derived/basicKinematicCloud/basicKinematicCloud.C index 77420ccc62..17e8baa79d 100644 --- a/src/lagrangian/intermediate/clouds/derived/basicKinematicCloud/basicKinematicCloud.C +++ b/src/lagrangian/intermediate/clouds/derived/basicKinematicCloud/basicKinematicCloud.C @@ -60,34 +60,9 @@ Foam::basicKinematicCloud::~basicKinematicCloud() // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // -void Foam::basicKinematicCloud::evolve() -{ - KinematicCloud::evolve(); -} - - -void Foam::basicKinematicCloud::move -( - KinematicParcel::trackData& td -) -{ - KinematicCloud::move(td); -} - - -void Foam::basicKinematicCloud::inject -( - KinematicParcel::trackData& td -) -{ - KinematicCloud::inject(td); -} - - void Foam::basicKinematicCloud::writeFields() const { basicKinematicParcel::writeFields(*this); } - // ************************************************************************* // diff --git a/src/lagrangian/intermediate/clouds/derived/basicKinematicCloud/basicKinematicCloud.H b/src/lagrangian/intermediate/clouds/derived/basicKinematicCloud/basicKinematicCloud.H index d4f8204a07..38b3070ac6 100644 --- a/src/lagrangian/intermediate/clouds/derived/basicKinematicCloud/basicKinematicCloud.H +++ b/src/lagrangian/intermediate/clouds/derived/basicKinematicCloud/basicKinematicCloud.H @@ -82,35 +82,15 @@ public: ); - // Destructors + //- Destructor ~basicKinematicCloud(); // Member functions - // Edit - - //- Evolve the spray (move, inject) - void evolve(); - - //- Move the parcels - void move - ( - KinematicParcel::trackData& td - ); - - //- Inject more parcels - void inject - ( - KinematicParcel::trackData& td - ); - - - // I-O - - //- Write fields - void writeFields() const; + //- Write fields + void writeFields() const; }; // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/src/lagrangian/intermediate/clouds/derived/basicReactingCloud/basicReactingCloud.C b/src/lagrangian/intermediate/clouds/derived/basicReactingCloud/basicReactingCloud.C index 9759d7ad82..1b8eceea2d 100644 --- a/src/lagrangian/intermediate/clouds/derived/basicReactingCloud/basicReactingCloud.C +++ b/src/lagrangian/intermediate/clouds/derived/basicReactingCloud/basicReactingCloud.C @@ -62,33 +62,14 @@ Foam::basicReactingCloud::basicReactingCloud } +// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // + +Foam::basicReactingCloud::~basicReactingCloud() +{} + + // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -void Foam::basicReactingCloud::evolve() -{ - ReactingCloud::evolve(); -} - - -void Foam::basicReactingCloud::move -( - ReactingParcel::trackData& td -) -{ - ReactingCloud::move(td); -} - - -void Foam::basicReactingCloud::inject -( - ReactingParcel::trackData& td -) -{ - ReactingCloud::inject(td); -} - - void Foam::basicReactingCloud::writeFields() const { basicReactingParcel::writeFields(*this); diff --git a/src/lagrangian/intermediate/clouds/derived/basicReactingCloud/basicReactingCloud.H b/src/lagrangian/intermediate/clouds/derived/basicReactingCloud/basicReactingCloud.H index 3791b21e35..4b2292fc59 100644 --- a/src/lagrangian/intermediate/clouds/derived/basicReactingCloud/basicReactingCloud.H +++ b/src/lagrangian/intermediate/clouds/derived/basicReactingCloud/basicReactingCloud.H @@ -66,6 +66,7 @@ public: //- Runtime type information TypeName("basicReactingCloud"); + // Constructors //- Construct given carrier gas fields @@ -81,30 +82,15 @@ public: ); + //- Destructor + + ~basicReactingCloud(); + + // Member Functions - // Edit - - //- Evolve the spray (move, inject) - void evolve(); - - //- Move the parcels - void move - ( - ReactingParcel::trackData& td - ); - - //- Inject more parcels - void inject - ( - ReactingParcel::trackData& td - ); - - - // I-O - - //- Write fields - void writeFields() const; + //- Write fields + void writeFields() const; }; diff --git a/src/lagrangian/intermediate/clouds/derived/basicThermoCloud/basicThermoCloud.C b/src/lagrangian/intermediate/clouds/derived/basicThermoCloud/basicThermoCloud.C index 2fcb522533..d57eddebe5 100644 --- a/src/lagrangian/intermediate/clouds/derived/basicThermoCloud/basicThermoCloud.C +++ b/src/lagrangian/intermediate/clouds/derived/basicThermoCloud/basicThermoCloud.C @@ -52,33 +52,14 @@ Foam::basicThermoCloud::basicThermoCloud } +// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // + +Foam::basicThermoCloud::~basicThermoCloud() +{} + + // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // -void Foam::basicThermoCloud::evolve() -{ - ThermoCloud::evolve(); -} - - -void Foam::basicThermoCloud::move -( - ThermoParcel::trackData& td -) -{ - // Move the parcels - ThermoCloud::move(td); -} - - -void Foam::basicThermoCloud::inject -( - ThermoParcel::trackData& td -) -{ - ThermoCloud::inject(td); -} - - void Foam::basicThermoCloud::writeFields() const { basicThermoParcel::writeFields(*this); diff --git a/src/lagrangian/intermediate/clouds/derived/basicThermoCloud/basicThermoCloud.H b/src/lagrangian/intermediate/clouds/derived/basicThermoCloud/basicThermoCloud.H index f21e9ff782..7d351ccba2 100644 --- a/src/lagrangian/intermediate/clouds/derived/basicThermoCloud/basicThermoCloud.H +++ b/src/lagrangian/intermediate/clouds/derived/basicThermoCloud/basicThermoCloud.H @@ -84,30 +84,15 @@ public: ); + //- Destructor + + ~basicThermoCloud(); + + // Member Functions - // Edit - - //- Evolve the spray (move, inject) - void evolve(); - - //- Move the parcels - void move - ( - ThermoParcel::trackData& td - ); - - //- Inject more parcels - void inject - ( - ThermoParcel::trackData& td - ); - - - // I-O - - //- Write fields - void writeFields() const; + //- Write fields + void writeFields() const; }; diff --git a/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcel.H b/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcel.H index 8964010740..f18423e257 100644 --- a/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcel.H +++ b/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcel.H @@ -96,17 +96,14 @@ public: public: //- Constructor - constantProperties - ( - const dictionary& dict - ); + constantProperties(const dictionary& dict); // Member functions - // Access - + //- Return const access to the particle density inline const scalar rho0() const; + //- Return const access to the minimum particle mass inline const scalar minParticleMass() const; }; @@ -125,10 +122,16 @@ public: //- Particle constant properties const constantProperties& constProps_; - //- Interpolators for continuous phase fields + // Interpolators for continuous phase fields + + //- Density interpolator const interpolation& rhoInterp_; + + //- Velocity interpolator const interpolation& UInterp_; + + //- Dynamic viscosity interpolator const interpolation& muInterp_; //- Local gravitational or other body-force acceleration @@ -137,13 +140,10 @@ public: public: - bool switchProcessor; - bool keepParticle; - - // Constructors - inline trackData + //- Construct from components + inline trackData ( KinematicCloud& cloud, const constantProperties& constProps, @@ -156,16 +156,25 @@ public: // Member functions + //- Return access to the owner cloud inline KinematicCloud& cloud(); + //- Return const access to the constant properties inline const constantProperties& constProps() const; + //- Return conat access to the interpolator for continuous + // phase density field inline const interpolation& rhoInterp() const; + //- Return conat access to the interpolator for continuous + // phase velocity field inline const interpolation& UInterp() const; + //- Return conat access to the interpolator for continuous + // phase dynamic viscosity field inline const interpolation& muInterp() const; + // Return const access to the gravitational acceleration vector inline const vector& g() const; }; @@ -200,13 +209,13 @@ protected: // Cell-based quantities - // - Density + // - Density [kg/m3] scalar rhoc_; - // - Velocity + // - Velocity [m/s] vector Uc_; - // - Viscosity + // - Viscosity [Pa.s] scalar muc_; @@ -351,10 +360,7 @@ public: //- Move the parcel template - bool move - ( - TrackData& td - ); + bool move(TrackData& td); // Patch interactions @@ -410,24 +416,18 @@ public: //- Transform the physical properties of the particle // according to the given transformation tensor - virtual void transformProperties(const tensor& T); + void transformProperties(const tensor& T); //- Transform the physical properties of the particle // according to the given separation vector - virtual void transformProperties(const vector& separation); + void transformProperties(const vector& separation); // I-O - static void readFields - ( - KinematicCloud& c - ); + static void readFields(KinematicCloud& c); - static void writeFields - ( - const KinematicCloud& c - ); + static void writeFields(const KinematicCloud& c); // Ostream Operator diff --git a/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcel.H b/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcel.H index 3bdd242cdc..3b17542cd8 100644 --- a/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcel.H +++ b/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcel.H @@ -83,27 +83,23 @@ public: // Private data - //- Vapourisation temperature + //- Vapourisation temperature [K] const scalar Tvap_; - //- Boiling point + //- Boiling point [K] const scalar Tbp_; public: - // Constructors - constantProperties - ( - const dictionary& dict - ); + //- Constructor + constantProperties(const dictionary& dict); - // Member functions + //- Return const access to the vapourisation temperature + inline const scalar Tvap() const; - // Access - - inline const scalar Tvap() const; - inline const scalar Tbp() const; + //- Return const access to the boiling point + inline const scalar Tbp() const; }; @@ -121,14 +117,15 @@ public: //- Particle constant properties const constantProperties& constProps_; - //- Interpolators for continuous phase fields + //- Interpolator for continuous phase pressure field + const interpolation& pInterp_; - const interpolation& pInterp_; public: // Constructors + //- Construct from components inline trackData ( ReactingCloud& cloud, @@ -145,10 +142,14 @@ public: // Member functions + //- Return access to the owner cloud inline ReactingCloud& cloud(); + //- Return const access to the constant properties inline const constantProperties& constProps() const; + //- Return conat access to the interpolator for continuous + // phase pressure field inline const interpolation& pInterp() const; }; @@ -159,19 +160,19 @@ protected: // Parcel properties - //- Initial particle mass + //- Initial particle mass [kg] scalar mass0_; - //- Mass fractions of mixture + //- Mass fractions of mixture [] scalarField YMixture_; - //- Mass fractions of gases + //- Mass fractions of gases [] scalarField YGas_; - //- Mass fractions of liquids + //- Mass fractions of liquids [] scalarField YLiquid_; - //- Mass fractions of solids + //- Mass fractions of solids [] scalarField YSolid_; //- Flag to say that the particle is allowed to combust @@ -181,7 +182,7 @@ protected: // Cell-based quantities - //- Pressure + //- Pressure [Pa] scalar pc_; @@ -311,15 +312,9 @@ public: // I-O - static void readFields - ( - ReactingCloud& c - ); + static void readFields(ReactingCloud& c); - static void writeFields - ( - const ReactingCloud& c - ); + static void writeFields(const ReactingCloud& c); }; diff --git a/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcel.H b/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcel.H index 83b3c8bd2b..c9dd564cdf 100644 --- a/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcel.H +++ b/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcel.H @@ -99,10 +99,7 @@ public: public: // Constructors - constantProperties - ( - const dictionary& dict - ); + constantProperties(const dictionary& dict); // Member functions @@ -129,9 +126,12 @@ public: //- Particle constant properties const constantProperties& constProps_; - //- Interpolators for continuous phase fields + // Interpolators for continuous phase fields + //- Temperature field interpolator const interpolation& TInterp_; + + //- Scpecific heat capacity field interpolator const interpolation& cpInterp_; @@ -139,6 +139,7 @@ public: // Constructors + //- Construct from components inline trackData ( ThermoCloud& cloud, @@ -154,12 +155,18 @@ public: // Member functions + //- Return access to the owner cloud inline ThermoCloud& cloud(); + //- Return const access to the owner cloud inline const constantProperties& constProps() const; + //- Return conat access to the interpolator for continuous + // phase temperature field inline const interpolation& TInterp() const; + //- Return conat access to the interpolator for continuous + // phase specific heat capacity field inline const interpolation& cpInterp() const; }; @@ -179,10 +186,10 @@ protected: // Call-based quantities - //- Temperature + //- Temperature [K] scalar Tc_; - //- Specific heat capacity + //- Specific heat capacity [J/(kg.K)] scalar cpc_; @@ -283,15 +290,9 @@ public: // I-O - static void readFields - ( - ThermoCloud& c - ); + static void readFields(ThermoCloud& c); - static void writeFields - ( - const ThermoCloud& c - ); + static void writeFields(const ThermoCloud& c); };