44 #ifndef MomentumParcel_H
45 #define MomentumParcel_H
56 template<
class ParcelType>
61 template<
class ParcelType>
79 template<
class ParcelType>
83 public MomentumParcelName
88 static const std::size_t sizeofFields_;
91 static label maxTrackAttempts;
148 inline scalar
rhoMin()
const;
151 inline scalar
rho0()
const;
160 public ParcelType::trackingData
209 template <
class TrackCloudType>
228 inline scalar
rhoc()
const;
231 inline scalar&
rhoc();
240 inline scalar
muc()
const;
243 inline scalar&
muc();
246 inline const vector&
g()
const;
302 template<
class TrackCloudType>
307 template<
class TrackCloudType>
310 TrackCloudType&
cloud,
316 template<
class TrackCloudType>
319 TrackCloudType&
cloud,
325 template<
class TrackCloudType>
328 TrackCloudType&
cloud,
334 template<
class TrackCloudType>
337 TrackCloudType&
cloud,
366 +
" (UTurbx UTurby UTurbz)"
379 const label tetFacei,
391 label& nLocateBoundaryHits
418 inline bool moving()
const;
427 inline scalar
d()
const;
433 inline const vector&
U()
const;
436 inline scalar
rho()
const;
439 inline scalar
age()
const;
442 inline scalar
tTurb()
const;
469 inline scalar&
rho();
472 inline scalar&
age();
475 inline scalar&
tTurb();
484 inline scalar
massCell(
const trackingData& td)
const;
487 inline scalar
mass()
const;
493 inline scalar
volume()
const;
496 inline static scalar
volume(
const scalar
d);
499 inline scalar
areaP()
const;
502 inline static scalar
areaP(
const scalar
d);
505 inline scalar
areaS()
const;
508 inline static scalar
areaS(
const scalar
d);
511 inline scalar
Re(
const trackingData& td)
const;
514 inline static scalar
Re
526 const trackingData& td,
531 inline static scalar
We
543 const trackingData& td,
548 inline static scalar
Eo
562 template<
class TrackCloudType>
563 bool move(TrackCloudType&
cloud, trackingData& td);
576 template<
class TrackCloudType>
584 template<
class TrackCloudType>
588 template<
class TrackCloudType>
593 template<
class TrackCloudType>
598 template<
class TrackCloudType>
603 template<
class TrackCloudType>
608 template<
class TrackCloudType>
611 const vector& displacement,
612 const scalar fraction,
614 TrackCloudType&
cloud,
620 using ParcelType::hitProcessorPatch;
623 template<
class TrackCloudType>
628 template<
class TrackCloudType>
635 template<
class TrackCloudType>
639 template<
class TrackCloudType>
645 friend Ostream& operator<< <ParcelType>
An Istream is an abstract base class for all input systems (streams, files, token lists etc)....
Class to hold momentum parcel constant properties.
constantProperties()
Null constructor.
scalar minParcelMass() const
Return const access to the minimum parcel mass.
scalar rho0() const
Return const access to the particle density.
label parcelTypeId() const
Return const access to the parcel type id.
const dictionary dict_
Constant properties dictionary.
const dictionary & dict() const
Return const access to the constant properties dictionary.
scalar rhoMin() const
Return const access to the minimum density.
const vector & Uc() const
Return the continuous phase velocity.
scalar muc() const
Return the continuous phase viscosity.
const interpolation< vector > & UInterp() const
Return const access to the interpolator for continuous.
scalar trackTime() const
Return the tracking time.
trackingData(const TrackCloudType &cloud)
Construct from components.
scalar rhoc() const
Return the continuous phase density.
Pair< scalar > stepFractionRange() const
Return the step fraction range to track between.
const interpolation< scalar > & muInterp() const
Return const access to the interpolator for continuous.
const interpolation< scalar > & rhoInterp() const
Return const access to the interpolator for continuous.
Momentum parcel class with rotational motion (as spherical particles only) and one/two-way coupling w...
label typeId_
Parcel type id.
label typeId() const
Return const access to type id.
vector UTurb_
Turbulent velocity fluctuation [m/s].
scalar momentOfInertia() const
Particle moment of inertia around diameter axis.
void calcDispersion(TrackCloudType &cloud, trackingData &td, const scalar dt)
Apply dispersion to the carrier phase velocity and update.
scalar tTurb() const
Return const access to time spent in turbulent eddy.
scalar rho_
Density [kg/m^3].
const vector & U() const
Return const access to velocity.
bool moving_
Moving flag - tracking stopped when moving = false.
bool move(TrackCloudType &cloud, trackingData &td)
Move the parcel.
static void readFields(TrackCloudType &c)
Read.
scalar d() const
Return const access to diameter.
void cellValueSourceCorrection(TrackCloudType &cloud, trackingData &td, const scalar dt)
Correct cell values using latest transfer information.
void hitCyclicPatch(TrackCloudType &, trackingData &)
Overridable function to handle the particle hitting a.
static autoPtr< MomentumParcel > New(Istream &is)
Construct from Istream and return.
scalar Re(const trackingData &td) const
Reynolds number.
scalar tTurb_
Time spent in turbulent eddy [s].
scalar volume() const
Particle volume.
scalar dTarget_
Target diameter [m].
const vector calcVelocity(TrackCloudType &cloud, trackingData &td, const scalar dt, const scalar Re, const scalar mu, const scalar mass, const vector &Su, vector &dUTrans, scalar &Spu) const
Calculate new particle velocity.
scalar nParticle() const
Return const access to number of particles.
scalar massCell(const trackingData &td) const
Cell owner mass.
scalar dTarget() const
Return const access to target diameter.
void hitSymmetryPatch(TrackCloudType &, trackingData &)
Overridable function to handle the particle hitting a.
virtual autoPtr< particle > clone() const
Construct and return a clone.
void hitSymmetryPlanePatch(TrackCloudType &, trackingData &)
Overridable function to handle the particle hitting a.
scalar We(const trackingData &td, const scalar sigma) const
Weber number.
scalar areaP() const
Particle projected area.
scalar rho() const
Return const access to density.
scalar mass() const
Particle mass.
MomentumParcel(const polyMesh &mesh, const barycentric &coordinates, const label celli, const label tetFacei, const label tetPti, const label facei)
Construct from mesh, coordinates and topology.
static void writeFields(const TrackCloudType &c)
Write.
AddToPropertyList(ParcelType, " moving"+" typeId"+" nParticle"+" d"+" dTarget "+" (Ux Uy Uz)"+" rho"+" age"+" tTurb"+" (UTurbx UTurby UTurbz)")
String representation of properties.
bool hitPatch(TrackCloudType &cloud, trackingData &td)
Overridable function to handle the particle hitting a patch.
void hitWedgePatch(TrackCloudType &, trackingData &)
Overridable function to handle the particle hitting a wedgePatch.
void setCellValues(TrackCloudType &cloud, trackingData &td)
Set cell values.
scalar areaS() const
Particle surface area.
void correctAfterParallelTransfer(TrackCloudType &, trackingData &)
Make changes following a parallel transfer.
void hitWallPatch(TrackCloudType &cloud, trackingData &td)
Overridable function to handle the particle hitting a wallPatch.
scalar Eo(const trackingData &td, const scalar sigma) const
Eotvos number.
bool hitNonConformalCyclicPatch(const vector &displacement, const scalar fraction, const label patchi, TrackCloudType &cloud, trackingData &td)
Overridable function to handle the particle hitting an.
virtual void transformProperties(const transformer &)
Transform the physical properties of the particle.
scalar age() const
Return const access to the age.
vector U_
Velocity of Parcel [m/s].
const vector & UTurb() const
Return const access to turbulent velocity fluctuation.
scalar nParticle_
Number of particles in Parcel.
void hitBasicPatch(TrackCloudType &cloud, trackingData &td)
Overridable function to handle the particle hitting a basic.
bool moving() const
Return const access to moving flag.
void calc(TrackCloudType &cloud, trackingData &td, const scalar dt)
Update parcel properties over the time interval.
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
An auto-pointer similar to the STL auto_ptr but with automatic casting to a reference to the type and...
A cloud is a collection of lagrangian particles.
A list of keyword definitions, which are a keyword followed by any number of values (e....
Abstract base class for interpolation.
Mesh consisting of general polyhedral cells.
const dimensionedScalar sigma
Stefan-Boltzmann constant: default SI units: [W/m^2/K^4].
const dimensionedScalar mu
Atomic mass unit.
const dimensionedScalar c
Speed of light in a vacuum.
tmp< VolField< Type > > Su(const VolField< Type > &su, const VolField< Type > &vf)
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
bool cp(const fileName &src, const fileName &dst, const bool followLink=true)
Copy, recursively if necessary, the source to the destination.
TemplateName(FvFaceCellWave)