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;
154 template<
class CloudType>
220 inline const vector&
g()
const;
282 template<
class TrackData>
317 +
" (UTurbx UTurby UTurbz)" 330 const label tetFacei,
349 const label tetFacei,
352 const scalar nParticle0,
354 const scalar dTarget0,
413 inline bool active()
const;
422 inline scalar
d()
const;
428 inline const vector&
U()
const;
431 inline scalar
rho()
const;
434 inline scalar
age()
const;
437 inline scalar
tTurb()
const;
443 inline scalar
rhoc()
const;
449 inline scalar
muc()
const;
473 inline scalar&
rho();
476 inline scalar&
age();
479 inline scalar&
tTurb();
491 inline scalar
mass()
const;
497 inline scalar
volume()
const;
500 inline static scalar
volume(
const scalar d);
503 inline scalar
areaP()
const;
506 inline static scalar
areaP(
const scalar d);
509 inline scalar
areaS()
const;
512 inline static scalar
areaS(
const scalar d);
544 template<
class TrackData>
553 template<
class TrackData>
562 template<
class TrackData>
574 template<
class TrackData>
575 bool move(TrackData& td,
const scalar trackTime);
585 template<
class TrackData>
590 template<
class TrackData>
596 const scalar trackFraction,
602 template<
class TrackData>
610 template<
class TrackData>
619 template<
class TrackData>
642 template<
class CloudType>
646 template<
class CloudType>
652 friend Ostream& operator<< <ParcelType>
const vector & U() const
Return const access to velocity.
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.
static void readFields(CloudType &c)
Read.
bool hitPatch(const polyPatch &p, TrackData &td, const label patchi, const scalar trackFraction, const tetIndices &tetIs)
Overridable function to handle the particle hitting a patch.
const vector & UTurb() const
Return const access to turbulent velocity fluctuation.
virtual scalar wallImpactDistance(const vector &n) const
The nearest distance to a wall that the particle can be.
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 ...
scalar muc() const
Return const access to carrier viscosity [Pa.s].
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.
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.
vector Uc_
Velocity [m/s].
Neighbour processor patch.
bool move(TrackData &td, const scalar trackTime)
Move the parcel.
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.
scalar Eo(const vector &a, const scalar d, 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.
scalar muc_
Viscosity [Pa.s].
void hitFace(int &td)
Overridable function to handle the particle hitting a face.
bool active_
Active flag - tracking inactive when active = false.
const dictionary dict_
Constant properties dictionary.
scalar massCell(const label celli) const
Cell owner mass.
A cloud is a collection of lagrangian particles.
label typeId_
Parcel type id.
vector UTurb_
Turbulent velocity fluctuation [m/s].
Storage and named access for the indices of a tet which is part of the decomposition of a cell...
bool active() const
Return const access to active flag.
const vector & Uc() const
Return const access to carrier velocity [m/s].
An Ostream is an abstract base class for all output systems (streams, files, token lists...
const dimensionedVector & g
scalar nParticle_
Number of particles in Parcel.
void cellValueSourceCorrection(TrackData &td, const scalar dt, const label celli)
Correct cell values using latest transfer information.
void T(FieldField< Field, Type > &f1, const FieldField< Field, Type > &f2)
scalar minParcelMass() const
Return const access to the minimum parcel mass.
void calc(TrackData &td, const scalar dt, const label celli)
Update parcel properties over the time interval.
scalar rhoc() const
Return const access to carrier density [kg/m3].
const dimensionedScalar mu
Atomic mass unit.
scalar rhoc_
Density [kg/m3].
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.
void setCellValues(TrackData &td, const scalar dt, const label celli)
Set cell values.
static void writeFields(const CloudType &c)
Write.
void hitWallPatch(const wallPolyPatch &, TrackData &td, const tetIndices &)
Overridable function to handle the particle hitting a wallPatch.
scalar We(const vector &U, const scalar d, const scalar rhoc, const scalar sigma) const
Weber 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.
void hitProcessorPatch(const processorPolyPatch &, TrackData &td)
Overridable function to handle the particle hitting a.
A patch is a list of labels that address the faces in the global face list.
const vector calcVelocity(TrackData &td, const scalar dt, const label celli, const scalar Re, const scalar mu, const scalar mass, const vector &Su, vector &dUTrans, scalar &Spu) const
Calculate new particle velocity.
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.
Templated base class for dsmc cloud.
scalar Re(const vector &U, const scalar d, const scalar rhoc, const scalar muc) const
Reynolds number.
scalar areaS() const
Particle surface area.
const dictionary & dict() const
Return const access to the constant properties dictionary.