mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
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:
@ -1,7 +1,9 @@
|
|||||||
EXE_INC = \
|
EXE_INC = \
|
||||||
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
||||||
-I$(LIB_SRC)/lagrangian/basic/lnInclude
|
-I$(LIB_SRC)/lagrangian/basic/lnInclude \
|
||||||
|
-I$(LIB_SRC)/meshTools/lnInclude
|
||||||
|
|
||||||
LIB_LIBS = \
|
LIB_LIBS = \
|
||||||
-llagrangian \
|
-llagrangian \
|
||||||
-lfiniteVolume
|
-lfiniteVolume \
|
||||||
|
-lmeshTools
|
||||||
|
|||||||
@ -25,6 +25,7 @@ License
|
|||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
#include "DsmcParcel.H"
|
#include "DsmcParcel.H"
|
||||||
|
#include "meshTools.H"
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||||
|
|
||||||
@ -47,8 +48,18 @@ bool Foam::DsmcParcel<ParcelType>::move
|
|||||||
scalar tEnd = (1.0 - p.stepFraction())*deltaT;
|
scalar tEnd = (1.0 - p.stepFraction())*deltaT;
|
||||||
const scalar dtMax = tEnd;
|
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)
|
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
|
// Set the Lagrangian time-step
|
||||||
scalar dt = min(dtMax, tEnd);
|
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;
|
return td.keepParticle;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user