41#ifndef CollidingCloud_H
42#define CollidingCloud_H
58template<
class CloudType>
65template<
class CloudType>
95 CollidingCloud(
const CollidingCloud&) =
delete;
98 void operator=(
const CollidingCloud&) =
delete;
106 typename parcelType::constantProperties
constProps_;
125 template<
class TrackCloudType>
128 TrackCloudType&
cloud,
129 typename parcelType::trackingData&
td,
134 void cloudReset(CollidingCloud<CloudType>& c);
155 CollidingCloud<CloudType>& c,
164 const CollidingCloud<CloudType>& c
172 new CollidingCloud(*
this,
name)
195 inline const CollidingCloud&
cloudCopy()
const;
198 inline const typename parcelType::constantProperties&
230 template<
class TrackCloudType>
233 TrackCloudType&
cloud,
234 typename parcelType::trackingData&
td
ParticleType particleType
Adds coolisions to kinematic clouds.
const parcelType::constantProperties & constProps() const
Return the constant properties.
CollisionModel< CollidingCloud< CloudType > > & collision()
Return reference to the collision model.
void setModels()
Set cloud sub-models.
void motion(TrackCloudType &cloud, typename parcelType::trackingData &td)
Particle motion.
void storeState()
Store the current cloud state.
autoPtr< CollisionModel< CollidingCloud< KinematicCloud< Cloud< basicKinematicCollidingParcel > > > > > collisionModel_
scalar rotationalKineticEnergyOfSystem() const
Total rotational kinetic energy in the system.
void cloudReset(CollidingCloud< CloudType > &c)
Reset state of cloud.
void moveCollide(TrackCloudType &cloud, typename parcelType::trackingData &td, const scalar deltaT)
Move-collide particles.
KinematicCloud< Cloud< basicKinematicCollidingParcel > >::particleType parcelType
const CollidingCloud & cloudCopy() const
Return a reference to the cloud copy.
KinematicCloud< Cloud< basicKinematicCollidingParcel > > cloudType
CollidingCloud(const word &cloudName, const volScalarField &rho, const volVectorField &U, const volScalarField &mu, const dimensionedVector &g, bool readFields=true)
Construct given carrier gas fields.
virtual autoPtr< Cloud< parcelType > > clone(const word &name)
Construct and return clone based on (this) with new name.
virtual autoPtr< Cloud< parcelType > > cloneBare(const word &name) const
Construct and return bare clone based on (this) with new name.
void evolve()
Evolve the cloud.
parcelType::constantProperties constProps_
CollidingCloud(const fvMesh &mesh, const word &name, const CollidingCloud< CloudType > &c)
Copy constructor with new name - creates bare cloud.
CollidingCloud< KinematicCloud< Cloud< basicKinematicCollidingParcel > > > collidingCloudType
void info()
Print cloud information.
void restoreState()
Reset the current cloud to the previously stored state.
CollidingCloud(CollidingCloud< CloudType > &c, const word &name)
Copy constructor with new name.
virtual ~CollidingCloud()
Destructor.
const CollisionModel< CollidingCloud< CloudType > > & collision() const
Return const access to the collision model.
Templated collision model class.
const word & cloudName() const
const fvMesh & mesh() const
autoPtr< IOobject > clone() const
Clone.
const volVectorField & U() const
Return carrier gas velocity.
const volScalarField & rho() const
Return carrier gas density.
const dimensionedVector & g() const
Gravity.
const fvMesh & mesh() const
Return reference to the mesh.
const volScalarField & mu() const
Return carrier gas dynamic viscosity.
Pointer management similar to std::unique_ptr, with some additional methods and type checking.
A cloud is a registry collection of lagrangian particles.
Mesh data needed to do the Finite Volume discretisation.
A class for handling words, derived from Foam::string.
wallPoints::trackData td(isBlockedFace, regionToBlockSize)
DSMCCloud< dsmcParcel > CloudType
GeometricField< vector, fvPatchField, volMesh > volVectorField
void readFields(const typename GeoFieldType::Mesh &mesh, const IOobjectList &objects, const NameMatchPredicate &selectedFields, DynamicList< regIOobject * > &storedObjects)
Read the selected GeometricFields of the templated type and store on the objectRegistry.
GeometricField< scalar, fvPatchField, volMesh > volScalarField
word name(const expressions::valueTypeCode typeCode)
A word representation of a valueTypeCode. Empty for expressions::valueTypeCode::INVALID.
dimensioned< vector > dimensionedVector
Dimensioned vector obtained from generic dimensioned type.