46#ifndef ReactingCloud_H
47#define ReactingCloud_H
58template<
class CloudType>
61template<
class CloudType>
68template<
class CloudType>
99 ReactingCloud(
const ReactingCloud&) =
delete;
102 void operator=(
const ReactingCloud&) =
delete;
110 typename parcelType::constantProperties
constProps_;
171 ReactingCloud(ReactingCloud<CloudType>& c,
const word&
name);
178 const ReactingCloud<CloudType>& c
186 new ReactingCloud(*
this,
name)
209 inline const ReactingCloud&
cloudCopy()
const;
212 inline const typename parcelType::constantProperties&
216 inline typename parcelType::constantProperties&
constProps();
240 const typename parcelType::trackingData&
td
267 Srho(
const label i)
const;
283 const scalar lagrangianDt
290 const scalar lagrangianDt,
291 const bool fullyDescribed
304 void relaxSources(
const ReactingCloud<CloudType>& cloudOldTime);
const uniformDimensionedVectorField & g
ParticleType particleType
Templated reacting parcel composition model class Consists of carrier species (via thermo package),...
const word & cloudName() const
const fvMesh & mesh() const
DimensionedField< scalar, volMesh > Internal
autoPtr< IOobject > clone() const
Clone.
Templated phase change model class.
A list of pointers to objects of type <T>, with allocation/deallocation management of the pointers....
Templated base class for reacting cloud.
virtual ~ReactingCloud()=default
Destructor.
autoPtr< PhaseChangeModel< ReactingCloud< ThermoCloud< KinematicCloud< Cloud< basicReactingParcel > > > > > > phaseChangeModel_
const parcelType::constantProperties & constProps() const
Return the constant properties.
ReactingCloud(ReactingCloud< CloudType > &c, const word &name)
Copy constructor with new name.
PtrList< volScalarField::Internal > rhoTrans_
const PtrList< volScalarField::Internal > & rhoTrans() const
Return const access to mass source fields.
void setModels()
Set cloud sub-models.
ReactingCloud(const fvMesh &mesh, const word &name, const ReactingCloud< CloudType > &c)
Copy constructor with new name - creates bare cloud.
void storeState()
Store the current cloud state.
ReactingCloud< ThermoCloud< KinematicCloud< Cloud< basicReactingParcel > > > > reactingCloudType
ReactingCloud(const word &cloudName, const volScalarField &rho, const volVectorField &U, const dimensionedVector &g, const SLGThermo &thermo, bool readFields=true)
Construct given carrier gas fields.
void setParcelThermoProperties(parcelType &parcel, const scalar lagrangianDt)
Set parcel thermo properties.
const CompositionModel< ReactingCloud< CloudType > > & composition() const
Return const access to reacting composition model.
const ReactingCloud & cloudCopy() const
Return a reference to the cloud copy.
void checkParcelProperties(parcelType &parcel, const scalar lagrangianDt, const bool fullyDescribed)
Check parcel properties.
tmp< fvScalarMatrix > SYi(const label i, volScalarField &Yi) const
Return mass source term for specie i - specie eqn.
tmp< volScalarField::Internal > Srho(const label i) const
Return tmp mass source for field i - fully explicit.
tmp< volScalarField::Internal > Srho() const
Return tmp total mass source for carrier phase.
void cloudReset(ReactingCloud< CloudType > &c)
Reset state of cloud.
void scaleSources()
Apply scaling to (transient) cloud sources.
void checkSuppliedComposition(const scalarField &YSupplied, const scalarField &Y, const word &YName)
Check that size of a composition field is valid.
tmp< fvScalarMatrix > Srho(volScalarField &rho) const
Return total mass source term [kg/m3/s].
ThermoCloud< KinematicCloud< Cloud< basicReactingParcel > > >::particleType parcelType
PhaseChangeModel< ReactingCloud< CloudType > > & phaseChange()
Return reference to reacting phase change model.
volScalarField::Internal & rhoTrans(const label i)
Return reference to mass source for field i.
virtual void writeFields() const
Write the field data for the cloud.
ThermoCloud< KinematicCloud< Cloud< basicReactingParcel > > > cloudType
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.
const PhaseChangeModel< ReactingCloud< CloudType > > & phaseChange() const
Return const access to reacting phase change model.
parcelType::constantProperties constProps_
void relaxSources(const ReactingCloud< CloudType > &cloudOldTime)
Apply relaxation to (steady state) cloud sources.
autoPtr< CompositionModel< ReactingCloud< ThermoCloud< KinematicCloud< Cloud< basicReactingParcel > > > > > > compositionModel_
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.
PtrList< volScalarField::Internal > & rhoTrans()
Return reference to mass source fields.
void transferToCarrier(const parcelType &p, const typename parcelType::trackingData &td)
Transfer the effect of parcel to the carrier phase.
void resetSourceTerms()
Reset the cloud source terms.
virtual void writeObjects(objectRegistry &obr) const
Write particle fields as objects into the obr registry.
Thermo package for (S)olids (L)iquids and (G)ases Takes reference to thermo package,...
const SLGThermo & thermo() const
Return const access to thermo package.
const volScalarField & p() const
Return const access to the carrier pressure field.
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.
Registry of regIOobjects.
reactingCloud()=default
Null constructor.
A class for managing temporary objects.
A class for handling words, derived from Foam::string.
PtrList< volScalarField > & Y
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
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.