From 53d3d6fb6fc44d8a4449d2a55a8be5d34457874d Mon Sep 17 00:00:00 2001 From: Will Bainbridge Date: Thu, 4 May 2017 18:25:03 +0100 Subject: [PATCH 1/2] snappyHexMesh: Feature line tracking should end on AMI patches --- .../snappyHexMesh/trackedParticle/trackedParticle.C | 12 ++++++++++++ .../snappyHexMesh/trackedParticle/trackedParticle.H | 8 ++++++++ 2 files changed, 20 insertions(+) diff --git a/src/mesh/snappyHexMesh/trackedParticle/trackedParticle.C b/src/mesh/snappyHexMesh/trackedParticle/trackedParticle.C index fd9a4acfd..668894f38 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 02a30b3a2..184e7f010 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 From 6ff7de9c490eda6977297013f8f0e51065c5224b Mon Sep 17 00:00:00 2001 From: Will Bainbridge Date: Thu, 4 May 2017 18:25:41 +0100 Subject: [PATCH 2/2] particle: Corrected the direction of tracking when passing through an AMI. Applied the transformation. --- src/lagrangian/basic/particle/particleTemplates.C | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/lagrangian/basic/particle/particleTemplates.C b/src/lagrangian/basic/particle/particleTemplates.C index 29b141c6c..8a734a33a 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 +