44#ifndef ReactingMultiphaseParcel_H
45#define ReactingMultiphaseParcel_H
58template<
class ParcelType>
65template<
class ParcelType>
78 static const label
GAS;
79 static const label
LIQ;
80 static const label
SLD;
86 public ParcelType::constantProperties
118 inline scalar
TDevol()
const;
121 inline scalar
LDevol()
const;
138 template<
class TrackCloudType>
141 TrackCloudType&
cloud,
151 template<
class TrackCloudType>
154 TrackCloudType&
cloud,
164 template<
class TrackCloudType>
167 TrackCloudType&
cloud,
177 scalar updateMassFractions
214 template<
class TrackCloudType>
217 TrackCloudType&
cloud,
229 template<
class TrackCloudType>
232 TrackCloudType&
cloud,
253 template<
class TrackCloudType>
256 TrackCloudType&
cloud,
284 TypeName(
"ReactingMultiphaseParcel");
305 const label tetFacei,
324 const label tetFacei,
327 const scalar nParticle0,
329 const scalar dTarget0,
332 const vector& angularMomentum0,
338 const constantProperties& constProps
347 bool newFormat =
true
432 template<
class TrackCloudType>
436 template<
class TrackCloudType>
439 TrackCloudType&
cloud,
445 template<
class TrackCloudType>
448 TrackCloudType&
cloud,
457 template<
class CloudType,
class CompositionType>
461 const CompositionType& compModel
465 template<
class CloudType>
469 template<
class CloudType,
class CompositionType>
473 const CompositionType& compModel
477 template<
class CloudType>
486 const bool namesOnly =
false
491 template<
class CloudType>
499 template<
class CloudType,
class CompositionType>
503 const CompositionType& compModel,
509 template<
class CloudType>
517 template<
class CloudType,
class CompositionType>
521 const CompositionType& compModel,
528 friend Ostream& operator<< <ParcelType>
An Istream is an abstract base class for all input systems (streams, files, token lists etc)....
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
constantProperties()
Null constructor.
scalar hRetentionCoeff() const
Return const access to the fraction of enthalpy retained by.
scalar TDevol() const
Return const access to the devolatilisation temperature.
scalar LDevol() const
Return const access to the latent heat of devolatilisation.
iNew(const polyMesh &mesh)
Multiphase variant of the reacting parcel class with one/two-way coupling with the continuous phase.
AddToPropertyList(ParcelType, " nGas(Y1..YN)"+" nLiquid(Y1..YN)"+" nSolid(Y1..YN)")
String representation of properties.
virtual autoPtr< particle > clone(const polyMesh &mesh) const
Return a (basic particle) clone.
static void writeObjects(const CloudType &c, const CompositionType &compModel, objectRegistry &obr)
Write particle fields as objects into the obr registry.
static void writeObjects(const CloudType &c, objectRegistry &obr)
Write particle fields as objects into the obr registry.
ReactingMultiphaseParcel(const ReactingMultiphaseParcel &p)
Construct as a copy.
ReactingMultiphaseParcel(const polyMesh &mesh, Istream &is, bool readFields=true, bool newFormat=true)
Construct from Istream.
void cellValueSourceCorrection(TrackCloudType &cloud, trackingData &td, const scalar dt)
Correct cell values using latest transfer information.
void calcDevolatilisation(TrackCloudType &cloud, trackingData &td, const scalar dt, const scalar age, const scalar Ts, const scalar d, const scalar T, const scalar mass, const scalar mass0, const scalarField &YGasEff, const scalarField &YLiquidEff, const scalarField &YSolidEff, label &canCombust, scalarField &dMassDV, scalar &Sh, scalar &N, scalar &NCpW, scalarField &Cs) const
Calculate Devolatilisation.
scalarField & YGas()
Return access to mass fractions of gases.
virtual autoPtr< particle > clone() const
Return a (basic particle) clone.
scalar updatedDeltaVolume(TrackCloudType &cloud, const scalarField &dMassGas, const scalarField &dMassLiquid, const scalarField &dMassSolid, const label idG, const label idL, const label idS, const scalar p, const scalar T)
Return change of volume due to mass exchange.
scalarField & YSolid()
Return access to mass fractions of solids.
static const std::size_t sizeofFields
label & canCombust()
Return access to the canCombust flag.
static void writeFields(const CloudType &c, const CompositionType &compModel)
Write - composition supplied.
static void readObjects(CloudType &c, const CompositionType &compModel, const objectRegistry &obr)
Read particle fields as objects from the obr registry.
ReactingParcel< ThermoParcel< KinematicParcel< particle > > >::trackingData trackingData
static void readObjects(CloudType &c, const objectRegistry &obr)
Read particle fields as objects from the obr registry.
scalarField & YLiquid()
Return access to mass fractions of liquids.
const scalarField & YGas() const
static void writeFields(const CloudType &c)
Read - no composition.
ReactingMultiphaseParcel(const ReactingMultiphaseParcel &p, const polyMesh &mesh)
Construct as a copy.
TypeName("ReactingMultiphaseParcel")
Runtime type information.
void setCellValues(TrackCloudType &cloud, trackingData &td)
Set cell values.
void calcSurfaceReactions(TrackCloudType &cloud, trackingData &td, const scalar dt, const scalar d, const scalar Re, const scalar nu, const scalar T, const scalar mass, const label canCombust, const scalar N, const scalarField &YMix, const scalarField &YGas, const scalarField &YLiquid, const scalarField &YSolid, scalarField &dMassSRGas, scalarField &dMassSRLiquid, scalarField &dMassSRSolid, scalarField &dMassSRCarrier, scalar &Sh, scalar &dhsTrans) const
Calculate surface reactions.
ReactingMultiphaseParcel(const polyMesh &mesh, const vector &position, const label celli)
Construct from a position and a cell, searching for the rest of the.
ReactingMultiphaseParcel(const polyMesh &mesh, const barycentric &coordinates, const label celli, const label tetFacei, const label tetPti)
Construct from mesh, position and topology.
void writeProperties(Ostream &os, const wordRes &filters, const word &delim, const bool namesOnly=false) const
Write individual parcel properties to stream.
const scalarField & YSolid() const
static void readFields(CloudType &c)
Read - no composition.
const scalarField & YLiquid() const
ReactingMultiphaseParcel(const polyMesh &mesh, const barycentric &coordinates, const label celli, const label tetFacei, const label tetPti, const label typeId, const scalar nParticle0, const scalar d0, const scalar dTarget0, const vector &U0, const vector &f0, const vector &angularMomentum0, const vector &torque0, const scalarField &Y0, const scalarField &YGas0, const scalarField &YLiquid0, const scalarField &YSolid0, const constantProperties &constProps)
Construct from components.
static void readFields(CloudType &c, const CompositionType &compModel)
void calc(TrackCloudType &cloud, trackingData &td, const scalar dt)
Update parcel properties over the time interval.
Pointer management similar to std::unique_ptr, with some additional methods and type checking.
A cloud is a registry collection of lagrangian particles.
Class for demand-driven dictionary entries.
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Registry of regIOobjects.
vector position() const
Return current particle position.
static autoPtr< particle > Clone(const Derived &p)
Clone a particle.
const barycentric & coordinates() const noexcept
Return current particle coordinates.
Mesh consisting of general polyhedral cells.
A List of wordRe with additional matching capabilities.
A class for handling words, derived from Foam::string.
OBJstream os(runTime.globalPath()/outputName)
wallPoints::trackData td(isBlockedFace, regionToBlockSize)
DSMCCloud< dsmcParcel > CloudType
Field< scalar > scalarField
Specialisation of Field<T> for scalar.
Ostream & operator<<(Ostream &, const boundaryPatch &p)
Write boundaryPatch as dictionary entries (without surrounding braces).
scalarField Re(const UList< complex > &cmplx)
Extract real component.
bool cp(const fileName &src, const fileName &dst, const bool followLink=true)
Copy the source to the destination (recursively if necessary).
Barycentric< scalar > barycentric
A scalar version of the templated Barycentric.
void T(FieldField< Field, Type > &f1, const FieldField< Field, Type > &f2)
#define AddToPropertyList(ParcelType, str)
Add to existing static 'propertyList' for particle properties.
scalarList Y0(nSpecie, Zero)
#define TypeName(TypeNameString)
Declare a ClassName() with extra virtual type info.
const Vector< label > N(dict.get< Vector< label > >("N"))