34 template<
class CloudType>
37 atomisationModel_.reset
41 this->subModelProperties(),
50 this->subModelProperties(),
57 template<
class CloudType>
63 CloudType::cloudReset(
c);
65 atomisationModel_.reset(
c.atomisationModel_.ptr());
66 breakupModel_.reset(
c.breakupModel_.ptr());
72 template<
class CloudType>
84 cloudCopyPtr_(nullptr),
85 atomisationModel_(nullptr),
86 breakupModel_(nullptr)
96 if (this->
solution().resetSourcesOnStartup())
98 CloudType::resetSourceTerms();
103 template<
class CloudType>
111 cloudCopyPtr_(nullptr),
112 atomisationModel_(
c.atomisationModel_->
clone()),
113 breakupModel_(
c.breakupModel_->
clone())
117 template<
class CloudType>
126 cloudCopyPtr_(nullptr),
127 atomisationModel_(nullptr),
128 breakupModel_(nullptr)
134 template<
class CloudType>
141 template<
class CloudType>
147 CloudType::setParcelThermoProperties(parcel);
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 label injectori
170 CloudType::checkParcelProperties(parcel, injectori);
173 parcel.d0() = parcel.d();
174 parcel.mass0() = parcel.mass();
175 parcel.position0() = parcel.position(this->mesh());
177 parcel.y() = breakup().y0();
178 parcel.yDot() = breakup().yDot0();
180 parcel.liquidCore() = atomisation().initLiquidCore();
182 parcel.injector() = injectori;
186 template<
class CloudType>
199 template<
class CloudType>
202 cloudReset(cloudCopyPtr_());
203 cloudCopyPtr_.clear();
207 template<
class CloudType>
212 typename parcelType::trackingData td(*
this);
214 this->
solve(*
this, td);
219 template<
class CloudType>
223 scalar d32 = 1.0e+6*this->Dij(3, 2);
224 scalar d10 = 1.0e+6*this->Dij(1, 0);
225 scalar dMax = 1.0e+6*
max(scalar(0), this->Dmax());
226 scalar pen = this->penetration(0.95);
228 Info<<
" D10, D32, Dmax (mu) = " << d10 <<
", " << d32
229 <<
", " << dMax <<
nl
230 <<
" Liquid penetration 95% mass (m) = " << pen <<
endl;
Templated atomisation model class.
Templated break-up model class.
void deleteLostParticles()
Remove lost particles from cloud and delete.
Templated base class for dsmc cloud.
ParcelType parcelType
Type of parcel the cloud was instantiated for.
void info() const
Print cloud information.
Generic GeometricField class.
Templated base class for spray cloud.
virtual ~SprayCloud()
Destructor.
void setModels()
Set cloud sub-models.
void storeState()
Store the current cloud state.
void cloudReset(SprayCloud< CloudType > &c)
Reset state of cloud.
void evolve()
Evolve the spray (inject, move)
SprayCloud(const word &cloudName, const volScalarField &rho, const volVectorField &U, const dimensionedVector &g, const fluidThermo &carrierThermo, bool readFields=true)
Construct given carrier gas fields.
void info()
Print cloud information.
void restoreState()
Reset the current cloud to the previously stored state.
void checkParcelProperties(parcelType &parcel, const label injectori)
Check parcel properties.
void setParcelThermoProperties(parcelType &parcel)
Set parcel thermo properties.
Base-class for fluid thermodynamic properties.
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.
A class for handling words, derived from string.
autoPtr< CompressibleMomentumTransportModel > New(const volScalarField &rho, const volVectorField &U, const surfaceScalarField &phi, const viscosity &viscosity)
const dimensionedScalar c
Speed of light in a vacuum.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
Ostream & endl(Ostream &os)
Add newline and flush stream.
word name(const bool)
Return a word representation of a bool.
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.
layerAndWeight max(const layerAndWeight &a, const layerAndWeight &b)
SolverPerformance< Type > solve(fvMatrix< Type > &, const word &)
Solve returning the solution statistics given convergence tolerance.
PtrList< volScalarField > & Y
const word cloudName(propsDict.lookup("cloudName"))