diff --git a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/CloudFunctionObject/CloudFunctionObject.C b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/CloudFunctionObject/CloudFunctionObject.C index 57bca3973f..b3b6f5807e 100644 --- a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/CloudFunctionObject/CloudFunctionObject.C +++ b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/CloudFunctionObject/CloudFunctionObject.C @@ -109,33 +109,39 @@ void Foam::CloudFunctionObject::postEvolve template -void Foam::CloudFunctionObject::postMove +bool Foam::CloudFunctionObject::postMove ( parcelType&, const scalar, const point&, - bool& + const typename parcelType::trackingData& td ) -{} +{ + return true; +} template -void Foam::CloudFunctionObject::postPatch +bool Foam::CloudFunctionObject::postPatch ( const parcelType&, const polyPatch&, - bool& + const typename parcelType::trackingData& td ) -{} +{ + return true; +} template -void Foam::CloudFunctionObject::postFace +bool Foam::CloudFunctionObject::postFace ( const parcelType&, - bool& + const typename parcelType::trackingData& td ) -{} +{ + return true; +} template diff --git a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/CloudFunctionObject/CloudFunctionObject.H b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/CloudFunctionObject/CloudFunctionObject.H index 0949a2ffe1..e2bc8559fb 100644 --- a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/CloudFunctionObject/CloudFunctionObject.H +++ b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/CloudFunctionObject/CloudFunctionObject.H @@ -159,27 +159,27 @@ public: ); //- Post-move hook - virtual void postMove + virtual bool postMove ( parcelType& p, const scalar dt, const point& position0, - bool& keepParticle + const typename parcelType::trackingData& td ); //- Post-patch hook - virtual void postPatch + virtual bool postPatch ( const parcelType& p, const polyPatch& pp, - bool& keepParticle + const typename parcelType::trackingData& td ); //- Post-face hook - virtual void postFace + virtual bool postFace ( const parcelType& p, - bool& keepParticle + const typename parcelType::trackingData& td ); diff --git a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/CloudFunctionObjectList/CloudFunctionObjectList.C b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/CloudFunctionObjectList/CloudFunctionObjectList.C index d8cbb01174..82d879dffa 100644 --- a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/CloudFunctionObjectList/CloudFunctionObjectList.C +++ b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/CloudFunctionObjectList/CloudFunctionObjectList.C @@ -110,9 +110,9 @@ void Foam::CloudFunctionObjectList::preEvolve const typename parcelType::trackingData& td ) { - forAll(*this, i) + for (auto& cfo : *this) { - this->operator[](i).preEvolve(td); + cfo.preEvolve(td); } } @@ -123,70 +123,71 @@ void Foam::CloudFunctionObjectList::postEvolve const typename parcelType::trackingData& td ) { - forAll(*this, i) + for (auto& cfo : *this) { - this->operator[](i).postEvolve(td); + cfo.postEvolve(td); } } template -void Foam::CloudFunctionObjectList::postMove +bool Foam::CloudFunctionObjectList::postMove ( parcelType& p, const scalar dt, const point& position0, - bool& keepParticle + const typename parcelType::trackingData& td ) { - forAll(*this, i) + for (auto& cfo : *this) { - if (!keepParticle) + if (!cfo.postMove(p, dt, position0, td)) { - return; + return false; } - - this->operator[](i).postMove(p, dt, position0, keepParticle); } + + return true; } template -void Foam::CloudFunctionObjectList::postPatch +bool Foam::CloudFunctionObjectList::postPatch ( - const parcelType& p, + parcelType& p, const polyPatch& pp, - bool& keepParticle + const typename parcelType::trackingData& td ) { - forAll(*this, i) + for (auto& cfo : *this) { - if (!keepParticle) + if (!cfo.postPatch(p, pp, td)) { - return; + return false; } - - this->operator[](i).postPatch(p, pp, keepParticle); } + + return true; } template -void Foam::CloudFunctionObjectList::postFace +bool Foam::CloudFunctionObjectList::postFace ( - const parcelType& p, - bool& keepParticle + parcelType& p, + const typename parcelType::trackingData& td ) { - forAll(*this, i) + for (auto& cfo : *this) { - if (!keepParticle) + if (!cfo.postFace(p, td)) { - return; + return false; } - this->operator[](i).postFace(p, keepParticle); } + + return true; } diff --git a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/CloudFunctionObjectList/CloudFunctionObjectList.H b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/CloudFunctionObjectList/CloudFunctionObjectList.H index 41e0a28df4..a30c3571b5 100644 --- a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/CloudFunctionObjectList/CloudFunctionObjectList.H +++ b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/CloudFunctionObjectList/CloudFunctionObjectList.H @@ -125,27 +125,27 @@ public: ); //- Post-move hook - virtual void postMove + virtual bool postMove ( parcelType& p, const scalar dt, const point& position0, - bool& keepParticle + const typename parcelType::trackingData& td ); //- Post-patch hook - virtual void postPatch + virtual bool postPatch ( - const parcelType& p, + parcelType& p, const polyPatch& pp, - bool& keepParticle + const typename parcelType::trackingData& td ); //- Post-face hook - virtual void postFace + virtual bool postFace ( - const parcelType& p, - bool& keepParticle + parcelType& p, + const typename parcelType::trackingData& td ); }; diff --git a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/FaceInteraction/FaceInteraction.C b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/FaceInteraction/FaceInteraction.C index 0e06c6e162..0e7343e66b 100644 --- a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/FaceInteraction/FaceInteraction.C +++ b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/FaceInteraction/FaceInteraction.C @@ -263,12 +263,14 @@ Foam::FaceInteraction::FaceInteraction // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // template -void Foam::FaceInteraction::postFace +bool Foam::FaceInteraction::postFace ( const parcelType& p, - bool& keepParticle + const typename parcelType::trackingData& td ) { + bool keepParticle = true; + const auto& fzm = this->owner().mesh().faceZones(); forAll(faceZoneIDs_, i) @@ -322,8 +324,9 @@ void Foam::FaceInteraction::postFace } } } + + return keepParticle; } // ************************************************************************* // - diff --git a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/FaceInteraction/FaceInteraction.H b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/FaceInteraction/FaceInteraction.H index 77496ae2fc..996bfec899 100644 --- a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/FaceInteraction/FaceInteraction.H +++ b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/FaceInteraction/FaceInteraction.H @@ -182,7 +182,11 @@ public: // Member Functions //- Post-face hook - virtual void postFace(const parcelType& p, bool& keepParticle); + virtual bool postFace + ( + const parcelType& p, + const typename parcelType::trackingData& td + ); }; diff --git a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/FacePostProcessing/FacePostProcessing.C b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/FacePostProcessing/FacePostProcessing.C index 1240702ee8..5d65ddf092 100644 --- a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/FacePostProcessing/FacePostProcessing.C +++ b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/FacePostProcessing/FacePostProcessing.C @@ -350,7 +350,11 @@ Foam::FacePostProcessing::FacePostProcessing // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // template -void Foam::FacePostProcessing::postFace(const parcelType& p, bool&) +bool Foam::FacePostProcessing::postFace +( + const parcelType& p, + const typename parcelType::trackingData& td +) { if ( @@ -380,6 +384,8 @@ void Foam::FacePostProcessing::postFace(const parcelType& p, bool&) } } } + + return true; } diff --git a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/FacePostProcessing/FacePostProcessing.H b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/FacePostProcessing/FacePostProcessing.H index d729e491bf..8ae4afb84b 100644 --- a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/FacePostProcessing/FacePostProcessing.H +++ b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/FacePostProcessing/FacePostProcessing.H @@ -158,7 +158,11 @@ public: inline bool resetOnWrite() const; //- Post-face hook - virtual void postFace(const parcelType& p, bool& keepParticle); + virtual bool postFace + ( + const parcelType& p, + const typename parcelType::trackingData& td + ); }; diff --git a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleCollector/ParticleCollector.C b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleCollector/ParticleCollector.C index 63c165ab79..29c9ce1560 100644 --- a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleCollector/ParticleCollector.C +++ b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleCollector/ParticleCollector.C @@ -629,17 +629,19 @@ Foam::ParticleCollector::ParticleCollector // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // template -void Foam::ParticleCollector::postMove +bool Foam::ParticleCollector::postMove ( parcelType& p, const scalar dt, const point& position0, - bool& keepParticle + const typename parcelType::trackingData& td ) { + bool keepParticle = true; + if ((parcelType_ != -1) && (parcelType_ != p.typeId())) { - return; + return keepParticle; } hitFaceIDs_.clear(); @@ -708,6 +710,8 @@ void Foam::ParticleCollector::postMove keepParticle = false; } } + + return keepParticle; } diff --git a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleCollector/ParticleCollector.H b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleCollector/ParticleCollector.H index a934557a0b..bb8d11f4d8 100644 --- a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleCollector/ParticleCollector.H +++ b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleCollector/ParticleCollector.H @@ -282,12 +282,12 @@ public: inline bool resetOnWrite() const; //- Post-move hook - virtual void postMove + virtual bool postMove ( parcelType& p, const scalar dt, const point& position0, - bool& keepParticle + const typename parcelType::trackingData& td ); }; diff --git a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleErosion/ParticleErosion.C b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleErosion/ParticleErosion.C index 9958881f04..df28248458 100644 --- a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleErosion/ParticleErosion.C +++ b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleErosion/ParticleErosion.C @@ -159,11 +159,11 @@ void Foam::ParticleErosion::preEvolve template -void Foam::ParticleErosion::postPatch +bool Foam::ParticleErosion::postPatch ( const parcelType& p, const polyPatch& pp, - bool& + const typename parcelType::trackingData& td ) { const label patchi = pp.index(); @@ -184,7 +184,7 @@ void Foam::ParticleErosion::postPatch // quick reject if particle travelling away from the patch if ((nw & U) < 0) { - return; + return true; } const scalar magU = mag(U); @@ -206,6 +206,8 @@ void Foam::ParticleErosion::postPatch Q += coeff*(K_*sqr(cos(alpha))/6.0); } } + + return true; } diff --git a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleErosion/ParticleErosion.H b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleErosion/ParticleErosion.H index 2a818fa7d9..282a377f93 100644 --- a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleErosion/ParticleErosion.H +++ b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleErosion/ParticleErosion.H @@ -140,11 +140,11 @@ public: ); //- Post-patch hook - virtual void postPatch + virtual bool postPatch ( const parcelType& p, const polyPatch& pp, - bool& keepParticle + const typename parcelType::trackingData& td ); }; diff --git a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleHistogram/ParticleHistogram.C b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleHistogram/ParticleHistogram.C index e0010d085b..437db3429c 100644 --- a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleHistogram/ParticleHistogram.C +++ b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleHistogram/ParticleHistogram.C @@ -136,16 +136,16 @@ Foam::ParticleHistogram::ParticleHistogram // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // template -void Foam::ParticleHistogram::postPatch +bool Foam::ParticleHistogram::postPatch ( const parcelType& p, const polyPatch& pp, - bool& + const typename parcelType::trackingData& td ) { if (!collector_.isPatch()) { - return; + return true; } const label patchi = pp.index(); @@ -160,19 +160,21 @@ void Foam::ParticleHistogram::postPatch dParticles_[localPatchi].append(p.d()); nParticles_[localPatchi].append(p.nParticle()); } + + return true; } template -void Foam::ParticleHistogram::postFace +bool Foam::ParticleHistogram::postFace ( const parcelType& p, - bool& + const typename parcelType::trackingData& td ) { if (collector_.isPatch()) { - return; + return true; } const labelList& IDs = collector_.IDs(); @@ -200,6 +202,8 @@ void Foam::ParticleHistogram::postFace nParticles_[i].append(p.nParticle()); } } + + return true; } diff --git a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleHistogram/ParticleHistogram.H b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleHistogram/ParticleHistogram.H index 6b2866fd40..c3ba26c50d 100644 --- a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleHistogram/ParticleHistogram.H +++ b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleHistogram/ParticleHistogram.H @@ -200,15 +200,19 @@ public: // Evaluation //- Post-patch hook - virtual void postPatch + virtual bool postPatch ( const parcelType& p, const polyPatch& pp, - bool& keepParticle + const typename parcelType::trackingData& td ); //- Post-face hook - virtual void postFace(const parcelType& p, bool& keepParticle); + virtual bool postFace + ( + const parcelType& p, + const typename parcelType::trackingData& td + ); // I-O diff --git a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticlePostProcessing/ParticlePostProcessing.C b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticlePostProcessing/ParticlePostProcessing.C index 32175a1fee..77e03bf659 100644 --- a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticlePostProcessing/ParticlePostProcessing.C +++ b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticlePostProcessing/ParticlePostProcessing.C @@ -111,16 +111,16 @@ Foam::ParticlePostProcessing::ParticlePostProcessing // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // template -void Foam::ParticlePostProcessing::postPatch +bool Foam::ParticlePostProcessing::postPatch ( const parcelType& p, const polyPatch& pp, - bool& + const typename parcelType::trackingData& td ) { if (!collector_.isPatch()) { - return; + return true; } const label patchi = pp.index(); @@ -143,19 +143,21 @@ void Foam::ParticlePostProcessing::postPatch data_[localPatchi].append(data.str()); } + + return true; } template -void Foam::ParticlePostProcessing::postFace +bool Foam::ParticlePostProcessing::postFace ( const parcelType& p, - bool& + const typename parcelType::trackingData& td ) { if (collector_.isPatch()) { - return; + return true; } const labelList& IDs = collector_.IDs(); @@ -191,6 +193,8 @@ void Foam::ParticlePostProcessing::postFace data_[i].append(data.str()); } } + + return true; } diff --git a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticlePostProcessing/ParticlePostProcessing.H b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticlePostProcessing/ParticlePostProcessing.H index 20150c5210..e01d05e976 100644 --- a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticlePostProcessing/ParticlePostProcessing.H +++ b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticlePostProcessing/ParticlePostProcessing.H @@ -191,15 +191,19 @@ public: // Evaluation //- Post-patch hook - virtual void postPatch + virtual bool postPatch ( const parcelType& p, const polyPatch& pp, - bool& keepParticle + const typename parcelType::trackingData& td ); //- Post-face hook - virtual void postFace(const parcelType& p, bool& keepParticle); + virtual bool postFace + ( + const parcelType& p, + const typename parcelType::trackingData& td + ); // I-O diff --git a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleTracks/ParticleTracks.C b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleTracks/ParticleTracks.C index 2d34c57eb2..36e1713706 100644 --- a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleTracks/ParticleTracks.C +++ b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleTracks/ParticleTracks.C @@ -105,7 +105,11 @@ void Foam::ParticleTracks::preEvolve template -void Foam::ParticleTracks::postFace(const parcelType& p, bool&) +bool Foam::ParticleTracks::postFace +( + const parcelType& p, + const typename parcelType::trackingData& td +) { if ( @@ -132,6 +136,8 @@ void Foam::ParticleTracks::postFace(const parcelType& p, bool&) ); } } + + return true; } diff --git a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleTracks/ParticleTracks.H b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleTracks/ParticleTracks.H index 3bd704aeb0..2742b27b64 100644 --- a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleTracks/ParticleTracks.H +++ b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleTracks/ParticleTracks.H @@ -150,7 +150,11 @@ public: ); //- Post-face hook - virtual void postFace(const parcelType& p, bool& keepParticle); + virtual bool postFace + ( + const parcelType& p, + const typename parcelType::trackingData& td + ); }; diff --git a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleTrap/ParticleTrap.C b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleTrap/ParticleTrap.C index e2f8938488..c60d8680bf 100644 --- a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleTrap/ParticleTrap.C +++ b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleTrap/ParticleTrap.C @@ -103,12 +103,12 @@ void Foam::ParticleTrap::postEvolve template -void Foam::ParticleTrap::postMove +bool Foam::ParticleTrap::postMove ( parcelType& p, const scalar, const point&, - bool& + const typename parcelType::trackingData& td ) { if (alphaPtr_->primitiveField()[p.cell()] < threshold_) @@ -122,6 +122,8 @@ void Foam::ParticleTrap::postMove p.U() -= 2*nHat*nHatU; } } + + return true; } diff --git a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleTrap/ParticleTrap.H b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleTrap/ParticleTrap.H index 500dd9d595..e4581990ab 100644 --- a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleTrap/ParticleTrap.H +++ b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleTrap/ParticleTrap.H @@ -140,12 +140,12 @@ public: ); //- Post-move hook - virtual void postMove + virtual bool postMove ( parcelType& p, const scalar dt, const point& position0, - bool& keepParticle + const typename parcelType::trackingData& td ); }; diff --git a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleZoneInfo/ParticleZoneInfo.C b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleZoneInfo/ParticleZoneInfo.C index e78d65a5ee..522e94c35b 100644 --- a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleZoneInfo/ParticleZoneInfo.C +++ b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleZoneInfo/ParticleZoneInfo.C @@ -323,12 +323,12 @@ void Foam::ParticleZoneInfo::postEvolve template -void Foam::ParticleZoneInfo::postMove +bool Foam::ParticleZoneInfo::postMove ( parcelType& p, const scalar dt, const point&, - bool& + const typename parcelType::trackingData& td ) { if (inZone(p.cell())) @@ -346,6 +346,8 @@ void Foam::ParticleZoneInfo::postMove movedParticles_.append(newData); } + + return true; } diff --git a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleZoneInfo/ParticleZoneInfo.H b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleZoneInfo/ParticleZoneInfo.H index 9f51b28c63..6032644ed6 100644 --- a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleZoneInfo/ParticleZoneInfo.H +++ b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/ParticleZoneInfo/ParticleZoneInfo.H @@ -301,12 +301,12 @@ public: ); //- Post-move hook - virtual void postMove + virtual bool postMove ( parcelType& p, const scalar dt, const point& position0, - bool& keepParticle + const typename parcelType::trackingData& td ); //- Write diff --git a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/PatchCollisionDensity/PatchCollisionDensity.C b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/PatchCollisionDensity/PatchCollisionDensity.C index 8cbf9c4693..e98f9adc3f 100644 --- a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/PatchCollisionDensity/PatchCollisionDensity.C +++ b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/PatchCollisionDensity/PatchCollisionDensity.C @@ -139,11 +139,11 @@ Foam::PatchCollisionDensity::PatchCollisionDensity // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // template -void Foam::PatchCollisionDensity::postPatch +bool Foam::PatchCollisionDensity::postPatch ( const parcelType& p, const polyPatch& pp, - bool& + const typename parcelType::trackingData& td ) { const label patchi = pp.index(); @@ -158,6 +158,8 @@ void Foam::PatchCollisionDensity::postPatch collisionDensity_[patchi][patchFacei] += 1/this->owner().mesh().magSf().boundaryField()[patchi][patchFacei]; } + + return true; } diff --git a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/PatchCollisionDensity/PatchCollisionDensity.H b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/PatchCollisionDensity/PatchCollisionDensity.H index f9ae499115..2359310a97 100644 --- a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/PatchCollisionDensity/PatchCollisionDensity.H +++ b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/PatchCollisionDensity/PatchCollisionDensity.H @@ -126,11 +126,11 @@ public: // Member Functions //- Post-patch hook - virtual void postPatch + virtual bool postPatch ( const parcelType& p, const polyPatch& pp, - bool& keepParticle + const typename parcelType::trackingData& td ); }; diff --git a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/PatchInteractionFields/PatchInteractionFields.C b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/PatchInteractionFields/PatchInteractionFields.C index 47ef0e92ac..83ed949ad7 100644 --- a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/PatchInteractionFields/PatchInteractionFields.C +++ b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/PatchInteractionFields/PatchInteractionFields.C @@ -170,11 +170,11 @@ void Foam::PatchInteractionFields::preEvolve template -void Foam::PatchInteractionFields::postPatch +bool Foam::PatchInteractionFields::postPatch ( const parcelType& p, const polyPatch& pp, - bool& + const typename parcelType::trackingData& td ) { const label patchi = pp.index(); @@ -182,6 +182,8 @@ void Foam::PatchInteractionFields::postPatch massPtr_->boundaryFieldRef()[patchi][facei] += p.nParticle()*p.mass(); countPtr_->boundaryFieldRef()[patchi][facei] += 1; + + return true; } diff --git a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/PatchInteractionFields/PatchInteractionFields.H b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/PatchInteractionFields/PatchInteractionFields.H index 9b84a04371..fa9405c6ca 100644 --- a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/PatchInteractionFields/PatchInteractionFields.H +++ b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/PatchInteractionFields/PatchInteractionFields.H @@ -173,11 +173,11 @@ public: ); //- Post-patch hook - virtual void postPatch + virtual bool postPatch ( const parcelType& p, const polyPatch& pp, - bool& keepParticle + const typename parcelType::trackingData& td ); }; diff --git a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/RemoveParcels/RemoveParcels.C b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/RemoveParcels/RemoveParcels.C index 3dad8bb247..77eb5705ee 100644 --- a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/RemoveParcels/RemoveParcels.C +++ b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/RemoveParcels/RemoveParcels.C @@ -248,16 +248,18 @@ Foam::RemoveParcels::RemoveParcels // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // template -void Foam::RemoveParcels::postFace +bool Foam::RemoveParcels::postFace ( const parcelType& p, - bool& keepParticle + const typename parcelType::trackingData& td ) { + bool keepParticle = true; + if ((typeId_ >= 0) && (p.typeId() != typeId_)) { // Not processing this particle type - return; + return keepParticle; } if @@ -280,6 +282,8 @@ void Foam::RemoveParcels::postFace } } } + + return keepParticle; } diff --git a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/RemoveParcels/RemoveParcels.H b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/RemoveParcels/RemoveParcels.H index 31d1469033..8f04447f4e 100644 --- a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/RemoveParcels/RemoveParcels.H +++ b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/RemoveParcels/RemoveParcels.H @@ -163,7 +163,11 @@ public: ); //- Post-face hook - virtual void postFace(const parcelType& p, bool& keepParticle); + virtual bool postFace + ( + const parcelType& p, + const typename parcelType::trackingData& td + ); }; diff --git a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/VoidFraction/VoidFraction.C b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/VoidFraction/VoidFraction.C index 0c24a4c8d2..dd38b8b975 100644 --- a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/VoidFraction/VoidFraction.C +++ b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/VoidFraction/VoidFraction.C @@ -124,17 +124,19 @@ void Foam::VoidFraction::postEvolve template -void Foam::VoidFraction::postMove +bool Foam::VoidFraction::postMove ( parcelType& p, const scalar dt, const point&, - bool& + const typename parcelType::trackingData& td ) { volScalarField& theta = thetaPtr_(); theta[p.cell()] += dt*p.nParticle()*p.volume(); + + return true; } diff --git a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/VoidFraction/VoidFraction.H b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/VoidFraction/VoidFraction.H index b876106683..1cb97dc3e6 100644 --- a/src/lagrangian/intermediate/submodels/CloudFunctionObjects/VoidFraction/VoidFraction.H +++ b/src/lagrangian/intermediate/submodels/CloudFunctionObjects/VoidFraction/VoidFraction.H @@ -128,12 +128,12 @@ public: ); //- Post-move hook - virtual void postMove + virtual bool postMove ( parcelType& p, const scalar dt, const point& position0, - bool& keepParticle + const typename parcelType::trackingData& td ); };