diff --git a/src/lagrangian/basic/Cloud/Cloud.C b/src/lagrangian/basic/Cloud/Cloud.C index 0ea3551bb1a31f11cbc52e036c4a85e103641760..a0ebd790487ce958acfd3c8680ed7fdc93a11e37 100644 --- a/src/lagrangian/basic/Cloud/Cloud.C +++ b/src/lagrangian/basic/Cloud/Cloud.C @@ -261,7 +261,12 @@ void Foam::Cloud<ParticleType>::move(TrackData& td, const scalar trackTime) { // If we are running in parallel and the particle is on a // boundary face - if (Pstream::parRun() && p.face() >= pMesh().nInternalFaces()) + if + ( + Pstream::parRun() + && td.switchProcessor + && p.face() >= pMesh().nInternalFaces() + ) { label patchI = pbm.whichPatch(p.face()); diff --git a/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcel.C b/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcel.C index 62f5d501624ff42c224717bd4ee589c25e22ef3a..7fdf8115423b3ff9e695a0ffbd2e113b63d5107d 100644 --- a/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcel.C +++ b/src/lagrangian/intermediate/parcels/Templates/KinematicParcel/KinematicParcel.C @@ -345,6 +345,8 @@ bool Foam::KinematicParcel<ParcelType>::move p.calc(td, dt, cellI); } + p.age() += dt; + if (p.onBoundary() && td.keepParticle) { if (isA<processorPolyPatch>(pbMesh[p.patch(p.face())])) @@ -353,8 +355,6 @@ bool Foam::KinematicParcel<ParcelType>::move } } - p.age() += dt; - td.cloud().functions().postMove(p, cellI, dt, start, td.keepParticle); }