46#ifndef ReactingMultiphaseCloud_H
47#define ReactingMultiphaseCloud_H
58template<
class CloudType>
61template<
class CloudType>
68template<
class CloudType>
69class ReactingMultiphaseCloud
99 ReactingMultiphaseCloud(
const ReactingMultiphaseCloud&) =
delete;
102 void operator=(
const ReactingMultiphaseCloud&) =
delete;
110 typename parcelType::constantProperties
constProps_;
151 void cloudReset(ReactingMultiphaseCloud<CloudType>& c);
159 ReactingMultiphaseCloud
171 ReactingMultiphaseCloud
173 ReactingMultiphaseCloud<CloudType>& c,
178 ReactingMultiphaseCloud
182 const ReactingMultiphaseCloud<CloudType>& c
190 new ReactingMultiphaseCloud(*
this,
name)
199 new ReactingMultiphaseCloud(this->
mesh(), name, *
this)
213 inline const ReactingMultiphaseCloud&
cloudCopy()
const;
216 inline const typename parcelType::constantProperties&
220 inline typename parcelType::constantProperties&
constProps();
228 ReactingMultiphaseCloud<CloudType>
235 ReactingMultiphaseCloud<CloudType>
242 ReactingMultiphaseCloud<CloudType>
249 ReactingMultiphaseCloud<CloudType>
260 const typename parcelType::trackingData&
td
270 const scalar lagrangianDt
277 const scalar lagrangianDt,
278 const bool fullyDescribed
const uniformDimensionedVectorField & g
ParticleType particleType
const word & cloudName() const
const fvMesh & mesh() const
Templated devolatilisation model class.
autoPtr< IOobject > clone() const
Clone.
const DevolatilisationModel< ReactingMultiphaseCloud< CloudType > > & devolatilisation() const
Return const access to devolatilisation model.
const parcelType::constantProperties & constProps() const
Return the constant properties.
autoPtr< SurfaceReactionModel< ReactingMultiphaseCloud< ReactingCloud< ThermoCloud< KinematicCloud< Cloud< coalParcel > > > > > > > surfaceReactionModel_
void setModels()
Set cloud sub-models.
void storeState()
Store the current cloud state.
const ReactingMultiphaseCloud & cloudCopy() const
Return a reference to the cloud copy.
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< ReactingCloud< ThermoCloud< KinematicCloud< Cloud< coalParcel > > > > > > > devolatilisationModel_
ReactingMultiphaseCloud(const fvMesh &mesh, const word &name, const ReactingMultiphaseCloud< CloudType > &c)
Copy constructor with new name - creates bare cloud.
scalar dMassSurfaceReaction_
scalar dMassDevolatilisation_
ReactingCloud< ThermoCloud< KinematicCloud< Cloud< coalParcel > > > >::particleType parcelType
DevolatilisationModel< ReactingMultiphaseCloud< CloudType > > & devolatilisation()
Return reference to devolatilisation model.
virtual void writeFields() const
Write the field data for the cloud.
ReactingCloud< ThermoCloud< KinematicCloud< Cloud< coalParcel > > > > cloudType
ReactingMultiphaseCloud< ReactingCloud< ThermoCloud< KinematicCloud< Cloud< coalParcel > > > > > reactingMultiphaseCloudType
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.
virtual autoPtr< Cloud< parcelType > > cloneBare(const word &name) const
Construct and return bare clone based on (this) with new name.
void evolve()
Evolve the cloud.
SurfaceReactionModel< ReactingMultiphaseCloud< CloudType > > & surfaceReaction()
Return reference to reacting surface reaction model.
ReactingMultiphaseCloud(ReactingMultiphaseCloud< CloudType > &c, const word &name)
Copy constructor with new name.
ReactingMultiphaseCloud(const word &cloudName, const volScalarField &rho, const volVectorField &U, const dimensionedVector &g, const SLGThermo &thermo, bool readFields=true)
Construct given carrier gas fields.
parcelType::constantProperties constProps_
parcelType::constantProperties & constProps()
Return access to the constant properties.
void info()
Print cloud information.
void restoreState()
Reset the current cloud to the previously stored state.
void transferToCarrier(const parcelType &p, const typename parcelType::trackingData &td)
Transfer the effect of parcel to the carrier phase.
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.
Pointer management similar to std::unique_ptr, with some additional methods and type checking.
Mesh data needed to do the Finite Volume discretisation.
Class containing mesh-to-mesh mapping information after a change in polyMesh topology.
reactingMultiphaseCloud()=default
Null constructor.
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.
wallPoints::trackData td(isBlockedFace, regionToBlockSize)
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
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.