43 const scalar trackTime
46 td.switchProcessor =
false;
47 td.keepParticle =
true;
49 while (td.keepParticle && !td.switchProcessor &&
stepFraction() < 1)
54 <<
" trackTime = " << trackTime
67 scalar rhoc = td.rhoInterp().interpolate(this->
coordinates(), tetIs);
69 scalar nuc = td.nuInterp().interpolate(this->
coordinates(), tetIs);
71 scalar rhop = cloud.
rhop();
72 scalar magUr =
mag(Uc - U_);
75 scalar
Re = magUr*d_/nuc;
79 ReFunc += 0.15*
pow(
Re, 0.687);
82 scalar Dc = (24.0*nuc/d_)*ReFunc*(3.0/4.0)*(rhoc/(d_*rhop));
84 U_ = (U_ + dt*(Dc*Uc + (1.0 - rhoc/rhop)*td.g()))/(1.0 + dt*Dc);
87 return td.keepParticle;
109 const vector nw = normal();
dimensioned< typename typeOfMag< Type >::type > mag(const dimensioned< Type > &dt)
const barycentric & coordinates() const noexcept
Return current particle coordinates.
Ostream & endl(Ostream &os)
Add newline and flush stream.
bool hitPatch(solidParticleCloud &cloud, trackingData &td)
Overridable function to handle the particle hitting a patch.
virtual void transformProperties(const tensor &T)
Transform the physical properties of the particle.
bool switchProcessor
Flag to switch processor.
const Time & time() const noexcept
Return time registry.
A cloud is a registry collection of lagrangian particles.
tetIndices currentTetIndices() const noexcept
Return indices of the current tet that the particle occupies.
A Cloud of solid particles.
scalar stepFraction() const noexcept
Return the fraction of time-step completed.
A Vector of values with scalar precision, where scalar is float/double depending on the compilation f...
static word timeName(const scalar t, const int precision=precision_)
Return time name of given scalar time formatted with the given precision.
Class used to pass tracking data to the trackToFace function.
int debug
Static debugging option.
defineTemplateTypeNameAndDebug(faScalarMatrix, 0)
void T(FieldField< Field, Type > &f1, const FieldField< Field, Type > &f2)
scalarField Re(const UList< complex > &cmplx)
Extract real component.
dimensionedScalar pow(const dimensionedScalar &ds, const dimensionedScalar &expt)
void hitProcessorPatch(solidParticleCloud &cloud, trackingData &td)
Overridable function to handle the particle hitting a.
const polyMesh & mesh() const noexcept
Return the mesh database.
bool move(solidParticleCloud &, trackingData &, const scalar)
Move.
void trackToAndHitFace(const vector &direction, const scalar fraction, TrackCloudType &cloud, trackingData &td)
Convenience function. Combines trackToFace and hitFace.
dimensionSet transform(const dimensionSet &ds)
Return the argument; transformations do not change the dimensions.
virtual void transformProperties(const tensor &T)
Transform the physical properties of the particle.
Tensor of scalars, i.e. Tensor<scalar>.
void hitWallPatch(solidParticleCloud &cloud, trackingData &td)
Overridable function to handle the particle hitting a wallPatch.
prefixOSstream Pout
OSstream wrapped stdout (std::cout) with parallel prefix.