34template<
class CloudType>
41 this->subModelProperties(),
50 this->subModelProperties(),
57template<
class CloudType>
65 atomizationModel_.reset(c.atomizationModel_.ptr());
72template<
class CloudType>
73Foam::SprayCloud<CloudType>::SprayCloud
85 cloudCopyPtr_(nullptr),
86 averageParcelMass_(0.0),
87 atomizationModel_(nullptr),
88 breakupModel_(nullptr)
94 averageParcelMass_ = this->injectors().averageParcelMass();
102 Info <<
"Average parcel mass: " << averageParcelMass_ <<
endl;
105 if (this->solution().resetSourcesOnStartup())
107 CloudType::resetSourceTerms();
112template<
class CloudType>
113Foam::SprayCloud<CloudType>::SprayCloud
115 SprayCloud<CloudType>& c,
121 cloudCopyPtr_(nullptr),
122 averageParcelMass_(c.averageParcelMass_),
128template<
class CloudType>
129Foam::SprayCloud<CloudType>::SprayCloud
133 const SprayCloud<CloudType>& c
138 cloudCopyPtr_(nullptr),
139 averageParcelMass_(0.0),
147template<
class CloudType>
154template<
class CloudType>
158 const scalar lagrangianDt
161 CloudType::setParcelThermoProperties(parcel, lagrangianDt);
167 const scalar pc = this->
p()[parcel.cell()];
170 parcel.Cp() = liqMix.
Cp(pc, parcel.T(), X);
171 parcel.rho() = liqMix.
rho(pc, parcel.T(), X);
172 parcel.sigma() = liqMix.
sigma(pc, parcel.T(), X);
173 parcel.mu() = liqMix.
mu(pc, parcel.T(), X);
177template<
class CloudType>
181 const scalar lagrangianDt,
182 const bool fullyDescribed
185 CloudType::checkParcelProperties(parcel, lagrangianDt, fullyDescribed);
188 parcel.position0() = parcel.position();
189 parcel.d0() = parcel.d();
191 parcel.y() = breakup().y0();
194 parcel.liquidCore() =
atomization().initLiquidCore();
198template<
class CloudType>
203 static_cast<SprayCloud<CloudType>*
>
211template<
class CloudType>
215 cloudCopyPtr_.clear();
219template<
class CloudType>
224 typename parcelType::trackingData
td(*
this);
231template<
class CloudType>
235 scalar d32 = 1.0e+6*this->Dij(3, 2);
236 scalar d10 = 1.0e+6*this->Dij(1, 0);
237 scalar dMax = 1.0e+6*this->Dmax();
238 scalar pen = this->penetration(0.95);
240 Info <<
" D10, D32, Dmax (mu) = " << d10 <<
", " << d32
241 <<
", " << dMax <<
nl
242 <<
" Liquid penetration 95% mass (m) = " << pen <<
endl;
const word cloudName(propsDict.get< word >("cloud"))
const uniformDimensionedVectorField & g
Templated atomization model class.
Templated break-up model class.
void deleteLostParticles()
Remove lost particles from cloud and delete.
void cloudReset(const Cloud< ParticleType > &c)
Reset the particles.
const word & cloudName() const
const fvMesh & mesh() const
Thermo package for (S)olids (L)iquids and (G)ases Takes reference to thermo package,...
Templated base class for spray cloud.
autoPtr< BreakupModel< SprayCloud< CloudType > > > breakupModel_
Break-up model.
virtual ~SprayCloud()
Destructor.
void setModels()
Set cloud sub-models.
const BreakupModel< SprayCloud< CloudType > > & breakup() const
Return const-access to the breakup model.
void storeState()
Store the current cloud state.
autoPtr< AtomizationModel< SprayCloud< CloudType > > > atomizationModel_
Atomization model.
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.
CloudType::particleType parcelType
Type of parcel the cloud was instantiated for.
const AtomizationModel< SprayCloud< CloudType > > & atomization() const
Return const-access to the atomization model.
virtual autoPtr< Cloud< parcelType > > clone(const word &name)
Construct and return clone based on (this) with new name.
void evolve()
Evolve the spray (inject, move).
void info()
Print cloud information.
void restoreState()
Reset the current cloud to the previously stored state.
scalar penetration(const scalar fraction) const
Penetration for fraction [0-1] of the current total mass.
Mesh data needed to do the Finite Volume discretisation.
scalar mu(const scalar p, const scalar T, const scalarField &X) const
Calculate the mixture viscosity [Pa s].
scalar sigma(const scalar p, const scalar T, const scalarField &X) const
Estimate mixture surface tension [N/m].
scalarField X(const scalarField &Y) const
Returns the mole fractions corresponding to the given mass fractions.
scalar Cp(const scalar p, const scalar T, const scalarField &X) const
Calculate the mixture heat capacity [J/(kg K)].
scalar rho(const scalar p, const scalar T, const scalarField &X) const
Calculate the mixture density [kg/m^3].
Selector class for relaxation factors, solver type and solution.
Virtual abstract base class for templated SprayCloud.
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.
basicSpecieMixture & composition
PtrList< volScalarField > & Y
wallPoints::trackData td(isBlockedFace, regionToBlockSize)
tmp< DimensionedField< TypeR, GeoMesh > > New(const tmp< DimensionedField< TypeR, GeoMesh > > &tf1, const word &name, const dimensionSet &dimensions, const bool initCopy=false)
Global function forwards to reuseTmpDimensionedField::New.
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
messageStream Info
Information stream (stdout output on master, null elsewhere).
Field< scalar > scalarField
Specialisation of Field<T> for scalar.
Ostream & endl(Ostream &os)
Add newline and flush stream.
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.
constexpr char nl
The newline '\n' character (0x0a).