42#ifndef ReactingHeterogeneousParcel_H
43#define ReactingHeterogeneousParcel_H
52template<
class ParcelType>
55template<
class ParcelType>
66template<
class ParcelType>
79 public ParcelType::constantProperties
118 template<
class TrackCloudType>
121 TrackCloudType&
cloud,
129 template<
class TrackCloudType>
132 TrackCloudType&
cloud,
140 template<
class TrackCloudType>
143 TrackCloudType&
cloud,
172 template<
class TrackCloudType>
175 TrackCloudType&
cloud,
183 template<
class TrackCloudType>
186 TrackCloudType&
cloud,
211 TypeName(
"ReactingHeterogeneousParcel");
217 +
" nReactions(F1..FN)"
230 const label tetFacei,
249 const label tetFacei,
252 const scalar nParticle0,
254 const scalar dTarget0,
257 const vector& angularMomentum0,
261 const constantProperties& constProps
270 bool newFormat =
true
298 const polyMesh& mesh_;
345 template<
class TrackCloudType>
357 template<
class CloudType,
class CompositionType>
361 const CompositionType& compModel
365 template<
class CloudType>
369 template<
class CloudType,
class CompositionType>
373 const CompositionType& compModel
377 template<
class CloudType>
391 template<
class CloudType>
399 template<
class CloudType,
class CompositionType>
403 const CompositionType& compModel,
409 template<
class CloudType>
417 template<
class CloudType,
class CompositionType>
421 const CompositionType& compModel,
428 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.
iNew(const polyMesh &mesh)
Reacting heterogeneous Parcel.
AddToPropertyList(ParcelType,+" nReactions(F1..FN)")
String representation of properties.
virtual autoPtr< particle > clone(const polyMesh &mesh) const
Return a (basic particle) clone.
ReactingHeterogeneousParcel(const polyMesh &mesh, const vector &position, const label celli)
Construct from a position and a cell, searching for the rest of the.
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.
ReactingHeterogeneousParcel(const polyMesh &mesh, Istream &is, bool readFields=true, bool newFormat=true)
Construct from Istream.
virtual autoPtr< particle > clone() const
Return a (basic particle) clone.
ReactingHeterogeneousParcel(const polyMesh &mesh, const barycentric &coordinates, const label celli, const label tetFacei, const label tetPti)
Construct from mesh, position and topology.
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.
TypeName("ReactingHeterogeneousParcel")
Runtime type information.
scalar updatedDeltaVolume(TrackCloudType &cloud, const scalarField &dMass, const scalar p, const scalar T)
Return change of volume due to mass exchange.
static void readObjects(CloudType &c, const CompositionType &compModel, const objectRegistry &obr)
Read particle fields as objects from the obr registry.
void calcHeterogeneousReactions(TrackCloudType &cloud, trackingData &td, const scalar dt, const scalar Res, const scalar nu, const scalar d, const scalar T, const scalar mass, const label canCombust, const scalar N, scalar &NCpW, const scalarField &YSolid, scalarField &F, scalarField &dMassSRSolid, scalarField &dMassSRCarrier, scalar &Sh, scalar &dhsTrans) const
Calculate surface reactions.
ReactingParcel< ThermoParcel< KinematicParcel< particle > > >::trackingData trackingData
static void readObjects(CloudType &c, const objectRegistry &obr)
Read particle fields as objects from the obr registry.
static void writeFields(const CloudType &c)
Read - no composition.
ReactingHeterogeneousParcel(const ReactingHeterogeneousParcel &p)
Construct as a copy.
const scalarField & F() const
ReactingHeterogeneousParcel(const ReactingHeterogeneousParcel &p, const polyMesh &mesh)
Construct as a copy.
void writeProperties(Ostream &os, const wordRes &filters, const word &delim, const bool namesOnly) const
Write individual parcel properties to stream.
ReactingHeterogeneousParcel(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 &Y, const scalarField &F, const constantProperties &constProps)
Construct from components.
scalarField & F()
Return access to F.
static void readFields(CloudType &c)
Read - no composition.
static void readFields(CloudType &c, const CompositionType &compModel)
void calc(TrackCloudType &cloud, trackingData &td, const scalar dt)
Update parcel properties over the time interval.
const scalarField & Y() const
const scalarField & YSolid() const
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.
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.
#define AddToPropertyList(ParcelType, str)
Add to existing static 'propertyList' for particle properties.
#define TypeName(TypeNameString)
Declare a ClassName() with extra virtual type info.
const Vector< label > N(dict.get< Vector< label > >("N"))