33 template<
class CloudType>
36 atomisationModel_.reset
40 this->subModelProperties(),
49 this->subModelProperties(),
56 template<
class CloudType>
62 CloudType::cloudReset(c);
71 template<
class CloudType>
74 const word& cloudName,
82 CloudType(cloudName, rho, U, g, carrierThermo,
false),
83 cloudCopyPtr_(
nullptr),
84 atomisationModel_(
nullptr),
85 breakupModel_(
nullptr)
92 this->deleteLostParticles();
95 if (this->
solution().resetSourcesOnStartup())
97 CloudType::resetSourceTerms();
102 template<
class CloudType>
110 cloudCopyPtr_(
nullptr),
116 template<
class CloudType>
125 cloudCopyPtr_(
nullptr),
126 atomisationModel_(
nullptr),
127 breakupModel_(
nullptr)
133 template<
class CloudType>
140 template<
class CloudType>
144 const scalar lagrangianDt
147 CloudType::setParcelThermoProperties(parcel, lagrangianDt);
153 const scalar pc = this->
p()[parcel.cell()];
156 parcel.Cp() = liqMix.
Cp(pc, parcel.T(), X);
157 parcel.rho() = liqMix.
rho(pc, parcel.T(), X);
158 parcel.sigma() = liqMix.
sigma(pc, parcel.T(), X);
159 parcel.mu() = liqMix.
mu(pc, parcel.T(), X);
163 template<
class CloudType>
167 const scalar lagrangianDt,
168 const bool fullyDescribed
171 CloudType::checkParcelProperties(parcel, lagrangianDt, fullyDescribed);
174 parcel.position0() = parcel.position();
175 parcel.d0() = parcel.d();
177 parcel.y() = breakup().y0();
178 parcel.yDot() = breakup().yDot0();
180 parcel.liquidCore() = atomisation().initLiquidCore();
184 template<
class CloudType>
197 template<
class CloudType>
200 cloudReset(cloudCopyPtr_());
201 cloudCopyPtr_.clear();
205 template<
class CloudType>
210 typename parcelType::trackingData td(*
this);
212 this->
solve(*
this, td);
217 template<
class CloudType>
221 scalar d32 = 1.0e+6*this->Dij(3, 2);
222 scalar d10 = 1.0e+6*this->Dij(1, 0);
223 scalar dMax = 1.0e+6*this->Dmax();
224 scalar pen = this->penetration(0.95);
226 Info <<
" D10, D32, Dmax (mu) = " << d10 <<
", " << d32
227 <<
", " << dMax <<
nl 228 <<
" Liquid penetration 95% mass (m) = " << pen <<
endl;
scalar Cp(const scalar p, const scalar T, const scalarField &X) const
Calculate the mixture heat capacity [J/kg/K].
autoPtr< CompressibleMomentumTransportModel > New(const volScalarField &rho, const volVectorField &U, const surfaceScalarField &phi, const viscosity &viscosity)
DSMCCloud< dsmcParcel > CloudType
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.
void storeState()
Store the current cloud state.
basicSpecieMixture & composition
void restoreState()
Reset the current cloud to the previously stored state.
Ostream & endl(Ostream &os)
Add newline and flush stream.
void setModels()
Set cloud sub-models.
Templated atomisation model class.
void setParcelThermoProperties(parcelType &parcel, const scalar lagrangianDt)
Set parcel thermo properties.
SprayCloud(const word &cloudName, const volScalarField &rho, const volVectorField &U, const dimensionedVector &g, const fluidThermo &carrierThermo, bool readFields=true)
Construct given carrier gas fields.
scalar mu(const scalar p, const scalar T, const scalarField &X) const
Calculate the mixture viscosity [Pa s].
virtual ~SprayCloud()
Destructor.
scalar rho(const scalar p, const scalar T, const scalarField &X) const
Calculate the mixture density [kg/m^3].
void checkParcelProperties(parcelType &parcel, const scalar lagrangianDt, const bool fullyDescribed)
Check parcel properties.
scalarField X(const scalarField &Y) const
Returns the mole fractions corresponding to the given mass fractions.
A class for handling words, derived from string.
Base-class for fluid thermodynamic properties.
scalar sigma(const scalar p, const scalar T, const scalarField &X) const
Estimate mixture surface tension [N/m].
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.
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.
autoPtr< AtomisationModel< SprayCloud< CloudType > > > atomisationModel_
Atomisation model.