32 template<
class CloudType>
35 atomizationModel_.reset
39 this->subModelProperties(),
48 this->subModelProperties(),
55 template<
class CloudType>
61 CloudType::cloudReset(c);
70 template<
class CloudType>
73 const word& cloudName,
81 CloudType(cloudName, rho, U, g, thermo,
false),
84 averageParcelMass_(0.0),
85 atomizationModel_(NULL),
92 averageParcelMass_ = this->injectors().averageParcelMass();
99 Info <<
"Average parcel mass: " << averageParcelMass_ <<
endl;
102 if (this->
solution().resetSourcesOnStartup())
104 CloudType::resetSourceTerms();
109 template<
class CloudType>
119 averageParcelMass_(c.averageParcelMass_),
125 template<
class CloudType>
136 averageParcelMass_(0.0),
137 atomizationModel_(NULL),
144 template<
class CloudType>
151 template<
class CloudType>
155 const scalar lagrangianDt
158 CloudType::setParcelThermoProperties(parcel, lagrangianDt);
166 parcel.Cp() = liqMix.
Cp(parcel.pc(), parcel.T(), X);
167 parcel.rho() = liqMix.
rho(parcel.pc(), parcel.T(), X);
168 parcel.sigma() = liqMix.
sigma(parcel.pc(), parcel.T(), X);
169 parcel.mu() = liqMix.
mu(parcel.pc(), parcel.T(), X);
173 template<
class CloudType>
177 const scalar lagrangianDt,
178 const bool fullyDescribed
181 CloudType::checkParcelProperties(parcel, lagrangianDt, fullyDescribed);
184 parcel.position0() = parcel.position();
185 parcel.d0() = parcel.d();
187 parcel.y() = breakup().y0();
188 parcel.yDot() = breakup().yDot0();
190 parcel.liquidCore() = atomization().initLiquidCore();
194 template<
class CloudType>
201 clone(this->
name() +
"Copy").ptr()
207 template<
class CloudType>
210 cloudReset(cloudCopyPtr_());
211 cloudCopyPtr_.clear();
215 template<
class CloudType>
220 typename parcelType::template
221 TrackingData<SprayCloud<CloudType>> td(*
this);
228 template<
class CloudType>
232 scalar d32 = 1.0e+6*this->Dij(3, 2);
233 scalar d10 = 1.0e+6*this->Dij(1, 0);
234 scalar dMax = 1.0e+6*this->Dmax();
235 scalar pen = this->penetration(0.95);
237 Info <<
" D10, D32, Dmax (mu) = " << d10 <<
", " << d32
238 <<
", " << dMax <<
nl 239 <<
" Liquid penetration 95% mass (m) = " << pen <<
endl;
scalarField X(const scalarField &Y) const
Returns the mole fractions corresponding to the given mass fractions.
DSMCCloud< dsmcParcel > CloudType
void storeState()
Store the current cloud state.
basicMultiComponentMixture & composition
void restoreState()
Reset the current cloud to the previously stored state.
Templated atomization model class.
Ostream & endl(Ostream &os)
Add newline and flush stream.
scalar sigma(const scalar p, const scalar T, const scalarField &X) const
Estimate mixture surface tension [N/m].
void setModels()
Set cloud sub-models.
void setParcelThermoProperties(parcelType &parcel, const scalar lagrangianDt)
Set parcel thermo properties.
void readFields(const typename GeoFieldType::Mesh &mesh, const IOobjectList &objects, const HashSet< word > &selectedFields, LIFOStack< regIOobject * > &storedObjects)
Read the selected GeometricFields of the specified type.
tmp< DimensionedField< TypeR, GeoMesh > > New(const tmp< DimensionedField< TypeR, GeoMesh >> &tdf1, const word &name, const dimensionSet &dimensions)
virtual ~SprayCloud()
Destructor.
void checkParcelProperties(parcelType &parcel, const scalar lagrangianDt, const bool fullyDescribed)
Check parcel properties.
A class for handling words, derived from string.
scalar mu(const scalar p, const scalar T, const scalarField &X) const
Calculate the mixture viscosity [Pa s].
Thermo package for (S)olids (L)iquids and (G)ases Takes reference to thermo package, and provides:
scalar Cp(const scalar p, const scalar T, const scalarField &X) const
Calculate the mixture heat capacity [J/(kg K)].
ParcelType parcelType
Type of parcel the cloud was instantiated for.
Templated base class for spray cloud.
autoPtr< BreakupModel< SprayCloud< CloudType > > > breakupModel_
Break-up model.
void evolve()
Evolve the spray (inject, move)
word name(const complex &)
Return a string representation of a complex.
void info()
Print cloud information.
autoPtr< AtomizationModel< SprayCloud< CloudType > > > atomizationModel_
Atomization model.
PtrList< volScalarField > & Y
Mesh data needed to do the Finite Volume discretisation.
void cloudReset(SprayCloud< CloudType > &c)
Reset state of cloud.
Templated break-up model class.
Selector class for relaxation factors, solver type and solution.
Virtual abstract base class for templated SprayCloud.
scalar rho(const scalar p, const scalar T, const scalarField &X) const
Calculate the mixture density [kg/m^3].