diff --git a/src/lagrangian/basic/particle/particle.C b/src/lagrangian/basic/particle/particle.C index a7e258a57..f5919901b 100644 --- a/src/lagrangian/basic/particle/particle.C +++ b/src/lagrangian/basic/particle/particle.C @@ -570,6 +570,23 @@ Foam::scalar Foam::particle::track } +Foam::scalar Foam::particle::trackToCell +( + const vector& displacement, + const scalar fraction +) +{ + const scalar f = trackToFace(displacement, fraction); + + if (onInternalFace()) + { + changeCell(); + } + + return f; +} + + Foam::scalar Foam::particle::trackToFace ( const vector& displacement, diff --git a/src/lagrangian/basic/particle/particle.H b/src/lagrangian/basic/particle/particle.H index 5225191cd..4ad86711f 100644 --- a/src/lagrangian/basic/particle/particle.H +++ b/src/lagrangian/basic/particle/particle.H @@ -513,16 +513,23 @@ public: const scalar fraction ); - //- As particle::track, but also stops on internal faces. + //- As particle::track, but stops when a new cell is reached. + scalar trackToCell + ( + const vector& displacement, + const scalar fraction + ); + + //- As particle::track, but stops when a face is hit. scalar trackToFace ( const vector& displacement, const scalar fraction ); - //- As particle::trackToFace, but also stops on tet triangles. On - // exit, tetTriI is set to the index of the tet triangle that was - // hit, or -1 if the end position was reached. + //- As particle::trackToFace, but stops when a tet triangle is hit. On + // exit, tetTriI is set to the index of the tet triangle that was hit, + // or -1 if the end position was reached. scalar trackToTri ( const vector& displacement,