diff --git a/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.C b/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.C index 63bb2eb7c2b0a0459fea0d9caf1ef56e1f5dec89..b7d6d49e4a965e3c027f2f13fec8aa3a1273e98c 100644 --- a/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.C +++ b/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.C @@ -104,7 +104,7 @@ void Foam::KinematicCloud<CloudType>::solve { cloud.storeState(); - cloud.preEvolve(); + cloud.preEvolve(td); evolveCloud(cloud, td); @@ -115,7 +115,7 @@ void Foam::KinematicCloud<CloudType>::solve } else { - cloud.preEvolve(); + cloud.preEvolve(td); evolveCloud(cloud, td); @@ -127,7 +127,7 @@ void Foam::KinematicCloud<CloudType>::solve cloud.info(); - cloud.postEvolve(); + cloud.postEvolve(td); if (solution_.steadyState()) { @@ -230,7 +230,10 @@ void Foam::KinematicCloud<CloudType>::evolveCloud template<class CloudType> -void Foam::KinematicCloud<CloudType>::postEvolve() +void Foam::KinematicCloud<CloudType>::postEvolve +( + const typename parcelType::trackingData& td +) { Info<< endl; @@ -243,7 +246,7 @@ void Foam::KinematicCloud<CloudType>::postEvolve() forces_.cacheFields(false); - functions_.postEvolve(); + functions_.postEvolve(td); solution_.nextIter(); @@ -306,8 +309,8 @@ Foam::KinematicCloud<CloudType>::KinematicCloud IOobject ( cloudName + "Properties", - rho.mesh().time().constant(), - rho.mesh(), + mesh_.time().constant(), + mesh_, IOobject::MUST_READ_IF_MODIFIED, IOobject::NO_WRITE ) @@ -506,8 +509,8 @@ Foam::KinematicCloud<CloudType>::KinematicCloud IOobject ( name + "Properties", - mesh.time().constant(), - mesh, + mesh_.time().constant(), + mesh_, IOobject::NO_READ, IOobject::NO_WRITE, false @@ -657,7 +660,10 @@ void Foam::KinematicCloud<CloudType>::scaleSources() template<class CloudType> -void Foam::KinematicCloud<CloudType>::preEvolve() +void Foam::KinematicCloud<CloudType>::preEvolve +( + const typename parcelType::trackingData& td +) { // force calculation of mesh dimensions - needed for parallel runs // with topology change due to lazy evaluation of valid mesh dimensions @@ -672,7 +678,7 @@ void Foam::KinematicCloud<CloudType>::preEvolve() pAmbient_ = constProps_.dict().template getOrDefault<scalar>("pAmbient", pAmbient_); - functions_.preEvolve(); + functions_.preEvolve(td); } diff --git a/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.H b/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.H index 2d71032dbb3909e6a6bedfdcacb7edc18075f9f3..4534c2a36a2551c522c0efef17a170e6fcec03c7 100644 --- a/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.H +++ b/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.H @@ -6,7 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2011-2017 OpenFOAM Foundation - Copyright (C) 2016-2019 OpenCFD Ltd. + Copyright (C) 2016-2020 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -273,7 +273,7 @@ protected: ); //- Post-evolve - void postEvolve(); + void postEvolve(const typename parcelType::trackingData& td); //- Reset state of cloud void cloudReset(KinematicCloud<CloudType>& c); @@ -590,7 +590,7 @@ public: void scaleSources(); //- Pre-evolve - void preEvolve(); + void preEvolve(const typename parcelType::trackingData& td); //- Evolve the cloud void evolve(); diff --git a/src/lagrangian/intermediate/clouds/Templates/ThermoCloud/ThermoCloud.C b/src/lagrangian/intermediate/clouds/Templates/ThermoCloud/ThermoCloud.C index a889876ed189ce5d0697577f095a164db4928632..35a0e140b3d48f116a0e16966eadaf122ffc5191 100644 --- a/src/lagrangian/intermediate/clouds/Templates/ThermoCloud/ThermoCloud.C +++ b/src/lagrangian/intermediate/clouds/Templates/ThermoCloud/ThermoCloud.C @@ -6,6 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2011-2017 OpenFOAM Foundation + Copyright (C) 2020 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -446,9 +447,12 @@ void Foam::ThermoCloud<CloudType>::scaleSources() template<class CloudType> -void Foam::ThermoCloud<CloudType>::preEvolve() +void Foam::ThermoCloud<CloudType>::preEvolve +( + const typename parcelType::trackingData& td +) { - CloudType::preEvolve(); + CloudType::preEvolve(td); this->pAmbient() = thermo_.thermo().p().average().value(); } diff --git a/src/lagrangian/intermediate/clouds/Templates/ThermoCloud/ThermoCloud.H b/src/lagrangian/intermediate/clouds/Templates/ThermoCloud/ThermoCloud.H index 158e80594e7ff9438634aba9a3b8d337754d4bc1..47dfcb3949ab41bc38a32cd226062b48d54ffebc 100644 --- a/src/lagrangian/intermediate/clouds/Templates/ThermoCloud/ThermoCloud.H +++ b/src/lagrangian/intermediate/clouds/Templates/ThermoCloud/ThermoCloud.H @@ -6,6 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2011-2017 OpenFOAM Foundation + Copyright (C) 2020 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -358,7 +359,7 @@ public: void scaleSources(); //- Pre-evolve - void preEvolve(); + void preEvolve(const typename parcelType::trackingData& td); //- Evolve the cloud void evolve(); diff --git a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/CloudFunctionObject/CloudFunctionObject.C b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/CloudFunctionObject/CloudFunctionObject.C index ed89fc43e4e849eacc0806d16f1270a36c713d00..57bca3973ffe08c91f8490ca7bf096579ee3f6b6 100644 --- a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/CloudFunctionObject/CloudFunctionObject.C +++ b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/CloudFunctionObject/CloudFunctionObject.C @@ -6,6 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2011-2019 OpenFOAM Foundation + Copyright (C) 2020 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -84,22 +85,21 @@ Foam::CloudFunctionObject<CloudType>::CloudFunctionObject {} -// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // - -template<class CloudType> -Foam::CloudFunctionObject<CloudType>::~CloudFunctionObject() -{} - - // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // template<class CloudType> -void Foam::CloudFunctionObject<CloudType>::preEvolve() +void Foam::CloudFunctionObject<CloudType>::preEvolve +( + const typename parcelType::trackingData& td +) {} template<class CloudType> -void Foam::CloudFunctionObject<CloudType>::postEvolve() +void Foam::CloudFunctionObject<CloudType>::postEvolve +( + const typename parcelType::trackingData& td +) { if (this->owner().time().writeTime()) { @@ -111,7 +111,7 @@ void Foam::CloudFunctionObject<CloudType>::postEvolve() template<class CloudType> void Foam::CloudFunctionObject<CloudType>::postMove ( - typename CloudType::parcelType&, + parcelType&, const scalar, const point&, bool& @@ -122,7 +122,7 @@ void Foam::CloudFunctionObject<CloudType>::postMove template<class CloudType> void Foam::CloudFunctionObject<CloudType>::postPatch ( - const typename CloudType::parcelType&, + const parcelType&, const polyPatch&, bool& ) @@ -132,7 +132,7 @@ void Foam::CloudFunctionObject<CloudType>::postPatch template<class CloudType> void Foam::CloudFunctionObject<CloudType>::postFace ( - const typename CloudType::parcelType&, + const parcelType&, bool& ) {} diff --git a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/CloudFunctionObject/CloudFunctionObject.H b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/CloudFunctionObject/CloudFunctionObject.H index 746f03947c9be60c368db40b0c760da76c9d262d..0949a2ffe18d799e3a0a62a9a7f737bde0944ec4 100644 --- a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/CloudFunctionObject/CloudFunctionObject.H +++ b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/CloudFunctionObject/CloudFunctionObject.H @@ -6,6 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2011-2017 OpenFOAM Foundation + Copyright (C) 2020 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -63,6 +64,11 @@ class CloudFunctionObject : public CloudSubModelBase<CloudType> { +private: + + //- Convenience typedef for parcel type + typedef typename CloudType::parcelType parcelType; + // Private data //- Output path @@ -126,7 +132,7 @@ public: //- Destructor - virtual ~CloudFunctionObject(); + virtual ~CloudFunctionObject() = default; //- Selector @@ -144,15 +150,18 @@ public: // Evaluation //- Pre-evolve hook - virtual void preEvolve(); + virtual void preEvolve(const typename parcelType::trackingData& td); //- Post-evolve hook - virtual void postEvolve(); + virtual void postEvolve + ( + const typename parcelType::trackingData& td + ); //- Post-move hook virtual void postMove ( - typename CloudType::parcelType& p, + parcelType& p, const scalar dt, const point& position0, bool& keepParticle @@ -161,7 +170,7 @@ public: //- Post-patch hook virtual void postPatch ( - const typename CloudType::parcelType& p, + const parcelType& p, const polyPatch& pp, bool& keepParticle ); @@ -169,7 +178,7 @@ public: //- Post-face hook virtual void postFace ( - const typename CloudType::parcelType& p, + const parcelType& p, bool& keepParticle ); diff --git a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/CloudFunctionObjectList/CloudFunctionObjectList.C b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/CloudFunctionObjectList/CloudFunctionObjectList.C index de2822ed1c2a11c5e830a452e1bcea1d16ec6541..17130ec921bc7100216a9e3278917c18263a0b7f 100644 --- a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/CloudFunctionObjectList/CloudFunctionObjectList.C +++ b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/CloudFunctionObjectList/CloudFunctionObjectList.C @@ -6,6 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2011-2017 OpenFOAM Foundation + Copyright (C) 2020 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -103,31 +104,30 @@ Foam::CloudFunctionObjectList<CloudType>::CloudFunctionObjectList {} -// * * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * // - -template<class CloudType> -Foam::CloudFunctionObjectList<CloudType>::~CloudFunctionObjectList() -{} - - // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // template<class CloudType> -void Foam::CloudFunctionObjectList<CloudType>::preEvolve() +void Foam::CloudFunctionObjectList<CloudType>::preEvolve +( + const typename parcelType::trackingData& td +) { forAll(*this, i) { - this->operator[](i).preEvolve(); + this->operator[](i).preEvolve(td); } } template<class CloudType> -void Foam::CloudFunctionObjectList<CloudType>::postEvolve() +void Foam::CloudFunctionObjectList<CloudType>::postEvolve +( + const typename parcelType::trackingData& td +) { forAll(*this, i) { - this->operator[](i).postEvolve(); + this->operator[](i).postEvolve(td); } } @@ -135,7 +135,7 @@ void Foam::CloudFunctionObjectList<CloudType>::postEvolve() template<class CloudType> void Foam::CloudFunctionObjectList<CloudType>::postMove ( - typename CloudType::parcelType& p, + parcelType& p, const scalar dt, const point& position0, bool& keepParticle @@ -156,7 +156,7 @@ void Foam::CloudFunctionObjectList<CloudType>::postMove template<class CloudType> void Foam::CloudFunctionObjectList<CloudType>::postPatch ( - const typename CloudType::parcelType& p, + const parcelType& p, const polyPatch& pp, bool& keepParticle ) @@ -176,7 +176,7 @@ void Foam::CloudFunctionObjectList<CloudType>::postPatch template<class CloudType> void Foam::CloudFunctionObjectList<CloudType>::postFace ( - const typename CloudType::parcelType& p, + const parcelType& p, bool& keepParticle ) { diff --git a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/CloudFunctionObjectList/CloudFunctionObjectList.H b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/CloudFunctionObjectList/CloudFunctionObjectList.H index 4354bf451c1c97ec345c30a99b611d13b334a0b9..41e0a28df4bcaab4140d93b06681d049e435ef96 100644 --- a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/CloudFunctionObjectList/CloudFunctionObjectList.H +++ b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/CloudFunctionObjectList/CloudFunctionObjectList.H @@ -6,6 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2011-2017 OpenFOAM Foundation + Copyright (C) 2020 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -55,6 +56,12 @@ class CloudFunctionObjectList : public PtrList<CloudFunctionObject<CloudType>> { +private: + + //- Convenience typedef for parcel type + typedef typename CloudType::parcelType parcelType; + + protected: // Protected Data @@ -86,7 +93,7 @@ public: //- Destructor - virtual ~CloudFunctionObjectList(); + virtual ~CloudFunctionObjectList() = default; // Member Functions @@ -106,15 +113,21 @@ public: // Evaluation //- Pre-evolve hook - virtual void preEvolve(); + virtual void preEvolve + ( + const typename parcelType::trackingData& td + ); //- Post-evolve hook - virtual void postEvolve(); + virtual void postEvolve + ( + const typename parcelType::trackingData& td + ); //- Post-move hook virtual void postMove ( - typename CloudType::parcelType& p, + parcelType& p, const scalar dt, const point& position0, bool& keepParticle @@ -123,7 +136,7 @@ public: //- Post-patch hook virtual void postPatch ( - const typename CloudType::parcelType& p, + const parcelType& p, const polyPatch& pp, bool& keepParticle ); @@ -131,7 +144,7 @@ public: //- Post-face hook virtual void postFace ( - const typename CloudType::parcelType& p, + const parcelType& p, bool& keepParticle ); }; diff --git a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/FacePostProcessing/FacePostProcessing.C b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/FacePostProcessing/FacePostProcessing.C index ba9b0ffc9b7cf09fdfbcfb3ae9179d47e578ff11..a5e187ca062e509f0aa139cf1f39e4fe17935053 100644 --- a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/FacePostProcessing/FacePostProcessing.C +++ b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/FacePostProcessing/FacePostProcessing.C @@ -347,13 +347,6 @@ Foam::FacePostProcessing<CloudType>::FacePostProcessing {} -// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // - -template<class CloudType> -Foam::FacePostProcessing<CloudType>::~FacePostProcessing() -{} - - // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // template<class CloudType> diff --git a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/FacePostProcessing/FacePostProcessing.H b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/FacePostProcessing/FacePostProcessing.H index 5c8c81f3bd40cd4bdb0c51e1eeb6491e17b49a6c..087b116d4018c613039db075299d8949121ab46e 100644 --- a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/FacePostProcessing/FacePostProcessing.H +++ b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/FacePostProcessing/FacePostProcessing.H @@ -149,19 +149,14 @@ public: //- Destructor - virtual ~FacePostProcessing(); + virtual ~FacePostProcessing() = default; // Member Functions - // Access - //- Should data be reset on write? inline bool resetOnWrite() const; - - // Evaluation - //- Post-face hook virtual void postFace(const parcelType& p, bool& keepParticle); }; diff --git a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleCollector/ParticleCollector.C b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleCollector/ParticleCollector.C index 94b5b2a50646fcdac983048b3c32e21b6fea861b..3764a682ace0a2485c11150facbd5db21c38d572 100644 --- a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleCollector/ParticleCollector.C +++ b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleCollector/ParticleCollector.C @@ -636,13 +636,6 @@ Foam::ParticleCollector<CloudType>::ParticleCollector {} -// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // - -template<class CloudType> -Foam::ParticleCollector<CloudType>::~ParticleCollector() -{} - - // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // template<class CloudType> diff --git a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleCollector/ParticleCollector.H b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleCollector/ParticleCollector.H index afd837efa2b7f1846ca79c827282b020863edc0e..b4bdd2ce3eb9db788dc2afaa44af6f0215ed03f7 100644 --- a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleCollector/ParticleCollector.H +++ b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleCollector/ParticleCollector.H @@ -273,19 +273,14 @@ public: //- Destructor - virtual ~ParticleCollector(); + virtual ~ParticleCollector() = default; // Member Functions - // Access - //- Should data be reset on write? inline bool resetOnWrite() const; - - // Evaluation - //- Post-move hook virtual void postMove ( diff --git a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleErosion/ParticleErosion.C b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleErosion/ParticleErosion.C index 289fc93fde59ac85945e4e8954b20d03b79c15ed..a0aaae320246083ae211c79631e6698d6a8217a6 100644 --- a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleErosion/ParticleErosion.C +++ b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleErosion/ParticleErosion.C @@ -30,6 +30,37 @@ License // * * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * // +template<class CloudType> +void Foam::ParticleErosion<CloudType>::resetQ() +{ + if (QPtr_.valid()) + { + QPtr_->primitiveFieldRef() = 0.0; + } + else + { + const fvMesh& mesh = this->owner().mesh(); + + QPtr_.reset + ( + new volScalarField + ( + IOobject + ( + this->owner().name() + "Q", + mesh.time().timeName(), + mesh, + IOobject::READ_IF_PRESENT, + IOobject::NO_WRITE + ), + mesh, + dimensionedScalar(dimVolume, Zero) + ) + ); + } +} + + template<class CloudType> Foam::label Foam::ParticleErosion<CloudType>::applyToPatch ( @@ -103,8 +134,8 @@ Foam::ParticleErosion<CloudType>::ParticleErosion patchIDs_ = uniqIds.sortedToc(); - // trigger creation of the Q field - preEvolve(); + // Trigger creation of the Q field + resetQ(); } @@ -126,33 +157,12 @@ Foam::ParticleErosion<CloudType>::ParticleErosion // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // template<class CloudType> -void Foam::ParticleErosion<CloudType>::preEvolve() +void Foam::ParticleErosion<CloudType>::preEvolve +( + const typename parcelType::trackingData& td +) { - if (QPtr_.valid()) - { - QPtr_->primitiveFieldRef() = 0.0; - } - else - { - const fvMesh& mesh = this->owner().mesh(); - - QPtr_.reset - ( - new volScalarField - ( - IOobject - ( - this->owner().name() + "Q", - mesh.time().timeName(), - mesh, - IOobject::READ_IF_PRESENT, - IOobject::NO_WRITE - ), - mesh, - dimensionedScalar(dimVolume, Zero) - ) - ); - } + resetQ(); } diff --git a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleErosion/ParticleErosion.H b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleErosion/ParticleErosion.H index a9b54bf79b3de244645211e630a260fc979de127..2a818fa7d91195636e0fbd243eb4dd89a41d9f21 100644 --- a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleErosion/ParticleErosion.H +++ b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleErosion/ParticleErosion.H @@ -6,6 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2011-2017 OpenFOAM Foundation + Copyright (C) 2020 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -85,6 +86,9 @@ protected: // Protected Member Functions + //- Create|read|reset the Q field + void resetQ(); + //- Returns local patchi if patch is in patchIds_ list label applyToPatch(const label globalPatchi) const; @@ -130,7 +134,10 @@ public: // Evaluation //- Pre-evolve hook - virtual void preEvolve(); + virtual void preEvolve + ( + const typename parcelType::trackingData& td + ); //- Post-patch hook virtual void postPatch diff --git a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleTracks/ParticleTracks.C b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleTracks/ParticleTracks.C index 2730359b5e0f8363f5efb463a867fc2d81d605a2..52f75c099a71edc1f577745376ce18e84ff92105 100644 --- a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleTracks/ParticleTracks.C +++ b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleTracks/ParticleTracks.C @@ -6,7 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2011-2017 OpenFOAM Foundation - Copyright (C) 2019 OpenCFD Ltd. + Copyright (C) 2019-2020 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -86,17 +86,13 @@ Foam::ParticleTracks<CloudType>::ParticleTracks {} -// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // - -template<class CloudType> -Foam::ParticleTracks<CloudType>::~ParticleTracks() -{} - - // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // template<class CloudType> -void Foam::ParticleTracks<CloudType>::preEvolve() +void Foam::ParticleTracks<CloudType>::preEvolve +( + const typename parcelType::trackingData& td +) { if (!cloudPtr_.valid()) { diff --git a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleTracks/ParticleTracks.H b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleTracks/ParticleTracks.H index 05b156554d047cd7113591cc0a76c53ca3480cd2..3bd704aeb0a13a632d08583e316d37ef0b1c0dda 100644 --- a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleTracks/ParticleTracks.H +++ b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleTracks/ParticleTracks.H @@ -6,7 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2011-2017 OpenFOAM Foundation - Copyright (C) 2019 OpenCFD Ltd. + Copyright (C) 2019-2020 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -118,7 +118,7 @@ public: //- Destructor - virtual ~ParticleTracks(); + virtual ~ParticleTracks() = default; // Member Functions @@ -144,7 +144,10 @@ public: // Evaluation //- Pre-evolve hook - virtual void preEvolve(); + virtual void preEvolve + ( + const typename parcelType::trackingData& td + ); //- Post-face hook virtual void postFace(const parcelType& p, bool& keepParticle); diff --git a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleTrap/ParticleTrap.C b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleTrap/ParticleTrap.C index e0c5c2e462dd4e44ea32c2a3b2836dbad4b9fe6f..6e4f0b4d2f42beab628e4c1cdb5af51d067bd341 100644 --- a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleTrap/ParticleTrap.C +++ b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleTrap/ParticleTrap.C @@ -64,17 +64,13 @@ Foam::ParticleTrap<CloudType>::ParticleTrap {} -// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // - -template<class CloudType> -Foam::ParticleTrap<CloudType>::~ParticleTrap() -{} - - // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // template<class CloudType> -void Foam::ParticleTrap<CloudType>::preEvolve() +void Foam::ParticleTrap<CloudType>::preEvolve +( + const typename parcelType::trackingData& td +) { if (alphaPtr_ == nullptr) { @@ -97,7 +93,10 @@ void Foam::ParticleTrap<CloudType>::preEvolve() template<class CloudType> -void Foam::ParticleTrap<CloudType>::postEvolve() +void Foam::ParticleTrap<CloudType>::postEvolve +( + const typename parcelType::trackingData& td +) { gradAlphaPtr_.clear(); } diff --git a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleTrap/ParticleTrap.H b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleTrap/ParticleTrap.H index 3a02c963e2c54c7cdfb58959e99314cca3de6e58..500dd9d595df30ae24548d2a2528a528884f843e 100644 --- a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleTrap/ParticleTrap.H +++ b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleTrap/ParticleTrap.H @@ -6,6 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2012-2017 OpenFOAM Foundation + Copyright (C) 2020 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -119,7 +120,7 @@ public: //- Destructor - virtual ~ParticleTrap(); + virtual ~ParticleTrap() = default; // Member Functions @@ -127,15 +128,21 @@ public: // Evaluation //- Pre-evolve hook - virtual void preEvolve(); + virtual void preEvolve + ( + const typename parcelType::trackingData& td + ); //- Post-evolve hook - virtual void postEvolve(); + virtual void postEvolve + ( + const typename parcelType::trackingData& td + ); //- Post-move hook virtual void postMove ( - typename CloudType::parcelType& p, + parcelType& p, const scalar dt, const point& position0, bool& keepParticle diff --git a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/PatchCollisionDensity/PatchCollisionDensity.C b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/PatchCollisionDensity/PatchCollisionDensity.C index 9b7665d7c171fad5e871486bbb96fc99377cec2e..e61404fb013c19481f123d298f4d9f63ad010947 100644 --- a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/PatchCollisionDensity/PatchCollisionDensity.C +++ b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/PatchCollisionDensity/PatchCollisionDensity.C @@ -136,13 +136,6 @@ Foam::PatchCollisionDensity<CloudType>::PatchCollisionDensity {} -// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // - -template<class CloudType> -Foam::PatchCollisionDensity<CloudType>::~PatchCollisionDensity() -{} - - // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // template<class CloudType> diff --git a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/PatchCollisionDensity/PatchCollisionDensity.H b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/PatchCollisionDensity/PatchCollisionDensity.H index 5e97b8811f45f8fe4c22e25aeb8018d9a1a0338d..f9ae499115f68ef70587096153e975bac862302e 100644 --- a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/PatchCollisionDensity/PatchCollisionDensity.H +++ b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/PatchCollisionDensity/PatchCollisionDensity.H @@ -120,20 +120,18 @@ public: //- Destructor - virtual ~PatchCollisionDensity(); + virtual ~PatchCollisionDensity() = default; // Member Functions - // Evaluation - - //- Post-patch hook - virtual void postPatch - ( - const parcelType& p, - const polyPatch& pp, - bool& keepParticle - ); + //- Post-patch hook + virtual void postPatch + ( + const parcelType& p, + const polyPatch& pp, + bool& keepParticle + ); }; diff --git a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/VoidFraction/VoidFraction.C b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/VoidFraction/VoidFraction.C index c5a8c56d3dce551b231f920431f84fa3c85cb08b..67028c47e69c39ac937019ee8385d2c7fc2e1bc0 100644 --- a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/VoidFraction/VoidFraction.C +++ b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/VoidFraction/VoidFraction.C @@ -6,6 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2011-2017 OpenFOAM Foundation + Copyright (C) 2020 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -70,17 +71,13 @@ Foam::VoidFraction<CloudType>::VoidFraction {} -// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // - -template<class CloudType> -Foam::VoidFraction<CloudType>::~VoidFraction() -{} - - // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // template<class CloudType> -void Foam::VoidFraction<CloudType>::preEvolve() +void Foam::VoidFraction<CloudType>::preEvolve +( + const typename parcelType::trackingData& td +) { if (thetaPtr_.valid()) { @@ -111,7 +108,10 @@ void Foam::VoidFraction<CloudType>::preEvolve() template<class CloudType> -void Foam::VoidFraction<CloudType>::postEvolve() +void Foam::VoidFraction<CloudType>::postEvolve +( + const typename parcelType::trackingData& td +) { volScalarField& theta = thetaPtr_(); @@ -119,7 +119,7 @@ void Foam::VoidFraction<CloudType>::postEvolve() theta.primitiveFieldRef() /= mesh.time().deltaTValue()*mesh.V(); - CloudFunctionObject<CloudType>::postEvolve(); + CloudFunctionObject<CloudType>::postEvolve(td); } diff --git a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/VoidFraction/VoidFraction.H b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/VoidFraction/VoidFraction.H index 79590532e9c762161e40d32983258bc42b73306e..b8761066838ed9aa84a717780c3882a6392a37e9 100644 --- a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/VoidFraction/VoidFraction.H +++ b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/VoidFraction/VoidFraction.H @@ -6,6 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2011-2017 OpenFOAM Foundation + Copyright (C) 2020 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -107,7 +108,7 @@ public: //- Destructor - virtual ~VoidFraction(); + virtual ~VoidFraction() = default; // Member Functions @@ -115,10 +116,16 @@ public: // Evaluation //- Pre-evolve hook - virtual void preEvolve(); + virtual void preEvolve + ( + const typename parcelType::trackingData& td + ); //- Post-evolve hook - virtual void postEvolve(); + virtual void postEvolve + ( + const typename parcelType::trackingData& td + ); //- Post-move hook virtual void postMove