33 template<
class CloudType>
41 Sb_(this->coeffDict().template lookup<scalar>(
"Sb")),
42 D_(this->coeffDict().template lookup<scalar>(
"D")),
52 CsLocalId_ =
owner.composition().localId(idSolid,
"C");
55 WO2_ =
owner.composition().carrier().Wi(O2GlobalId_);
56 const scalar WCO2 =
owner.composition().carrier().Wi(CO2GlobalId_);
59 HcCO2_ =
owner.composition().carrier().Hf(CO2GlobalId_);
64 <<
"Stoichiometry of reaction, Sb, must be greater than zero" <<
nl
68 const scalar YCloc =
owner.composition().Y0(idSolid)[CsLocalId_];
69 const scalar YSolidTot =
owner.composition().YMixture0()[idSolid];
70 Info<<
" C(s): particle mass fraction = " << YCloc*YSolidTot <<
endl;
74 template<
class CloudType>
83 CsLocalId_(srm.CsLocalId_),
84 O2GlobalId_(srm.O2GlobalId_),
85 CO2GlobalId_(srm.CO2GlobalId_),
94 template<
class CloudType>
102 template<
class CloudType>
125 const label idSolid = CloudType::parcelType::SLD;
126 const scalar fComb = YMixture[idSolid]*YSolid[CsLocalId_];
138 const scalar YO2 = carrier.
Y(O2GlobalId_)[celli];
144 dmC =
min(mass*fComb, dmC);
147 const scalar dmO2 = dmC/WC_*Sb_*WO2_;
150 const scalar dmCO2 = dmC + dmO2;
153 dMassSolid[CsLocalId_] += dmC;
156 dMassSRCarrier[O2GlobalId_] -= dmO2;
157 dMassSRCarrier[CO2GlobalId_] += dmCO2;
164 return dmC*HsC - dmCO2*HcCO2_;
Diffusion limited rate surface reaction model for coal parcels. Limited to:
virtual scalar calculate(const scalar dt, const label celli, const scalar d, const scalar T, const scalar Tc, const scalar pc, const scalar rhoc, const scalar mass, const scalarField &YGas, const scalarField &YLiquid, const scalarField &YSolid, const scalarField &YMixture, const scalar N, scalarField &dMassGas, scalarField &dMassLiquid, scalarField &dMassSolid, scalarField &dMassSRCarrier) const
Update surface reactions.
COxidationDiffusionLimitedRate(const dictionary &dict, CloudType &owner)
Construct from dictionary.
virtual ~COxidationDiffusionLimitedRate()
Destructor.
const CloudType & owner() const
Return const access to the owner cloud.
Templated base class for dsmc cloud.
Templated surface reaction model class.
Specialisation of basicMixture for a mixture consisting of a number for molecular species.
PtrList< volScalarField > & Y()
Return the mass-fraction fields.
virtual const IOdictionary & properties() const =0
Properties dictionary.
A list of keyword definitions, which are a keyword followed by any number of values (e....
Thermo package for (S)olids (L)iquids and (G)ases Takes reference to thermo package,...
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
errorManipArg< error, int > exit(error &err, const int errNo=1)
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
Ostream & endl(Ostream &os)
Add newline and flush stream.
layerAndWeight min(const layerAndWeight &a, const layerAndWeight &b)
void T(FieldField< Field, Type > &f1, const FieldField< Field, Type > &f2)
basicSpecieMixture & composition
fluidMulticomponentThermo & thermo