diff --git a/src/lagrangian/basic/particle/particleTemplates.C b/src/lagrangian/basic/particle/particleTemplates.C index 29b141c6cb..8a734a33a6 100644 --- a/src/lagrangian/basic/particle/particleTemplates.C +++ b/src/lagrangian/basic/particle/particleTemplates.C @@ -420,10 +420,12 @@ void Foam::particle::hitCyclicAMIPatch facei_ = tetFacei_ = receiveFacei + receiveCpp.start(); // Locate the particle on the recieving side + vector directionT = direction; + cpp.reverseTransformDirection(directionT, sendFacei); locate ( pos, - &direction, + &directionT, mesh_.faceOwner()[facei_], false, "Particle crossed between " + cyclicAMIPolyPatch::typeName + diff --git a/src/mesh/snappyHexMesh/trackedParticle/trackedParticle.C b/src/mesh/snappyHexMesh/trackedParticle/trackedParticle.C index fd9a4acfd1..668894f382 100644 --- a/src/mesh/snappyHexMesh/trackedParticle/trackedParticle.C +++ b/src/mesh/snappyHexMesh/trackedParticle/trackedParticle.C @@ -209,6 +209,18 @@ void Foam::trackedParticle::hitCyclicPatch } +void Foam::trackedParticle::hitCyclicAMIPatch +( + const cyclicAMIPolyPatch&, + trackingData& td, + const vector& +) +{ + // Remove particle + td.keepParticle = false; +} + + void Foam::trackedParticle::hitProcessorPatch ( const processorPolyPatch&, diff --git a/src/mesh/snappyHexMesh/trackedParticle/trackedParticle.H b/src/mesh/snappyHexMesh/trackedParticle/trackedParticle.H index 02a30b3a23..184e7f0104 100644 --- a/src/mesh/snappyHexMesh/trackedParticle/trackedParticle.H +++ b/src/mesh/snappyHexMesh/trackedParticle/trackedParticle.H @@ -284,6 +284,14 @@ public: trackingData& td ); + //- Overridable function to handle the particle hitting a cyclicAMI + void hitCyclicAMIPatch + ( + const cyclicAMIPolyPatch&, + trackingData& td, + const vector& + ); + //- Overridable function to handle the particle hitting a //- processorPatch void hitProcessorPatch