44 #ifndef KinematicParcel_H 45 #define KinematicParcel_H 60 template<
class ParcelType>
65 template<
class ParcelType>
76 template<
class ParcelType>
84 static const std::size_t sizeofFields_;
87 static label maxTrackAttempts;
144 inline scalar
rhoMin()
const;
147 inline scalar
rho0()
const;
156 public ParcelType::trackingData
209 template <
class TrackCloudType>
212 const TrackCloudType&
cloud,
232 inline scalar rhoc()
const;
235 inline scalar& rhoc();
238 inline const vector& Uc()
const;
244 inline scalar muc()
const;
247 inline scalar& muc();
250 inline const vector&
g()
const;
300 template<
class TrackCloudType>
303 TrackCloudType&
cloud,
335 +
" (UTurbx UTurby UTurbz)" 348 const label tetFacei,
367 const label tetFacei,
370 const scalar nParticle0,
372 const scalar dTarget0,
431 inline bool active()
const;
440 inline scalar
d()
const;
446 inline const vector&
U()
const;
449 inline scalar
rho()
const;
452 inline scalar
age()
const;
455 inline scalar
tTurb()
const;
482 inline scalar&
rho();
485 inline scalar&
age();
488 inline scalar&
tTurb();
500 inline scalar
mass()
const;
506 inline scalar
volume()
const;
509 inline static scalar
volume(
const scalar d);
512 inline scalar
areaP()
const;
515 inline static scalar
areaP(
const scalar d);
518 inline scalar
areaS()
const;
521 inline static scalar
areaS(
const scalar d);
527 inline static scalar
Re 544 inline static scalar
We 561 inline static scalar
Eo 575 template<
class TrackCloudType>
580 template<
class TrackCloudType>
583 TrackCloudType& cloud,
589 template<
class TrackCloudType>
592 TrackCloudType& cloud,
598 template<
class TrackCloudType>
601 TrackCloudType& cloud,
610 template<
class TrackCloudType>
613 TrackCloudType& cloud,
615 const scalar trackTime
623 template<
class TrackCloudType>
628 template<
class TrackCloudType>
632 template<
class TrackCloudType>
647 template<
class TrackCloudType>
651 template<
class TrackCloudType>
657 friend Ostream& operator<< <ParcelType>
scalar massCell(const trackingData &td) const
Cell owner mass.
const vector & U() const
Return const access to velocity.
static void writeFields(const TrackCloudType &c)
Write.
scalar tTurb() const
Return const access to time spent in turbulent eddy.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
scalar rhoMin() const
Return const access to the minimum density.
const vector & UTurb() const
Return const access to turbulent velocity fluctuation.
A list of keyword definitions, which are a keyword followed by any number of values (e...
Kinematic parcel class with rotational motion (as spherical particles only) and one/two-way coupling ...
TypeName("KinematicParcel")
Runtime type information.
scalar nParticle() const
Return const access to number of particles.
An Istream is an abstract base class for all input systems (streams, files, token lists etc)...
Class to hold kinematic particle constant properties.
scalar mass() const
Particle mass.
scalar d() const
Return const access to diameter.
scalar tTurb_
Time spent in turbulent eddy [s].
scalar rho() const
Return const access to density.
bool cp(const fileName &src, const fileName &dst, const bool followLink=true)
Copy, recursively if necessary, the source to the destination.
const dimensionedScalar sigma
Stefan-Boltzmann constant: default SI units: [W/m2/K4].
scalar rho0() const
Return const access to the particle density.
void setCellValues(TrackCloudType &cloud, trackingData &td)
Set cell values.
constantProperties()
Null constructor.
scalar areaP() const
Particle projected area.
Factory class to read-construct particles used for.
KinematicParcel(const polyMesh &mesh, const barycentric &coordinates, const label celli, const label tetFacei, const label tetPti)
Construct from mesh, coordinates and topology.
scalar dTarget() const
Return const access to target diameter.
label parcelTypeId() const
Return const access to the parcel type id.
scalar dTarget_
Target diameter [m].
scalar age() const
Return const access to the age.
void cellValueSourceCorrection(TrackCloudType &cloud, trackingData &td, const scalar dt)
Correct cell values using latest transfer information.
scalar Eo(const trackingData &td, const scalar sigma) const
Eotvos number.
scalar rho_
Density [kg/m3].
virtual void transformProperties(const tensor &T)
Transform the physical properties of the particle.
scalar momentOfInertia() const
Particle moment of inertia around diameter axis.
bool active_
Active flag - tracking inactive when active = false.
const dictionary dict_
Constant properties dictionary.
A cloud is a collection of lagrangian particles.
label typeId_
Parcel type id.
vector UTurb_
Turbulent velocity fluctuation [m/s].
static void readFields(TrackCloudType &c)
Read.
void calc(TrackCloudType &cloud, trackingData &td, const scalar dt)
Update parcel properties over the time interval.
bool active() const
Return const access to active flag.
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.
An Ostream is an abstract base class for all output systems (streams, files, token lists...
scalar nParticle_
Number of particles in Parcel.
void T(FieldField< Field, Type > &f1, const FieldField< Field, Type > &f2)
scalar minParcelMass() const
Return const access to the minimum parcel mass.
const dimensionedScalar mu
Atomic mass unit.
vector U_
Velocity of Parcel [m/s].
virtual autoPtr< particle > clone() const
Construct and return a (basic particle) clone.
PtrList< coordinateSystem > coordinates(solidRegions.size())
const dimensionedScalar c
Speed of light in a vacuum.
scalar volume() const
Particle volume.
scalar Re(const trackingData &td) const
Reynolds number.
An auto-pointer similar to the STL auto_ptr but with automatic casting to a reference to the type and...
Mesh consisting of general polyhedral cells.
bool move(TrackCloudType &cloud, trackingData &td, const scalar trackTime)
Move the parcel.
const dimensionedVector & g
label typeId() const
Return const access to type id.
AddToPropertyList(ParcelType, " active"+" typeId"+" nParticle"+" d"+" dTarget "+" (Ux Uy Uz)"+" rho"+" age"+" tTurb"+" (UTurbx UTurby UTurbz)")
String representation of properties.
void hitProcessorPatch(TrackCloudType &cloud, trackingData &td)
Overridable function to handle the particle hitting a.
scalar areaS() const
Particle surface area.
bool hitPatch(TrackCloudType &cloud, trackingData &td)
Overridable function to handle the particle hitting a patch.
scalar We(const trackingData &td, const scalar sigma) const
Weber number.
void calcDispersion(TrackCloudType &cloud, trackingData &td, const scalar dt)
Apply dispersion to the carrier phase velocity and update.
const dictionary & dict() const
Return const access to the constant properties dictionary.
void hitWallPatch(TrackCloudType &cloud, trackingData &td)
Overridable function to handle the particle hitting a wallPatch.