particle: Improvements to tracking across AMIs

The projection direction has been corrected to include the effect of
mesh motion. The case where the source and receiving faces are of
differing orientations and the particle displacement points into both is
now detected and handled.
This commit is contained in:
Will Bainbridge
2018-06-26 16:48:53 +01:00
parent fb4cb6e57a
commit 35dd88e553
15 changed files with 293 additions and 128 deletions

View File

@ -176,9 +176,10 @@ void Foam::findCellParticle::hitCyclicPatch
void Foam::findCellParticle::hitCyclicAMIPatch
(
const vector&,
const scalar,
Cloud<findCellParticle>&,
trackingData& td,
const vector&
trackingData& td
)
{
// Remove particle
@ -188,9 +189,23 @@ void Foam::findCellParticle::hitCyclicAMIPatch
void Foam::findCellParticle::hitCyclicACMIPatch
(
const vector&,
const scalar,
Cloud<findCellParticle>&,
trackingData& td,
const vector&
trackingData& td
)
{
// Remove particle
td.keepParticle = false;
}
void Foam::findCellParticle::hitCyclicRepeatAMIPatch
(
const vector&,
const scalar,
Cloud<findCellParticle>&,
trackingData& td
)
{
// Remove particle

View File

@ -228,17 +228,29 @@ public:
//- Overridable function to handle the particle hitting a cyclicAMI
void hitCyclicAMIPatch
(
const vector&,
const scalar,
Cloud<findCellParticle>&,
trackingData&,
const vector&
trackingData&
);
//- Overridable function to handle the particle hitting a cyclicACMI
void hitCyclicACMIPatch
(
const vector&,
const scalar,
Cloud<findCellParticle>&,
trackingData&,
const vector&
trackingData&
);
//- Overridable function to handle the particle hitting a
//cyclicRepeatAMI
void hitCyclicRepeatAMIPatch
(
const vector&,
const scalar,
Cloud<findCellParticle>&,
trackingData&
);
//- Overridable function to handle the particle hitting a

View File

@ -323,9 +323,10 @@ void Foam::streamLineParticle::hitCyclicPatch
void Foam::streamLineParticle::hitCyclicAMIPatch
(
const vector&,
const scalar,
streamLineParticleCloud&,
trackingData& td,
const vector&
trackingData& td
)
{
// Remove particle
@ -335,9 +336,23 @@ void Foam::streamLineParticle::hitCyclicAMIPatch
void Foam::streamLineParticle::hitCyclicACMIPatch
(
const vector&,
const scalar,
streamLineParticleCloud&,
trackingData& td,
const vector&
trackingData& td
)
{
// Remove particle
td.keepParticle = false;
}
void Foam::streamLineParticle::hitCyclicRepeatAMIPatch
(
const vector&,
const scalar,
streamLineParticleCloud&,
trackingData& td
)
{
// Remove particle

View File

@ -231,18 +231,30 @@ public:
// cyclicAMIPatch
void hitCyclicAMIPatch
(
const vector&,
const scalar,
streamLineParticleCloud&,
trackingData&,
const vector& direction
trackingData&
);
//- Overridable function to handle the particle hitting a
// cyclicACMIPatch
void hitCyclicACMIPatch
(
const vector&,
const scalar,
streamLineParticleCloud&,
trackingData&,
const vector& direction
trackingData&
);
//- Overridable function to handle the particle hitting a
// cyclicRepeatAMIPatch
void hitCyclicRepeatAMIPatch
(
const vector&,
const scalar,
streamLineParticleCloud&,
trackingData&
);
//- Overridable function to handle the particle hitting a