From 13fa1b0517a46479f73e7dc90ab4603b3df482fc Mon Sep 17 00:00:00 2001 From: Andrew Heather <> Date: Mon, 23 Mar 2020 21:18:18 +0000 Subject: [PATCH] ENH: Cloud function objects - pass trackingData into pre|post evolve functions Might also consider passing through the remaining hooks, e.g. for postMove, postPatch, postFace etc --- .../Templates/KinematicCloud/KinematicCloud.C | 28 ++++---- .../Templates/KinematicCloud/KinematicCloud.H | 6 +- .../Templates/ThermoCloud/ThermoCloud.C | 8 ++- .../Templates/ThermoCloud/ThermoCloud.H | 3 +- .../CloudFunctionObject/CloudFunctionObject.C | 24 +++---- .../CloudFunctionObject/CloudFunctionObject.H | 21 ++++-- .../CloudFunctionObjectList.C | 28 ++++---- .../CloudFunctionObjectList.H | 25 +++++-- .../FacePostProcessing/FacePostProcessing.C | 7 -- .../FacePostProcessing/FacePostProcessing.H | 7 +- .../ParticleCollector/ParticleCollector.C | 7 -- .../ParticleCollector/ParticleCollector.H | 7 +- .../ParticleErosion/ParticleErosion.C | 66 +++++++++++-------- .../ParticleErosion/ParticleErosion.H | 9 ++- .../ParticleTracks/ParticleTracks.C | 14 ++-- .../ParticleTracks/ParticleTracks.H | 9 ++- .../ParticleTrap/ParticleTrap.C | 17 +++-- .../ParticleTrap/ParticleTrap.H | 15 +++-- .../PatchCollisionDensity.C | 7 -- .../PatchCollisionDensity.H | 18 +++-- .../VoidFraction/VoidFraction.C | 20 +++--- .../VoidFraction/VoidFraction.H | 13 +++- 22 files changed, 194 insertions(+), 165 deletions(-) diff --git a/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.C b/src/lagrangian/intermediate/clouds/Templates/KinematicCloud/KinematicCloud.C index 63bb2eb7c2b..b7d6d49e4a9 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 2d71032dbb3..4534c2a36a2 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 a889876ed18..35a0e140b3d 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 158e80594e7..47dfcb3949a 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 ed89fc43e4e..57bca3973ff 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 746f03947c9..0949a2ffe18 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 de2822ed1c2..17130ec921b 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 4354bf451c1..41e0a28df4b 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 ba9b0ffc9b7..a5e187ca062 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 5c8c81f3bd4..087b116d401 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 94b5b2a5064..3764a682ace 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 afd837efa2b..b4bdd2ce3eb 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 289fc93fde5..a0aaae32024 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 a9b54bf79b3..2a818fa7d91 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 2730359b5e0..52f75c099a7 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 05b156554d0..3bd704aeb0a 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 e0c5c2e462d..6e4f0b4d2f4 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 3a02c963e2c..500dd9d595d 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 9b7665d7c17..e61404fb013 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 5e97b8811f4..f9ae499115f 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 c5a8c56d3dc..67028c47e69 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 79590532e9c..b8761066838 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 -- GitLab