mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
ENH: lagrangian cloud function objects - added track data to hooks
This commit is contained in:
committed by
Andrew Heather
parent
c4a8fbcf49
commit
8fb148bb0e
@ -109,33 +109,39 @@ void Foam::CloudFunctionObject<CloudType>::postEvolve
|
|||||||
|
|
||||||
|
|
||||||
template<class CloudType>
|
template<class CloudType>
|
||||||
void Foam::CloudFunctionObject<CloudType>::postMove
|
bool Foam::CloudFunctionObject<CloudType>::postMove
|
||||||
(
|
(
|
||||||
parcelType&,
|
parcelType&,
|
||||||
const scalar,
|
const scalar,
|
||||||
const point&,
|
const point&,
|
||||||
bool&
|
const typename parcelType::trackingData& td
|
||||||
)
|
)
|
||||||
{}
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
template<class CloudType>
|
template<class CloudType>
|
||||||
void Foam::CloudFunctionObject<CloudType>::postPatch
|
bool Foam::CloudFunctionObject<CloudType>::postPatch
|
||||||
(
|
(
|
||||||
const parcelType&,
|
const parcelType&,
|
||||||
const polyPatch&,
|
const polyPatch&,
|
||||||
bool&
|
const typename parcelType::trackingData& td
|
||||||
)
|
)
|
||||||
{}
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
template<class CloudType>
|
template<class CloudType>
|
||||||
void Foam::CloudFunctionObject<CloudType>::postFace
|
bool Foam::CloudFunctionObject<CloudType>::postFace
|
||||||
(
|
(
|
||||||
const parcelType&,
|
const parcelType&,
|
||||||
bool&
|
const typename parcelType::trackingData& td
|
||||||
)
|
)
|
||||||
{}
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
template<class CloudType>
|
template<class CloudType>
|
||||||
|
|||||||
@ -159,27 +159,27 @@ public:
|
|||||||
);
|
);
|
||||||
|
|
||||||
//- Post-move hook
|
//- Post-move hook
|
||||||
virtual void postMove
|
virtual bool postMove
|
||||||
(
|
(
|
||||||
parcelType& p,
|
parcelType& p,
|
||||||
const scalar dt,
|
const scalar dt,
|
||||||
const point& position0,
|
const point& position0,
|
||||||
bool& keepParticle
|
const typename parcelType::trackingData& td
|
||||||
);
|
);
|
||||||
|
|
||||||
//- Post-patch hook
|
//- Post-patch hook
|
||||||
virtual void postPatch
|
virtual bool postPatch
|
||||||
(
|
(
|
||||||
const parcelType& p,
|
const parcelType& p,
|
||||||
const polyPatch& pp,
|
const polyPatch& pp,
|
||||||
bool& keepParticle
|
const typename parcelType::trackingData& td
|
||||||
);
|
);
|
||||||
|
|
||||||
//- Post-face hook
|
//- Post-face hook
|
||||||
virtual void postFace
|
virtual bool postFace
|
||||||
(
|
(
|
||||||
const parcelType& p,
|
const parcelType& p,
|
||||||
bool& keepParticle
|
const typename parcelType::trackingData& td
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -110,9 +110,9 @@ void Foam::CloudFunctionObjectList<CloudType>::preEvolve
|
|||||||
const typename parcelType::trackingData& td
|
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<CloudType>::postEvolve
|
|||||||
const typename parcelType::trackingData& td
|
const typename parcelType::trackingData& td
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
forAll(*this, i)
|
for (auto& cfo : *this)
|
||||||
{
|
{
|
||||||
this->operator[](i).postEvolve(td);
|
cfo.postEvolve(td);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
template<class CloudType>
|
template<class CloudType>
|
||||||
void Foam::CloudFunctionObjectList<CloudType>::postMove
|
bool Foam::CloudFunctionObjectList<CloudType>::postMove
|
||||||
(
|
(
|
||||||
parcelType& p,
|
parcelType& p,
|
||||||
const scalar dt,
|
const scalar dt,
|
||||||
const point& position0,
|
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<class CloudType>
|
template<class CloudType>
|
||||||
void Foam::CloudFunctionObjectList<CloudType>::postPatch
|
bool Foam::CloudFunctionObjectList<CloudType>::postPatch
|
||||||
(
|
(
|
||||||
const parcelType& p,
|
parcelType& p,
|
||||||
const polyPatch& pp,
|
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<class CloudType>
|
template<class CloudType>
|
||||||
void Foam::CloudFunctionObjectList<CloudType>::postFace
|
bool Foam::CloudFunctionObjectList<CloudType>::postFace
|
||||||
(
|
(
|
||||||
const parcelType& p,
|
parcelType& p,
|
||||||
bool& keepParticle
|
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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -125,27 +125,27 @@ public:
|
|||||||
);
|
);
|
||||||
|
|
||||||
//- Post-move hook
|
//- Post-move hook
|
||||||
virtual void postMove
|
virtual bool postMove
|
||||||
(
|
(
|
||||||
parcelType& p,
|
parcelType& p,
|
||||||
const scalar dt,
|
const scalar dt,
|
||||||
const point& position0,
|
const point& position0,
|
||||||
bool& keepParticle
|
const typename parcelType::trackingData& td
|
||||||
);
|
);
|
||||||
|
|
||||||
//- Post-patch hook
|
//- Post-patch hook
|
||||||
virtual void postPatch
|
virtual bool postPatch
|
||||||
(
|
(
|
||||||
const parcelType& p,
|
parcelType& p,
|
||||||
const polyPatch& pp,
|
const polyPatch& pp,
|
||||||
bool& keepParticle
|
const typename parcelType::trackingData& td
|
||||||
);
|
);
|
||||||
|
|
||||||
//- Post-face hook
|
//- Post-face hook
|
||||||
virtual void postFace
|
virtual bool postFace
|
||||||
(
|
(
|
||||||
const parcelType& p,
|
parcelType& p,
|
||||||
bool& keepParticle
|
const typename parcelType::trackingData& td
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@ -263,12 +263,14 @@ Foam::FaceInteraction<CloudType>::FaceInteraction
|
|||||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||||
|
|
||||||
template<class CloudType>
|
template<class CloudType>
|
||||||
void Foam::FaceInteraction<CloudType>::postFace
|
bool Foam::FaceInteraction<CloudType>::postFace
|
||||||
(
|
(
|
||||||
const parcelType& p,
|
const parcelType& p,
|
||||||
bool& keepParticle
|
const typename parcelType::trackingData& td
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
|
bool keepParticle = true;
|
||||||
|
|
||||||
const auto& fzm = this->owner().mesh().faceZones();
|
const auto& fzm = this->owner().mesh().faceZones();
|
||||||
|
|
||||||
forAll(faceZoneIDs_, i)
|
forAll(faceZoneIDs_, i)
|
||||||
@ -322,8 +324,9 @@ void Foam::FaceInteraction<CloudType>::postFace
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return keepParticle;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// ************************************************************************* //
|
// ************************************************************************* //
|
||||||
|
|
||||||
|
|||||||
@ -182,7 +182,11 @@ public:
|
|||||||
// Member Functions
|
// Member Functions
|
||||||
|
|
||||||
//- Post-face hook
|
//- Post-face hook
|
||||||
virtual void postFace(const parcelType& p, bool& keepParticle);
|
virtual bool postFace
|
||||||
|
(
|
||||||
|
const parcelType& p,
|
||||||
|
const typename parcelType::trackingData& td
|
||||||
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -350,7 +350,11 @@ Foam::FacePostProcessing<CloudType>::FacePostProcessing
|
|||||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||||
|
|
||||||
template<class CloudType>
|
template<class CloudType>
|
||||||
void Foam::FacePostProcessing<CloudType>::postFace(const parcelType& p, bool&)
|
bool Foam::FacePostProcessing<CloudType>::postFace
|
||||||
|
(
|
||||||
|
const parcelType& p,
|
||||||
|
const typename parcelType::trackingData& td
|
||||||
|
)
|
||||||
{
|
{
|
||||||
if
|
if
|
||||||
(
|
(
|
||||||
@ -380,6 +384,8 @@ void Foam::FacePostProcessing<CloudType>::postFace(const parcelType& p, bool&)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -158,7 +158,11 @@ public:
|
|||||||
inline bool resetOnWrite() const;
|
inline bool resetOnWrite() const;
|
||||||
|
|
||||||
//- Post-face hook
|
//- Post-face hook
|
||||||
virtual void postFace(const parcelType& p, bool& keepParticle);
|
virtual bool postFace
|
||||||
|
(
|
||||||
|
const parcelType& p,
|
||||||
|
const typename parcelType::trackingData& td
|
||||||
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -629,17 +629,19 @@ Foam::ParticleCollector<CloudType>::ParticleCollector
|
|||||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||||
|
|
||||||
template<class CloudType>
|
template<class CloudType>
|
||||||
void Foam::ParticleCollector<CloudType>::postMove
|
bool Foam::ParticleCollector<CloudType>::postMove
|
||||||
(
|
(
|
||||||
parcelType& p,
|
parcelType& p,
|
||||||
const scalar dt,
|
const scalar dt,
|
||||||
const point& position0,
|
const point& position0,
|
||||||
bool& keepParticle
|
const typename parcelType::trackingData& td
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
|
bool keepParticle = true;
|
||||||
|
|
||||||
if ((parcelType_ != -1) && (parcelType_ != p.typeId()))
|
if ((parcelType_ != -1) && (parcelType_ != p.typeId()))
|
||||||
{
|
{
|
||||||
return;
|
return keepParticle;
|
||||||
}
|
}
|
||||||
|
|
||||||
hitFaceIDs_.clear();
|
hitFaceIDs_.clear();
|
||||||
@ -708,6 +710,8 @@ void Foam::ParticleCollector<CloudType>::postMove
|
|||||||
keepParticle = false;
|
keepParticle = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return keepParticle;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -282,12 +282,12 @@ public:
|
|||||||
inline bool resetOnWrite() const;
|
inline bool resetOnWrite() const;
|
||||||
|
|
||||||
//- Post-move hook
|
//- Post-move hook
|
||||||
virtual void postMove
|
virtual bool postMove
|
||||||
(
|
(
|
||||||
parcelType& p,
|
parcelType& p,
|
||||||
const scalar dt,
|
const scalar dt,
|
||||||
const point& position0,
|
const point& position0,
|
||||||
bool& keepParticle
|
const typename parcelType::trackingData& td
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@ -159,11 +159,11 @@ void Foam::ParticleErosion<CloudType>::preEvolve
|
|||||||
|
|
||||||
|
|
||||||
template<class CloudType>
|
template<class CloudType>
|
||||||
void Foam::ParticleErosion<CloudType>::postPatch
|
bool Foam::ParticleErosion<CloudType>::postPatch
|
||||||
(
|
(
|
||||||
const parcelType& p,
|
const parcelType& p,
|
||||||
const polyPatch& pp,
|
const polyPatch& pp,
|
||||||
bool&
|
const typename parcelType::trackingData& td
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
const label patchi = pp.index();
|
const label patchi = pp.index();
|
||||||
@ -184,7 +184,7 @@ void Foam::ParticleErosion<CloudType>::postPatch
|
|||||||
// quick reject if particle travelling away from the patch
|
// quick reject if particle travelling away from the patch
|
||||||
if ((nw & U) < 0)
|
if ((nw & U) < 0)
|
||||||
{
|
{
|
||||||
return;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
const scalar magU = mag(U);
|
const scalar magU = mag(U);
|
||||||
@ -206,6 +206,8 @@ void Foam::ParticleErosion<CloudType>::postPatch
|
|||||||
Q += coeff*(K_*sqr(cos(alpha))/6.0);
|
Q += coeff*(K_*sqr(cos(alpha))/6.0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -140,11 +140,11 @@ public:
|
|||||||
);
|
);
|
||||||
|
|
||||||
//- Post-patch hook
|
//- Post-patch hook
|
||||||
virtual void postPatch
|
virtual bool postPatch
|
||||||
(
|
(
|
||||||
const parcelType& p,
|
const parcelType& p,
|
||||||
const polyPatch& pp,
|
const polyPatch& pp,
|
||||||
bool& keepParticle
|
const typename parcelType::trackingData& td
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@ -136,16 +136,16 @@ Foam::ParticleHistogram<CloudType>::ParticleHistogram
|
|||||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||||
|
|
||||||
template<class CloudType>
|
template<class CloudType>
|
||||||
void Foam::ParticleHistogram<CloudType>::postPatch
|
bool Foam::ParticleHistogram<CloudType>::postPatch
|
||||||
(
|
(
|
||||||
const parcelType& p,
|
const parcelType& p,
|
||||||
const polyPatch& pp,
|
const polyPatch& pp,
|
||||||
bool&
|
const typename parcelType::trackingData& td
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
if (!collector_.isPatch())
|
if (!collector_.isPatch())
|
||||||
{
|
{
|
||||||
return;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
const label patchi = pp.index();
|
const label patchi = pp.index();
|
||||||
@ -160,19 +160,21 @@ void Foam::ParticleHistogram<CloudType>::postPatch
|
|||||||
dParticles_[localPatchi].append(p.d());
|
dParticles_[localPatchi].append(p.d());
|
||||||
nParticles_[localPatchi].append(p.nParticle());
|
nParticles_[localPatchi].append(p.nParticle());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
template<class CloudType>
|
template<class CloudType>
|
||||||
void Foam::ParticleHistogram<CloudType>::postFace
|
bool Foam::ParticleHistogram<CloudType>::postFace
|
||||||
(
|
(
|
||||||
const parcelType& p,
|
const parcelType& p,
|
||||||
bool&
|
const typename parcelType::trackingData& td
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
if (collector_.isPatch())
|
if (collector_.isPatch())
|
||||||
{
|
{
|
||||||
return;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
const labelList& IDs = collector_.IDs();
|
const labelList& IDs = collector_.IDs();
|
||||||
@ -200,6 +202,8 @@ void Foam::ParticleHistogram<CloudType>::postFace
|
|||||||
nParticles_[i].append(p.nParticle());
|
nParticles_[i].append(p.nParticle());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -200,15 +200,19 @@ public:
|
|||||||
// Evaluation
|
// Evaluation
|
||||||
|
|
||||||
//- Post-patch hook
|
//- Post-patch hook
|
||||||
virtual void postPatch
|
virtual bool postPatch
|
||||||
(
|
(
|
||||||
const parcelType& p,
|
const parcelType& p,
|
||||||
const polyPatch& pp,
|
const polyPatch& pp,
|
||||||
bool& keepParticle
|
const typename parcelType::trackingData& td
|
||||||
);
|
);
|
||||||
|
|
||||||
//- Post-face hook
|
//- Post-face hook
|
||||||
virtual void postFace(const parcelType& p, bool& keepParticle);
|
virtual bool postFace
|
||||||
|
(
|
||||||
|
const parcelType& p,
|
||||||
|
const typename parcelType::trackingData& td
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
// I-O
|
// I-O
|
||||||
|
|||||||
@ -111,16 +111,16 @@ Foam::ParticlePostProcessing<CloudType>::ParticlePostProcessing
|
|||||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||||
|
|
||||||
template<class CloudType>
|
template<class CloudType>
|
||||||
void Foam::ParticlePostProcessing<CloudType>::postPatch
|
bool Foam::ParticlePostProcessing<CloudType>::postPatch
|
||||||
(
|
(
|
||||||
const parcelType& p,
|
const parcelType& p,
|
||||||
const polyPatch& pp,
|
const polyPatch& pp,
|
||||||
bool&
|
const typename parcelType::trackingData& td
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
if (!collector_.isPatch())
|
if (!collector_.isPatch())
|
||||||
{
|
{
|
||||||
return;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
const label patchi = pp.index();
|
const label patchi = pp.index();
|
||||||
@ -143,19 +143,21 @@ void Foam::ParticlePostProcessing<CloudType>::postPatch
|
|||||||
|
|
||||||
data_[localPatchi].append(data.str());
|
data_[localPatchi].append(data.str());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
template<class CloudType>
|
template<class CloudType>
|
||||||
void Foam::ParticlePostProcessing<CloudType>::postFace
|
bool Foam::ParticlePostProcessing<CloudType>::postFace
|
||||||
(
|
(
|
||||||
const parcelType& p,
|
const parcelType& p,
|
||||||
bool&
|
const typename parcelType::trackingData& td
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
if (collector_.isPatch())
|
if (collector_.isPatch())
|
||||||
{
|
{
|
||||||
return;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
const labelList& IDs = collector_.IDs();
|
const labelList& IDs = collector_.IDs();
|
||||||
@ -191,6 +193,8 @@ void Foam::ParticlePostProcessing<CloudType>::postFace
|
|||||||
data_[i].append(data.str());
|
data_[i].append(data.str());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -191,15 +191,19 @@ public:
|
|||||||
// Evaluation
|
// Evaluation
|
||||||
|
|
||||||
//- Post-patch hook
|
//- Post-patch hook
|
||||||
virtual void postPatch
|
virtual bool postPatch
|
||||||
(
|
(
|
||||||
const parcelType& p,
|
const parcelType& p,
|
||||||
const polyPatch& pp,
|
const polyPatch& pp,
|
||||||
bool& keepParticle
|
const typename parcelType::trackingData& td
|
||||||
);
|
);
|
||||||
|
|
||||||
//- Post-face hook
|
//- Post-face hook
|
||||||
virtual void postFace(const parcelType& p, bool& keepParticle);
|
virtual bool postFace
|
||||||
|
(
|
||||||
|
const parcelType& p,
|
||||||
|
const typename parcelType::trackingData& td
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
// I-O
|
// I-O
|
||||||
|
|||||||
@ -105,7 +105,11 @@ void Foam::ParticleTracks<CloudType>::preEvolve
|
|||||||
|
|
||||||
|
|
||||||
template<class CloudType>
|
template<class CloudType>
|
||||||
void Foam::ParticleTracks<CloudType>::postFace(const parcelType& p, bool&)
|
bool Foam::ParticleTracks<CloudType>::postFace
|
||||||
|
(
|
||||||
|
const parcelType& p,
|
||||||
|
const typename parcelType::trackingData& td
|
||||||
|
)
|
||||||
{
|
{
|
||||||
if
|
if
|
||||||
(
|
(
|
||||||
@ -132,6 +136,8 @@ void Foam::ParticleTracks<CloudType>::postFace(const parcelType& p, bool&)
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -150,7 +150,11 @@ public:
|
|||||||
);
|
);
|
||||||
|
|
||||||
//- Post-face hook
|
//- Post-face hook
|
||||||
virtual void postFace(const parcelType& p, bool& keepParticle);
|
virtual bool postFace
|
||||||
|
(
|
||||||
|
const parcelType& p,
|
||||||
|
const typename parcelType::trackingData& td
|
||||||
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -103,12 +103,12 @@ void Foam::ParticleTrap<CloudType>::postEvolve
|
|||||||
|
|
||||||
|
|
||||||
template<class CloudType>
|
template<class CloudType>
|
||||||
void Foam::ParticleTrap<CloudType>::postMove
|
bool Foam::ParticleTrap<CloudType>::postMove
|
||||||
(
|
(
|
||||||
parcelType& p,
|
parcelType& p,
|
||||||
const scalar,
|
const scalar,
|
||||||
const point&,
|
const point&,
|
||||||
bool&
|
const typename parcelType::trackingData& td
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
if (alphaPtr_->primitiveField()[p.cell()] < threshold_)
|
if (alphaPtr_->primitiveField()[p.cell()] < threshold_)
|
||||||
@ -122,6 +122,8 @@ void Foam::ParticleTrap<CloudType>::postMove
|
|||||||
p.U() -= 2*nHat*nHatU;
|
p.U() -= 2*nHat*nHatU;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -140,12 +140,12 @@ public:
|
|||||||
);
|
);
|
||||||
|
|
||||||
//- Post-move hook
|
//- Post-move hook
|
||||||
virtual void postMove
|
virtual bool postMove
|
||||||
(
|
(
|
||||||
parcelType& p,
|
parcelType& p,
|
||||||
const scalar dt,
|
const scalar dt,
|
||||||
const point& position0,
|
const point& position0,
|
||||||
bool& keepParticle
|
const typename parcelType::trackingData& td
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@ -323,12 +323,12 @@ void Foam::ParticleZoneInfo<CloudType>::postEvolve
|
|||||||
|
|
||||||
|
|
||||||
template<class CloudType>
|
template<class CloudType>
|
||||||
void Foam::ParticleZoneInfo<CloudType>::postMove
|
bool Foam::ParticleZoneInfo<CloudType>::postMove
|
||||||
(
|
(
|
||||||
parcelType& p,
|
parcelType& p,
|
||||||
const scalar dt,
|
const scalar dt,
|
||||||
const point&,
|
const point&,
|
||||||
bool&
|
const typename parcelType::trackingData& td
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
if (inZone(p.cell()))
|
if (inZone(p.cell()))
|
||||||
@ -346,6 +346,8 @@ void Foam::ParticleZoneInfo<CloudType>::postMove
|
|||||||
|
|
||||||
movedParticles_.append(newData);
|
movedParticles_.append(newData);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -301,12 +301,12 @@ public:
|
|||||||
);
|
);
|
||||||
|
|
||||||
//- Post-move hook
|
//- Post-move hook
|
||||||
virtual void postMove
|
virtual bool postMove
|
||||||
(
|
(
|
||||||
parcelType& p,
|
parcelType& p,
|
||||||
const scalar dt,
|
const scalar dt,
|
||||||
const point& position0,
|
const point& position0,
|
||||||
bool& keepParticle
|
const typename parcelType::trackingData& td
|
||||||
);
|
);
|
||||||
|
|
||||||
//- Write
|
//- Write
|
||||||
|
|||||||
@ -139,11 +139,11 @@ Foam::PatchCollisionDensity<CloudType>::PatchCollisionDensity
|
|||||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||||
|
|
||||||
template<class CloudType>
|
template<class CloudType>
|
||||||
void Foam::PatchCollisionDensity<CloudType>::postPatch
|
bool Foam::PatchCollisionDensity<CloudType>::postPatch
|
||||||
(
|
(
|
||||||
const parcelType& p,
|
const parcelType& p,
|
||||||
const polyPatch& pp,
|
const polyPatch& pp,
|
||||||
bool&
|
const typename parcelType::trackingData& td
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
const label patchi = pp.index();
|
const label patchi = pp.index();
|
||||||
@ -158,6 +158,8 @@ void Foam::PatchCollisionDensity<CloudType>::postPatch
|
|||||||
collisionDensity_[patchi][patchFacei] +=
|
collisionDensity_[patchi][patchFacei] +=
|
||||||
1/this->owner().mesh().magSf().boundaryField()[patchi][patchFacei];
|
1/this->owner().mesh().magSf().boundaryField()[patchi][patchFacei];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -126,11 +126,11 @@ public:
|
|||||||
// Member Functions
|
// Member Functions
|
||||||
|
|
||||||
//- Post-patch hook
|
//- Post-patch hook
|
||||||
virtual void postPatch
|
virtual bool postPatch
|
||||||
(
|
(
|
||||||
const parcelType& p,
|
const parcelType& p,
|
||||||
const polyPatch& pp,
|
const polyPatch& pp,
|
||||||
bool& keepParticle
|
const typename parcelType::trackingData& td
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@ -170,11 +170,11 @@ void Foam::PatchInteractionFields<CloudType>::preEvolve
|
|||||||
|
|
||||||
|
|
||||||
template<class CloudType>
|
template<class CloudType>
|
||||||
void Foam::PatchInteractionFields<CloudType>::postPatch
|
bool Foam::PatchInteractionFields<CloudType>::postPatch
|
||||||
(
|
(
|
||||||
const parcelType& p,
|
const parcelType& p,
|
||||||
const polyPatch& pp,
|
const polyPatch& pp,
|
||||||
bool&
|
const typename parcelType::trackingData& td
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
const label patchi = pp.index();
|
const label patchi = pp.index();
|
||||||
@ -182,6 +182,8 @@ void Foam::PatchInteractionFields<CloudType>::postPatch
|
|||||||
|
|
||||||
massPtr_->boundaryFieldRef()[patchi][facei] += p.nParticle()*p.mass();
|
massPtr_->boundaryFieldRef()[patchi][facei] += p.nParticle()*p.mass();
|
||||||
countPtr_->boundaryFieldRef()[patchi][facei] += 1;
|
countPtr_->boundaryFieldRef()[patchi][facei] += 1;
|
||||||
|
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -173,11 +173,11 @@ public:
|
|||||||
);
|
);
|
||||||
|
|
||||||
//- Post-patch hook
|
//- Post-patch hook
|
||||||
virtual void postPatch
|
virtual bool postPatch
|
||||||
(
|
(
|
||||||
const parcelType& p,
|
const parcelType& p,
|
||||||
const polyPatch& pp,
|
const polyPatch& pp,
|
||||||
bool& keepParticle
|
const typename parcelType::trackingData& td
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@ -248,16 +248,18 @@ Foam::RemoveParcels<CloudType>::RemoveParcels
|
|||||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||||
|
|
||||||
template<class CloudType>
|
template<class CloudType>
|
||||||
void Foam::RemoveParcels<CloudType>::postFace
|
bool Foam::RemoveParcels<CloudType>::postFace
|
||||||
(
|
(
|
||||||
const parcelType& p,
|
const parcelType& p,
|
||||||
bool& keepParticle
|
const typename parcelType::trackingData& td
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
|
bool keepParticle = true;
|
||||||
|
|
||||||
if ((typeId_ >= 0) && (p.typeId() != typeId_))
|
if ((typeId_ >= 0) && (p.typeId() != typeId_))
|
||||||
{
|
{
|
||||||
// Not processing this particle type
|
// Not processing this particle type
|
||||||
return;
|
return keepParticle;
|
||||||
}
|
}
|
||||||
|
|
||||||
if
|
if
|
||||||
@ -280,6 +282,8 @@ void Foam::RemoveParcels<CloudType>::postFace
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return keepParticle;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -163,7 +163,11 @@ public:
|
|||||||
);
|
);
|
||||||
|
|
||||||
//- Post-face hook
|
//- Post-face hook
|
||||||
virtual void postFace(const parcelType& p, bool& keepParticle);
|
virtual bool postFace
|
||||||
|
(
|
||||||
|
const parcelType& p,
|
||||||
|
const typename parcelType::trackingData& td
|
||||||
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -124,17 +124,19 @@ void Foam::VoidFraction<CloudType>::postEvolve
|
|||||||
|
|
||||||
|
|
||||||
template<class CloudType>
|
template<class CloudType>
|
||||||
void Foam::VoidFraction<CloudType>::postMove
|
bool Foam::VoidFraction<CloudType>::postMove
|
||||||
(
|
(
|
||||||
parcelType& p,
|
parcelType& p,
|
||||||
const scalar dt,
|
const scalar dt,
|
||||||
const point&,
|
const point&,
|
||||||
bool&
|
const typename parcelType::trackingData& td
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
volScalarField& theta = thetaPtr_();
|
volScalarField& theta = thetaPtr_();
|
||||||
|
|
||||||
theta[p.cell()] += dt*p.nParticle()*p.volume();
|
theta[p.cell()] += dt*p.nParticle()*p.volume();
|
||||||
|
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -128,12 +128,12 @@ public:
|
|||||||
);
|
);
|
||||||
|
|
||||||
//- Post-move hook
|
//- Post-move hook
|
||||||
virtual void postMove
|
virtual bool postMove
|
||||||
(
|
(
|
||||||
parcelType& p,
|
parcelType& p,
|
||||||
const scalar dt,
|
const scalar dt,
|
||||||
const point& position0,
|
const point& position0,
|
||||||
bool& keepParticle
|
const typename parcelType::trackingData& td
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user