41#ifndef HeterogeneousReactingModel_H
42#define HeterogeneousReactingModel_H
59template<
class CloudType>
78 TypeName(
"heterogeneousReactionModel");
165 virtual label
nF()
const;
178#define makeHeterogeneousReactingModel(CloudType) \
180 typedef Foam::CloudType::reactingHeterogeneousCloudType \
181 reactingHeterogeneousCloudType; \
182 defineNamedTemplateTypeNameAndDebug \
184 Foam::HeterogeneousReactingModel<reactingHeterogeneousCloudType>, \
189 defineTemplateRunTimeSelectionTable \
191 HeterogeneousReactingModel<reactingHeterogeneousCloudType>, \
197#define makeHeterogeneousReactingModelType(SS, CloudType) \
199 typedef Foam::CloudType::reactingHeterogeneousCloudType \
200 reactingHeterogeneousCloudType; \
201 defineNamedTemplateTypeNameAndDebug \
202 (Foam::SS<reactingHeterogeneousCloudType>, 0); \
204 Foam::HeterogeneousReactingModel<reactingHeterogeneousCloudType>:: \
205 adddictionaryConstructorToTable \
206 <Foam::SS<reactingHeterogeneousCloudType>> \
207 add##SS##CloudType##reactingHeterogeneousCloudType##ConstructorToTable_;
const CloudType & owner() const
Return const access to the owner cloud.
CloudSubModelBase(CloudType &owner)
Construct null from owner cloud.
virtual label nReactions() const =0
Number of reactions in the model.
HeterogeneousReactingModel(CloudType &owner)
Construct null from owner.
void addToSurfaceReactionMass(const scalar dMass)
Add to devolatilisation mass.
scalar dMass_
Net mass of lagrangian phase consumed.
static autoPtr< HeterogeneousReactingModel< CloudType > > New(const dictionary &dict, CloudType &cloud)
Selector.
label nF_
Number of progress variables.
virtual autoPtr< HeterogeneousReactingModel< CloudType > > clone() const =0
Construct and return a clone.
virtual label nF() const
Number of progress variable.
virtual scalar calculate(const scalar dt, const scalar Re, const scalar nu, const label celli, const scalar d, const scalar T, const scalar Tc, const scalar pc, const scalar rhoc, const scalar mass, const scalarField &YSolid, scalarField &F, const scalar N, scalar &NCpW, scalarField &dMassSolid, scalarField &dMassSRCarrier) const =0
Update surface reactions.
virtual ~HeterogeneousReactingModel()=default
Destructor.
virtual void info()
Write injection info.
declareRunTimeSelectionTable(autoPtr, HeterogeneousReactingModel, dictionary,(const dictionary &dict, CloudType &cloud),(dict, cloud))
Declare runtime constructor selection table.
TypeName("heterogeneousReactionModel")
Runtime type information.
Pointer management similar to std::unique_ptr, with some additional methods and type checking.
A cloud is a registry collection of lagrangian particles.
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
const dictionary & dict() const
Return const access to the cloud dictionary.
A class for handling words, derived from Foam::string.
volVectorField F(fluid.F())
DSMCCloud< dsmcParcel > CloudType
Field< scalar > scalarField
Specialisation of Field<T> for scalar.
scalarField Re(const UList< complex > &cmplx)
Extract real component.
void T(FieldField< Field, Type > &f1, const FieldField< Field, Type > &f2)
Macros to ease declaration of run-time selection tables.
#define declareRunTimeSelectionTable(ptrWrapper, baseType, argNames, argList, parList)
Declare a run-time selection (variables and adder classes).
#define TypeName(TypeNameString)
Declare a ClassName() with extra virtual type info.
const Vector< label > N(dict.get< Vector< label > >("N"))