36 template<
class CloudType>
39 devolatilisationModel_.reset
43 this->subModelProperties(),
48 surfaceReactionModel_.reset
52 this->subModelProperties(),
59 template<
class CloudType>
65 CloudType::cloudReset(
c);
67 devolatilisationModel_.reset(
c.devolatilisationModel_.ptr());
68 surfaceReactionModel_.reset(
c.surfaceReactionModel_.ptr());
70 dMassDevolatilisation_ =
c.dMassDevolatilisation_;
71 dMassSurfaceReaction_ =
c.dMassSurfaceReaction_;
77 template<
class CloudType>
90 cloudCopyPtr_(nullptr),
91 constProps_(this->particleProperties()),
92 devolatilisationModel_(nullptr),
93 surfaceReactionModel_(nullptr),
94 dMassDevolatilisation_(0.0),
95 dMassSurfaceReaction_(0.0)
104 this->deleteLostParticles();
108 if (this->solution().resetSourcesOnStartup())
115 template<
class CloudType>
118 ReactingMultiphaseCloud<CloudType>&
c,
123 reactingMultiphaseCloud(),
124 cloudCopyPtr_(nullptr),
125 constProps_(
c.constProps_),
126 devolatilisationModel_(
c.devolatilisationModel_->clone()),
127 surfaceReactionModel_(
c.surfaceReactionModel_->clone()),
128 dMassDevolatilisation_(
c.dMassDevolatilisation_),
129 dMassSurfaceReaction_(
c.dMassSurfaceReaction_)
133 template<
class CloudType>
143 cloudCopyPtr_(nullptr),
145 devolatilisationModel_(nullptr),
146 surfaceReactionModel_(nullptr),
147 dMassDevolatilisation_(0.0),
148 dMassSurfaceReaction_(0.0)
154 template<
class CloudType>
161 template<
class CloudType>
165 const scalar lagrangianDt
168 CloudType::setParcelThermoProperties(parcel, lagrangianDt);
175 parcel.YLiquid() = this->
composition().Y0(idLiquid);
181 if (constProps_.rho0() == -1)
187 this->
composition().thermo().thermo().p()[parcel.cell()];
188 const scalar
T0 = constProps_.T0();
195 template<
class CloudType>
199 const scalar lagrangianDt,
200 const bool fullyDescribed
203 CloudType::checkParcelProperties(parcel, lagrangianDt, fullyDescribed);
211 this->checkSuppliedComposition
217 this->checkSuppliedComposition
223 this->checkSuppliedComposition
233 template<
class CloudType>
238 static_cast<ReactingMultiphaseCloud<CloudType>*
> 240 clone(this->
name() +
"Copy").ptr()
246 template<
class CloudType>
249 cloudReset(cloudCopyPtr_());
250 cloudCopyPtr_.clear();
254 template<
class CloudType>
257 CloudType::resetSourceTerms();
261 template<
class CloudType>
266 typename parcelType::trackingData td(*
this);
273 template<
class CloudType>
276 const mapPolyMesh& mapper
285 template<
class CloudType>
290 this->devolatilisation().info();
291 this->surfaceReaction().info();
295 template<
class CloudType>
298 if (this->compositionModel_)
DSMCCloud< dsmcParcel > CloudType
void setModels()
Set cloud sub-models.
basicSpecieMixture & composition
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.
Templated base class for multiphase reacting cloud.
void cloudReset(ReactingMultiphaseCloud< CloudType > &c)
Reset state of cloud.
word name(const expressions::valueTypeCode typeCode)
A word representation of a valueTypeCode. Empty for INVALID.
void restoreState()
Reset the current cloud to the previously stored state.
virtual void autoMap(const mapPolyMesh &)
Remap the cells of particles corresponding to the.
const word cloudName(propsDict.get< word >("cloud"))
A class for handling words, derived from Foam::string.
void resetSourceTerms()
Reset the cloud source terms.
Thermo package for (S)olids (L)iquids and (G)ases Takes reference to thermo package, and provides:
Base cloud calls templated on particle type.
Basic thermodynamics type based on the use of fitting functions for cp, h, s obtained from the templa...
void writeFields(const fvMesh &mesh, const wordHashSet &selectedFields, const bool writeFaceFields)
void storeState()
Store the current cloud state.
const uniformDimensionedVectorField & g
Virtual abstract base class for templated reactingMultiphaseCloud.
virtual ~ReactingMultiphaseCloud()
Destructor.
void setParcelThermoProperties(parcelType &parcel, const scalar lagrangianDt)
Set parcel thermo properties.
virtual void writeFields() const
Write the field data for the cloud.
Mesh data needed to do the Finite Volume discretisation.
const dimensionedScalar c
Speed of light in a vacuum.
void checkParcelProperties(parcelType &parcel, const scalar lagrangianDt, const bool fullyDescribed)
Check parcel properties.
Templated devolatilisation model class.
Selector class for relaxation factors, solver type and solution.
void readFields(const typename GeoFieldType::Mesh &mesh, const IOobjectList &objects, const wordHashSet &selectedFields, LIFOStack< regIOobject *> &storedObjects)
Read the selected GeometricFields of the templated type.
void info()
Print cloud information.
void evolve()
Evolve the cloud.
Templated surface reaction model class.
Templated base class for dsmc cloud.
const volScalarField & p0