43 const scalar trackTime
46 td.switchProcessor =
false;
47 td.keepParticle =
true;
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;
103 td.switchProcessor =
true;
109 const vector nw = normal();
Base cloud calls templated on particle type.
static word timeName(const scalar t, const int precision=precision_)
Return a time name for the given scalar time value formatted with the given precision.
A cloud is a registry collection of lagrangian particles.
const Time & time() const noexcept
Return time registry.
virtual void transformProperties(const tensor &T)
Transform the physical properties of the particle.
tetIndices currentTetIndices() const noexcept
Return indices of the current tet that the particle occupies.
const polyMesh & mesh() const noexcept
Return the mesh database.
const barycentric & coordinates() const noexcept
Return current particle coordinates.
scalar stepFraction() const noexcept
Return the fraction of time-step completed.
void trackToAndHitFace(const vector &direction, const scalar fraction, TrackCloudType &cloud, trackingData &td)
Convenience function. Combines trackToFace and hitFace.
vector normal() const
The (unit) normal of the tri on tetFacei_ for the current tet.
A Cloud of solid particles.
scalar rhop() const noexcept
Class used to pass tracking data to the trackToFace function.
virtual void transformProperties(const tensor &T)
Transform the physical properties of the particle.
void hitWallPatch(solidParticleCloud &cloud, trackingData &td)
Overridable function to handle the particle hitting a wallPatch.
bool move(solidParticleCloud &, trackingData &, const scalar)
Move.
bool hitPatch(solidParticleCloud &cloud, trackingData &td)
Overridable function to handle the particle hitting a patch.
void hitProcessorPatch(solidParticleCloud &cloud, trackingData &td)
Overridable function to handle the particle hitting a.
Storage and named access for the indices of a tet which is part of the decomposition of a cell.
A Vector of values with scalar precision, where scalar is float/double depending on the compilation f...
#define defineTemplateTypeNameAndDebug(Type, DebugSwitch)
Define the typeName and debug information for templates, useful.
wallPoints::trackData td(isBlockedFace, regionToBlockSize)
Namespace for handling debugging switches.
refinementData transform(const tensor &, const refinementData val)
No-op rotational transform for base types.
dimensionedScalar pow(const dimensionedScalar &ds, const dimensionedScalar &expt)
Ostream & endl(Ostream &os)
Add newline and flush stream.
dimensioned< typename typeOfMag< Type >::type > mag(const dimensioned< Type > &dt)
scalarField Re(const UList< complex > &cmplx)
Extract real component.
prefixOSstream Pout
OSstream wrapped stdout (std::cout) with parallel prefix.
void T(FieldField< Field, Type > &f1, const FieldField< Field, Type > &f2)