Skip to content
Snippets Groups Projects
Commit 1cb18632 authored by mattijs's avatar mattijs
Browse files

ENH: streamLineParticle : improved

parent 935be5df
No related branches found
No related tags found
No related merge requests found
...@@ -45,6 +45,7 @@ Foam::scalar Foam::streamLineParticle::calcSubCycleDeltaT ...@@ -45,6 +45,7 @@ Foam::scalar Foam::streamLineParticle::calcSubCycleDeltaT
) const ) const
{ {
streamLineParticle testParticle(*this); streamLineParticle testParticle(*this);
bool oldKeepParticle = td.keepParticle; bool oldKeepParticle = td.keepParticle;
bool oldSwitchProcessor = td.switchProcessor; bool oldSwitchProcessor = td.switchProcessor;
scalar fraction = testParticle.trackToFace(position()+dt*U, td); scalar fraction = testParticle.trackToFace(position()+dt*U, td);
...@@ -196,9 +197,7 @@ bool Foam::streamLineParticle::move ...@@ -196,9 +197,7 @@ bool Foam::streamLineParticle::move
// Cross cell in steps: // Cross cell in steps:
// - at subiter 0 calculate dt to cross cell in nSubCycle steps // - at subiter 0 calculate dt to cross cell in nSubCycle steps
// - at the last subiter do all of the remaining track // - at the last subiter do all of the remaining track
// - do a few more subiters than nSubCycle since velocity might for (label subIter = 0; subIter < td.nSubCycle_; subIter++)
// be decreasing
for (label subIter = 0; subIter < 2*td.nSubCycle_; subIter++)
{ {
--lifeTime_; --lifeTime_;
...@@ -217,14 +216,14 @@ bool Foam::streamLineParticle::move ...@@ -217,14 +216,14 @@ bool Foam::streamLineParticle::move
// Adapt dt to cross cell in a few steps // Adapt dt to cross cell in a few steps
dt = calcSubCycleDeltaT(td, dt, U); dt = calcSubCycleDeltaT(td, dt, U);
} }
else if (subIter == td.nSubCycle_-1) else if (subIter == td.nSubCycle_ - 1)
{ {
// Do full step on last subcycle // Do full step on last subcycle
dt = min(dtMax, tEnd); dt = min(dtMax, tEnd);
} }
scalar fraction = trackToFace(position()+dt*U, td); scalar fraction = trackToFace(position() + dt*U, td);
dt *= fraction; dt *= fraction;
tEnd -= dt; tEnd -= dt;
...@@ -236,7 +235,13 @@ bool Foam::streamLineParticle::move ...@@ -236,7 +235,13 @@ bool Foam::streamLineParticle::move
lifeTime_ = 0; lifeTime_ = 0;
} }
if (!td.keepParticle || td.switchProcessor || lifeTime_ == 0) if
(
face() != -1
|| !td.keepParticle
|| td.switchProcessor
|| lifeTime_ == 0
)
{ {
break; break;
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment