44 #ifndef ReactingMultiphaseParcel_H 45 #define ReactingMultiphaseParcel_H 58 template<
class ParcelType>
59 Ostream& operator<<(Ostream&, const ReactingMultiphaseParcel<ParcelType>&);
65 template<
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,
347 bool newFormat =
true 375 const polyMesh& mesh_;
384 autoPtr<ReactingMultiphaseParcel<ParcelType>>
operator()
389 return autoPtr<ReactingMultiphaseParcel<ParcelType>>
391 new ReactingMultiphaseParcel<ParcelType>(mesh_, is,
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>
label canCombust() const
Return const access to the canCombust flag.
static void readObjects(CloudType &c, const objectRegistry &obr)
Read particle fields as objects from the obr registry.
scalarList Y0(nSpecie, Zero)
static void writeFields(const CloudType &c, const CompositionType &compModel)
Write - composition supplied.
A list of keyword definitions, which are a keyword followed by a number of values (eg...
label canCombust_
Flag to identify if the particle can devolatilise and combust.
wallPoints::trackData td(isBlockedFace, regionToBlockSize)
An Istream is an abstract base class for all input systems (streams, files, token lists etc)...
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.
bool cp(const fileName &src, const fileName &dst, const bool followLink=true)
Copy the source to the destination (recursively if necessary).
void writeProperties(Ostream &os, const wordRes &filters, const word &delim, const bool namesOnly=false) const
Write individual parcel properties to stream.
scalar LDevol() const
Return const access to the latent heat of devolatilisation.
void calc(TrackCloudType &cloud, trackingData &td, const scalar dt)
Update parcel properties over the time interval.
virtual autoPtr< particle > clone() const
Return a (basic particle) clone.
static void readFields(CloudType &c, const CompositionType &compModel)
Read - composition supplied.
ReactingMultiphaseParcel(const polyMesh &mesh, const barycentric &coordinates, const label celli, const label tetFacei, const label tetPti)
Construct from mesh, position and topology.
ParcelType::trackingData trackingData
Use base tracking data.
scalarField YGas_
Mass fractions of gases [].
scalar hRetentionCoeff() const
Return const access to the fraction of enthalpy retained by.
const scalarField & YGas() const
Return const access to mass fractions of gases.
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.
A class for handling words, derived from Foam::string.
Field< scalar > scalarField
Specialisation of Field<T> for scalar.
constantProperties()
Null constructor.
A cloud is a registry collection of lagrangian particles.
scalar TDevol() const
Return const access to the devolatilisation temperature.
A List of wordRe with additional matching capabilities.
static autoPtr< particle > Clone(const Derived &p)
Clone a particle.
An Ostream is an abstract base class for all output systems (streams, files, token lists...
AddToPropertyList(ParcelType, " nGas(Y1..YN)"+" nLiquid(Y1..YN)"+" nSolid(Y1..YN)")
String representation of properties.
scalarField YSolid_
Mass fractions of solids [].
A Vector of values with scalar precision, where scalar is float/double depending on the compilation f...
const scalarField & YLiquid() const
Return const access to mass fractions of liquids.
OBJstream os(runTime.globalPath()/outputName)
static const std::size_t sizeofFields
Size in bytes of the fields.
void T(FieldField< Field, Type > &f1, const FieldField< Field, Type > &f2)
scalarField YLiquid_
Mass fractions of liquids [].
const Vector< label > N(dict.get< Vector< label >>("N"))
scalarField Re(const UList< complex > &cmplx)
Extract real component.
PtrList< coordinateSystem > coordinates(solidRegions.size())
iNew(const polyMesh &mesh)
const dimensionedScalar c
Speed of light in a vacuum.
friend Ostream & operator(Ostream &, const ReactingMultiphaseParcel< ParcelType > &)
Multiphase variant of the reacting parcel class with one/two-way coupling with the continuous phase...
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.
Pointer management similar to std::unique_ptr, with some additional methods and type checking...
Mesh consisting of general polyhedral cells.
Registry of regIOobjects.
TypeName("ReactingMultiphaseParcel")
Runtime type information.
void cellValueSourceCorrection(TrackCloudType &cloud, trackingData &td, const scalar dt)
Correct cell values using latest transfer information.
Templated base class for dsmc cloud.
Class to hold reacting multiphase particle constant properties.
static void writeObjects(const CloudType &c, objectRegistry &obr)
Write particle fields as objects into the obr registry.
const scalarField & YSolid() const
Return const access to mass fractions of solids.
void setCellValues(TrackCloudType &cloud, trackingData &td)
Set cell values.