diff --git a/src/functionObjects/field/streamLine/streamLine.C b/src/functionObjects/field/streamLine/streamLine.C index 881330886d..f2bbacfdf0 100644 --- a/src/functionObjects/field/streamLine/streamLine.C +++ b/src/functionObjects/field/streamLine/streamLine.C @@ -56,18 +56,35 @@ void Foam::functionObjects::streamLine::track() const sampledSet& seedPoints = sampledSetPoints(); - forAll(seedPoints, i) + forAll(seedPoints, seedi) { particles.addParticle ( new streamLineParticle ( mesh_, - seedPoints[i], - seedPoints.cells()[i], + seedPoints[seedi], + seedPoints.cells()[seedi], + (trackDir_ == trackDirType::FORWARD), lifeTime_ ) ); + + if (trackDir_ == trackDirType::BIDIRECTIONAL) + { + // Add additional particle for the forward bit of the track + particles.addParticle + ( + new streamLineParticle + ( + mesh_, + seedPoints[seedi], + seedPoints.cells()[seedi], + true, + lifeTime_ + ) + ); + } } label nSeeds = returnReduce(particles.size(), sumOp