38#ifndef Foam_SprayCloud_H
39#define Foam_SprayCloud_H
59template<
class CloudType>
87 scalar averageParcelMass_;
93 SprayCloud(
const SprayCloud&) =
delete;
96 void operator=(
const SprayCloud&) =
delete;
143 SprayCloud(SprayCloud<CloudType>& c,
const word&
name);
150 const SprayCloud<CloudType>& c
159 new SprayCloud(*
this,
name)
168 new SprayCloud(this->
mesh(), name, *
this)
182 inline const SprayCloud&
cloudCopy()
const;
191 inline scalar
penetration(
const scalar fraction)
const;
217 const scalar lagrangianDt
224 const scalar lagrangianDt,
225 const bool fullyDescribed
const uniformDimensionedVectorField & g
Templated atomization model class.
Templated break-up model class.
ParticleType particleType
const word & cloudName() const
const fvMesh & mesh() const
autoPtr< IOobject > clone() const
Clone.
Thermo package for (S)olids (L)iquids and (G)ases Takes reference to thermo package,...
Templated base class for spray cloud.
autoPtr< BreakupModel< SprayCloud< ReactingCloud< ThermoCloud< KinematicCloud< Cloud< basicSprayParcel > > > > > > > breakupModel_
virtual ~SprayCloud()
Destructor.
void setModels()
Set cloud sub-models.
SprayCloud(SprayCloud< CloudType > &c, const word &name)
Copy constructor with new name.
const BreakupModel< SprayCloud< CloudType > > & breakup() const
Return const-access to the breakup model.
SprayCloud< ReactingCloud< ThermoCloud< KinematicCloud< Cloud< basicSprayParcel > > > > > sprayCloudType
void storeState()
Store the current cloud state.
AtomizationModel< SprayCloud< CloudType > > & atomization()
Return reference to the atomization model.
autoPtr< AtomizationModel< SprayCloud< ReactingCloud< ThermoCloud< KinematicCloud< Cloud< basicSprayParcel > > > > > > > atomizationModel_
void setParcelThermoProperties(parcelType &parcel, const scalar lagrangianDt)
Set parcel thermo properties.
void checkParcelProperties(parcelType &parcel, const scalar lagrangianDt, const bool fullyDescribed)
Check parcel properties.
void cloudReset(SprayCloud< CloudType > &c)
Reset state of cloud.
ReactingCloud< ThermoCloud< KinematicCloud< Cloud< basicSprayParcel > > > >::particleType parcelType
const AtomizationModel< SprayCloud< CloudType > > & atomization() const
Return const-access to the atomization model.
const SprayCloud & cloudCopy() const
Return a reference to the cloud copy.
ReactingCloud< ThermoCloud< KinematicCloud< Cloud< basicSprayParcel > > > > cloudType
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.
SprayCloud(const word &cloudName, const volScalarField &rho, const volVectorField &U, const dimensionedVector &g, const SLGThermo &thermo, bool readFields=true)
Construct given carrier gas fields.
void evolve()
Evolve the spray (inject, move).
void info()
Print cloud information.
void restoreState()
Reset the current cloud to the previously stored state.
SprayCloud(const fvMesh &mesh, const word &name, const SprayCloud< CloudType > &c)
Copy constructor with new name - creates bare cloud.
scalar penetration(const scalar fraction) const
Penetration for fraction [0-1] of the current total mass.
scalar averageParcelMass() const
Return const-access to the average parcel mass.
BreakupModel< SprayCloud< CloudType > > & breakup()
Return reference to the breakup model.
Pointer management similar to std::unique_ptr, with some additional methods and type checking.
Mesh data needed to do the Finite Volume discretisation.
sprayCloud()=default
Null constructor.
Basic thermodynamics type based on the use of fitting functions for cp, h, s obtained from the templa...
A class for handling words, derived from Foam::string.
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.