43#ifndef CollidingParcel_H
44#define CollidingParcel_H
61template<
class ParcelType>
66template<
class ParcelType>
77template<
class ParcelType>
91 public ParcelType::constantProperties
161 +
" (angularMomentumx angularMomentumy angularMomentumz)"
162 +
" (torquex torquey torquez)"
163 +
" collisionRecordsPairAccessed"
164 +
" collisionRecordsPairOrigProcOfOther"
165 +
" collisionRecordsPairOrigIdOfOther"
166 +
" (collisionRecordsPairData)"
167 +
" collisionRecordsWallAccessed"
168 +
" collisionRecordsWallPRel"
169 +
" (collisionRecordsWallData)"
182 const label tetFacei,
201 const label tetFacei,
204 const scalar nParticle0,
206 const scalar dTarget0,
209 const vector& angularMomentum0,
211 const typename ParcelType::constantProperties& constProps
220 bool newFormat =
true
269 inline const vector&
f()
const;
299 template<
class TrackCloudType>
302 TrackCloudType&
cloud,
304 const scalar trackTime
319 template<
class CloudType>
323 template<
class CloudType>
336 template<
class CloudType>
340 template<
class CloudType>
346 friend Ostream& operator<< <ParcelType>
Class to hold thermo particle constant properties.
scalar youngsModulus() const
Return const access to Young's Modulus.
scalar poissonsRatio() const
Return const access to Poisson's ratio.
constantProperties()
Null constructor.
Factory class to read-construct particles used for.
iNew(const polyMesh &mesh)
autoPtr< CollidingParcel< ParcelType > > operator()(Istream &is) const
Wrapper around kinematic parcel types to add collision modelling.
virtual void transformProperties(const tensor &T)
Transform the physical properties of the particle.
virtual autoPtr< particle > clone(const polyMesh &mesh) const
Construct and return a (basic particle) clone.
CollidingParcel(const CollidingParcel &p)
Construct as a copy.
static void writeObjects(const CloudType &c, objectRegistry &obr)
Write particle fields as objects into the obr registry.
const vector & angularMomentum() const
Return const access to angular momentum.
virtual autoPtr< particle > clone() const
Construct and return a (basic particle) clone.
static const std::size_t sizeofFields
Size in bytes of the fields.
vector f_
Force on particle due to collisions [N].
AddToPropertyList(ParcelType, " (fx fy fz)"+" (angularMomentumx angularMomentumy angularMomentumz)"+" (torquex torquey torquez)"+" collisionRecordsPairAccessed"+" collisionRecordsPairOrigProcOfOther"+" collisionRecordsPairOrigIdOfOther"+" (collisionRecordsPairData)"+" collisionRecordsWallAccessed"+" collisionRecordsWallPRel"+" (collisionRecordsWallData)")
String representation of properties.
ParcelType::trackingData trackingData
Use base tracking data.
static void readObjects(CloudType &c, const objectRegistry &obr)
Read particle fields as objects from the obr registry.
vector omega() const
Particle angular velocity.
const vector & f() const
Return const access to force.
collisionRecordList collisionRecords_
Particle collision records.
static void writeFields(const CloudType &c)
Write.
const vector & torque() const
Return const access to torque.
void writeProperties(Ostream &os, const wordRes &filters, const word &delim, const bool namesOnly) const
Write individual parcel properties to stream.
CollidingParcel(const CollidingParcel &p, const polyMesh &mesh)
Construct as a copy.
bool move(TrackCloudType &cloud, trackingData &td, const scalar trackTime)
Move the parcel.
TypeName("CollidingParcel")
Runtime type information.
vector angularMomentum_
Angular momentum of Parcel in global reference frame [kg m2/s].
const collisionRecordList & collisionRecords() const
Return const access to the collision records.
static void readFields(CloudType &c)
Read.
vector torque_
Torque on particle due to collisions in global.
A Field of objects of type <T> with automated input and output using a compact storage....
Templated base class for dsmc cloud.
An Istream is an abstract base class for all input systems (streams, files, token lists etc)....
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
Pointer management similar to std::unique_ptr, with some additional methods and type checking.
A cloud is a registry collection of lagrangian particles.
Class for demand-driven dictionary entries.
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Class used to pass data into container.
Registry of regIOobjects.
Mesh consisting of general polyhedral cells.
A List of wordRe with additional matching capabilities.
A class for handling words, derived from Foam::string.
PtrList< coordinateSystem > coordinates(solidRegions.size())
OBJstream os(runTime.globalPath()/outputName)
vectorFieldCompactIOField pairDataFieldCompactIOField
CollisionRecordList< vector, vector > collisionRecordList
vectorFieldCompactIOField wallDataFieldCompactIOField
#define AddToPropertyList(ParcelType, str)
Add to existing static 'propertyList' for particle properties.
const volScalarField & cp
#define TypeName(TypeNameString)
Declare a ClassName() with extra virtual type info.