Adding constraint of tracking motion in reduced dimension cases.

Saving the full 3D velocity before constraining for tracking, then
restoring afterwards.
This commit is contained in:
graham 2009-09-24 10:33:29 +01:00
parent 65ca8a8b99
commit 9d3f0eaefb
2 changed files with 18 additions and 2 deletions

View File

@ -1,7 +1,9 @@
EXE_INC = \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/lagrangian/basic/lnInclude
-I$(LIB_SRC)/lagrangian/basic/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude
LIB_LIBS = \
-llagrangian \
-lfiniteVolume
-lfiniteVolume \
-lmeshTools

View File

@ -25,6 +25,7 @@ License
\*---------------------------------------------------------------------------*/
#include "DsmcParcel.H"
#include "meshTools.H"
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
@ -47,8 +48,18 @@ bool Foam::DsmcParcel<ParcelType>::move
scalar tEnd = (1.0 - p.stepFraction())*deltaT;
const scalar dtMax = tEnd;
// Save the velocity to re-apply it after tracking
vector U_save = U_;
// Apply correction to velocity to constrain tracking for
// reduced-D cases
meshTools::constrainDirection(mesh, mesh.solutionD(), U_);
while (td.keepParticle && !td.switchProcessor && tEnd > ROOTVSMALL)
{
// Apply correction to position for reduced-D cases
meshTools::constrainToMeshCentre(mesh, p.position());
// Set the Lagrangian time-step
scalar dt = min(dtMax, tEnd);
@ -67,6 +78,9 @@ bool Foam::DsmcParcel<ParcelType>::move
}
}
// Restore the correct value of velocity
U_ = U_save;
return td.keepParticle;
}