mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
BUG: trackedParticle: could get stuck on processor face
This commit is contained in:
@ -90,15 +90,23 @@ Foam::trackedParticle::trackedParticle
|
|||||||
bool Foam::trackedParticle::move
|
bool Foam::trackedParticle::move
|
||||||
(
|
(
|
||||||
trackingData& td,
|
trackingData& td,
|
||||||
const scalar trackedParticle
|
const scalar trackTime
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
td.switchProcessor = false;
|
td.switchProcessor = false;
|
||||||
td.keepParticle = true;
|
|
||||||
|
|
||||||
scalar tEnd = (1.0 - stepFraction())*trackedParticle;
|
scalar tEnd = (1.0 - stepFraction())*trackTime;
|
||||||
scalar dtMax = tEnd;
|
scalar dtMax = tEnd;
|
||||||
|
|
||||||
|
if (tEnd <= SMALL)
|
||||||
|
{
|
||||||
|
// Remove the particle
|
||||||
|
td.keepParticle = false;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
td.keepParticle = true;
|
||||||
|
|
||||||
while (td.keepParticle && !td.switchProcessor && tEnd > SMALL)
|
while (td.keepParticle && !td.switchProcessor && tEnd > SMALL)
|
||||||
{
|
{
|
||||||
// set the lagrangian time-step
|
// set the lagrangian time-step
|
||||||
@ -110,7 +118,8 @@ bool Foam::trackedParticle::move
|
|||||||
dt *= trackToFace(end_, td);
|
dt *= trackToFace(end_, td);
|
||||||
|
|
||||||
tEnd -= dt;
|
tEnd -= dt;
|
||||||
stepFraction() = 1.0 - tEnd/trackedParticle;
|
stepFraction() = 1.0 - tEnd/trackTime;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return td.keepParticle;
|
return td.keepParticle;
|
||||||
|
|||||||
Reference in New Issue
Block a user