36template<
class CloudType>
43 this->subModelProperties(),
52 this->subModelProperties(),
59template<
class CloudType>
67 devolatilisationModel_.reset(c.devolatilisationModel_.ptr());
68 surfaceReactionModel_.reset(c.surfaceReactionModel_.ptr());
70 dMassDevolatilisation_ = c.dMassDevolatilisation_;
77template<
class CloudType>
78Foam::ReactingMultiphaseCloud<CloudType>::ReactingMultiphaseCloud
90 cloudCopyPtr_(nullptr),
91 constProps_(this->particleProperties()),
92 devolatilisationModel_(nullptr),
93 surfaceReactionModel_(nullptr),
94 dMassDevolatilisation_(0.0),
95 dMassSurfaceReaction_(0.0)
103 parcelType::readFields(*
this, this->
composition());
108 if (this->solution().resetSourcesOnStartup())
115template<
class CloudType>
116Foam::ReactingMultiphaseCloud<CloudType>::ReactingMultiphaseCloud
118 ReactingMultiphaseCloud<CloudType>& c,
123 reactingMultiphaseCloud(),
124 cloudCopyPtr_(nullptr),
125 constProps_(c.constProps_),
126 devolatilisationModel_(c.devolatilisationModel_->clone()),
133template<
class CloudType>
134Foam::ReactingMultiphaseCloud<CloudType>::ReactingMultiphaseCloud
143 cloudCopyPtr_(nullptr),
145 devolatilisationModel_(nullptr),
146 surfaceReactionModel_(nullptr),
147 dMassDevolatilisation_(0.0),
154template<
class CloudType>
161template<
class CloudType>
165 const scalar lagrangianDt
168 CloudType::setParcelThermoProperties(parcel, lagrangianDt);
175 parcel.YLiquid() = this->
composition().Y0(idLiquid);
187 this->
composition().thermo().thermo().p()[parcel.cell()];
195template<
class CloudType>
199 const scalar lagrangianDt,
200 const bool fullyDescribed
203 CloudType::checkParcelProperties(parcel, lagrangianDt, fullyDescribed);
211 this->checkSuppliedComposition
214 this->composition().Y0(idGas),
217 this->checkSuppliedComposition
220 this->composition().Y0(idLiquid),
223 this->checkSuppliedComposition
226 this->composition().Y0(idSolid),
233template<
class CloudType>
238 static_cast<ReactingMultiphaseCloud<CloudType>*
>
246template<
class CloudType>
250 cloudCopyPtr_.clear();
254template<
class CloudType>
257 CloudType::resetSourceTerms();
261template<
class CloudType>
266 typename parcelType::trackingData
td(*
this);
273template<
class CloudType>
276 const mapPolyMesh& mapper
285template<
class CloudType>
295template<
class CloudType>
298 if (this->compositionModel_)
const word cloudName(propsDict.get< word >("cloud"))
const uniformDimensionedVectorField & g
void deleteLostParticles()
Remove lost particles from cloud and delete.
virtual void writeFields() const
Write the field data for the cloud of particles Dummy at.
void autoMap(const mapPolyMesh &)
Remap the cells of particles corresponding to the.
void cloudReset(const Cloud< ParticleType > &c)
Reset the particles.
const word & cloudName() const
const IOdictionary & particleProperties() const
const fvMesh & mesh() const
Templated devolatilisation model class.
Templated base class for multiphase reacting cloud.
const DevolatilisationModel< ReactingMultiphaseCloud< CloudType > > & devolatilisation() const
Return const access to devolatilisation model.
autoPtr< SurfaceReactionModel< ReactingMultiphaseCloud< CloudType > > > surfaceReactionModel_
Surface reaction model.
void setModels()
Set cloud sub-models.
void storeState()
Store the current cloud state.
void setParcelThermoProperties(parcelType &parcel, const scalar lagrangianDt)
Set parcel thermo properties.
void checkParcelProperties(parcelType &parcel, const scalar lagrangianDt, const bool fullyDescribed)
Check parcel properties.
autoPtr< DevolatilisationModel< ReactingMultiphaseCloud< CloudType > > > devolatilisationModel_
Devolatilisation model.
scalar dMassSurfaceReaction_
Total mass transferred to continuous phase via surface.
scalar dMassDevolatilisation_
Total mass transferred to continuous phase via devolatilisation.
CloudType::particleType parcelType
Type of parcel the cloud was instantiated for.
virtual void writeFields() const
Write the field data for the cloud.
virtual void autoMap(const mapPolyMesh &)
Remap the cells of particles corresponding to the.
virtual autoPtr< Cloud< parcelType > > clone(const word &name)
Construct and return clone based on (this) with new name.
void evolve()
Evolve the cloud.
parcelType::constantProperties constProps_
Parcel constant properties.
void info()
Print cloud information.
void restoreState()
Reset the current cloud to the previously stored state.
void cloudReset(ReactingMultiphaseCloud< CloudType > &c)
Reset state of cloud.
void resetSourceTerms()
Reset the cloud source terms.
const SurfaceReactionModel< ReactingMultiphaseCloud< CloudType > > & surfaceReaction() const
Return const access to reacting surface reaction model.
virtual ~ReactingMultiphaseCloud()
Destructor.
Thermo package for (S)olids (L)iquids and (G)ases Takes reference to thermo package,...
Templated surface reaction model class.
virtual scalar rho(const label speciei, const scalar p, const scalar T) const =0
Density [kg/m3].
Mesh data needed to do the Finite Volume discretisation.
Class containing mesh-to-mesh mapping information after a change in polyMesh topology.
Virtual abstract base class for templated reactingMultiphaseCloud.
reactingMultiphaseCloud()=default
Null constructor.
Selector class for relaxation factors, solver type and solution.
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
const volScalarField & p0
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
Field< scalar > scalarField
Specialisation of Field<T> for scalar.
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.