Go to the documentation of this file.
50 #ifndef KinematicParcel_H
51 #define KinematicParcel_H
66 template<
class ParcelType>
71 template<
class ParcelType>
82 template<
class ParcelType>
90 static label maxTrackAttempts;
150 inline scalar
rhoMin()
const;
153 inline scalar
rho0()
const;
162 public ParcelType::trackingData
215 template <
class TrackCloudType>
218 const TrackCloudType&
cloud,
238 inline scalar
rhoc()
const;
241 inline scalar&
rhoc();
250 inline scalar
muc()
const;
253 inline scalar&
muc();
256 inline const vector&
g()
const;
307 template<
class TrackCloudType>
310 TrackCloudType&
cloud,
342 +
" (UTurbx UTurby UTurbz)"
355 const label tetFacei,
374 const label tetFacei,
377 const scalar nParticle0,
379 const scalar dTarget0,
390 bool newFormat =
true
439 inline bool active()
const;
442 inline label
typeId()
const;
448 inline scalar
d()
const;
454 inline const vector&
U()
const;
457 inline scalar
rho()
const;
460 inline scalar
age()
const;
463 inline scalar
tTurb()
const;
472 inline void active(
const bool state);
490 inline scalar&
rho();
493 inline scalar&
age();
496 inline scalar&
tTurb();
505 inline scalar
massCell(
const trackingData& td)
const;
508 inline scalar
mass()
const;
514 inline scalar
volume()
const;
517 inline static scalar
volume(
const scalar
d);
520 inline scalar
areaP()
const;
523 inline static scalar
areaP(
const scalar
d);
526 inline scalar
areaS()
const;
529 inline static scalar
areaS(
const scalar
d);
532 inline scalar
Re(
const trackingData& td)
const;
535 inline static scalar
Re
547 const trackingData& td,
552 inline static scalar
We
564 const trackingData& td,
569 inline static scalar
Eo
583 template<
class TrackCloudType>
588 template<
class TrackCloudType>
591 TrackCloudType&
cloud,
597 template<
class TrackCloudType>
600 TrackCloudType&
cloud,
606 template<
class TrackCloudType>
609 TrackCloudType&
cloud,
618 template<
class TrackCloudType>
621 TrackCloudType&
cloud,
623 const scalar trackTime
631 template<
class TrackCloudType>
636 template<
class TrackCloudType>
640 template<
class TrackCloudType>
655 template<
class TrackCloudType>
659 template<
class TrackCloudType>
668 const bool namesOnly =
false
672 template<
class CloudType>
676 template<
class CloudType>
682 friend Ostream& operator<< <ParcelType>
Factory class to read-construct particles used for.
label parcelTypeId() const
Return const access to the parcel type id.
label typeId() const
Return const access to type id.
scalar tTurb_
Time spent in turbulent eddy [s].
const vector & Uc() const
Return the continuous phase velocity.
const vector & UTurb() const
Return const access to turbulent velocity fluctuation.
void cellValueSourceCorrection(TrackCloudType &cloud, trackingData &td, const scalar dt)
Correct cell values using latest transfer information.
A class for handling words, derived from Foam::string.
const dimensionedScalar mu
Atomic mass unit.
scalar Re(const trackingData &td) const
Reynolds number.
scalar nParticle() const
Return const access to number of particles.
scalar dTarget_
Target diameter [m].
const vector & U() const
Return const access to velocity.
scalar tTurb() const
Return const access to time spent in turbulent eddy.
scalar dTarget() const
Return const access to target diameter.
void calcDispersion(TrackCloudType &cloud, trackingData &td, const scalar dt)
Apply dispersion to the carrier phase velocity and update.
void hitWallPatch(TrackCloudType &cloud, trackingData &td)
Overridable function to handle the particle hitting a wallPatch.
scalar rho0() const
Return const access to the particle density.
scalar Eo(const trackingData &td, const scalar sigma) const
Eotvos number.
virtual autoPtr< particle > clone(const polyMesh &mesh) const
Construct and return a (basic particle) clone.
trackPart part() const
Return the part of the tracking operation taking place.
Mesh consisting of general polyhedral cells.
Registry of regIOobjects.
trackingData(const TrackCloudType &cloud, trackPart part=tpLinearTrack)
Construct from components.
static void writeFields(const TrackCloudType &c)
Write.
scalar age() const
Return const access to the age.
void calc(TrackCloudType &cloud, trackingData &td, const scalar dt)
Update parcel properties over the time interval.
autoPtr< KinematicParcel< ParcelType > > operator()(Istream &is) const
An Istream is an abstract base class for all input systems (streams, files, token lists etc)....
KinematicParcel(const polyMesh &mesh, const barycentric &coordinates, const label celli, const label tetFacei, const label tetPti)
Construct from mesh, coordinates and topology.
vector UTurb_
Turbulent velocity fluctuation [m/s].
static void readObjects(CloudType &c, const objectRegistry &obr)
Read particle fields as objects from the obr registry.
PtrList< coordinateSystem > coordinates(solidRegions.size())
void T(FieldField< Field, Type > &f1, const FieldField< Field, Type > &f2)
scalar momentOfInertia() const
Particle moment of inertia around diameter axis.
scalar volume() const
Particle volume.
scalar minParcelMass() const
Return const access to the minimum parcel mass.
scalar areaP() const
Particle projected area.
Templated base class for dsmc cloud.
const interpolation< vector > & UInterp() const
vector U_
Velocity of Parcel [m/s].
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
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.
scalar nParticle_
Number of particles in Parcel.
const uniformDimensionedVectorField & g
scalar rho_
Density [kg/m3].
static void writeObjects(const CloudType &c, objectRegistry &obr)
Write particle fields as objects into the obr registry.
static const std::size_t sizeofFields
Size in bytes of the fields.
bool active() const
Return const access to active flag.
label typeId_
Parcel type id.
scalar areaS() const
Particle surface area.
void hitProcessorPatch(TrackCloudType &cloud, trackingData &td)
Overridable function to handle the particle hitting a.
scalar rhoMin() const
Return const access to the minimum density.
Pointer management similar to std::unique_ptr, with some additional methods and type checking.
A cloud is a registry collection of lagrangian particles.
const interpolation< scalar > & muInterp() const
bool move(TrackCloudType &cloud, trackingData &td, const scalar trackTime)
Move the parcel.
bool cp(const fileName &src, const fileName &dst, const bool followLink=true)
Copy the source to the destination (recursively if necessary).
scalar rhoc() const
Return the continuous phase density.
scalar muc() const
Return the continuous phase viscosity.
static void readFields(TrackCloudType &c)
Read.
A List of wordRe with additional matching capabilities.
Kinematic parcel class with rotational motion (as spherical particles only) and one/two-way coupling ...
TypeName("KinematicParcel")
Runtime type information.
const dictionary & dict() const
Return const access to the constant properties dictionary.
virtual void transformProperties(const tensor &T)
Transform the physical properties of the particle.
const dimensionedScalar c
Speed of light in a vacuum.
scalar d() const
Return const access to diameter.
scalar rho() const
Return const access to density.
scalar massCell(const trackingData &td) const
Cell owner mass.
void writeProperties(Ostream &os, const wordRes &filters, const word &delim, const bool namesOnly=false) const
Write individual parcel properties to stream.
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
dimensionedScalar sigma("sigma", dimMass/sqr(dimTime), transportProperties)
void setCellValues(TrackCloudType &cloud, trackingData &td)
Set cell values.
const dictionary dict_
Constant properties dictionary.
virtual autoPtr< particle > clone() const
Construct and return a (basic particle) clone.
label active_
Active flag - tracking inactive when active = false.
AddToPropertyList(ParcelType, " active"+" typeId"+" nParticle"+" d"+" dTarget"+" (Ux Uy Uz)"+" rho"+" age"+" tTurb"+" (UTurbx UTurby UTurbz)")
String representation of properties.
constantProperties()
Null constructor.
scalar mass() const
Particle mass.
const interpolation< scalar > & rhoInterp() const
Class to hold kinematic particle constant properties.
iNew(const polyMesh &mesh)
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.