34template<
class CloudType>
43 Sb_(this->coeffDict().getScalar(
"Sb")),
44 C1_(this->coeffDict().getScalar(
"C1")),
45 C2_(this->coeffDict().getScalar(
"C2")),
46 E_(this->coeffDict().getScalar(
"E")),
55 label idSolid =
owner.composition().idSolid();
56 CsLocalId_ =
owner.composition().localId(idSolid,
"C");
59 WO2_ =
owner.thermo().carrier().W(O2GlobalId_);
60 const scalar WCO2 =
owner.thermo().carrier().W(CO2GlobalId_);
63 HcCO2_ =
owner.thermo().carrier().Hc(CO2GlobalId_);
65 const scalar YCloc =
owner.composition().Y0(idSolid)[CsLocalId_];
66 const scalar YSolidTot =
owner.composition().YMixture0()[idSolid];
67 Info<<
" C(s): particle mass fraction = " << YCloc*YSolidTot <<
endl;
71template<
class CloudType>
83 CsLocalId_(srm.CsLocalId_),
84 O2GlobalId_(srm.O2GlobalId_),
85 CO2GlobalId_(srm.CO2GlobalId_),
94template<
class CloudType>
120 const scalar fComb = YMixture[idSolid]*YSolid[CsLocalId_];
131 const scalar YO2 =
thermo.carrier().Y(O2GlobalId_)[celli];
134 const scalar D0 = C1_/d*
pow(0.5*(
T + Tc), 0.75);
137 const scalar Rk = C2_*
exp(-E_/(RR*Tc));
143 scalar dmC = Ap*rhoc*RR*Tc*YO2/WO2_*D0*Rk/(D0 + Rk)*dt;
146 dmC =
min(mass*fComb, dmC);
149 const scalar dOmega = dmC/WC_;
152 const scalar dmO2 = dOmega*Sb_*WO2_;
155 const scalar dmCO2 = dOmega*(WC_ + Sb_*WO2_);
158 dMassSolid[CsLocalId_] += dOmega*WC_;
161 dMassSRCarrier[O2GlobalId_] -= dmO2;
162 dMassSRCarrier[CO2GlobalId_] += dmCO2;
164 const scalar HsC =
thermo.solids().properties()[CsLocalId_].Hs(
T);
169 return dmC*HsC - dmCO2*HcCO2_;
Kinetic/diffusion limited rate surface reaction model for coal parcels. Limited to:
const CloudType & owner() const
Return const access to the owner cloud.
Templated base class for dsmc cloud.
Thermo package for (S)olids (L)iquids and (G)ases Takes reference to thermo package,...
Templated surface reaction model class.
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Basic thermodynamics type based on the use of fitting functions for cp, h, s obtained from the templa...
basicSpecieMixture & composition
constexpr scalar pi(M_PI)
dimensionedScalar exp(const dimensionedScalar &ds)
scalarField Re(const UList< complex > &cf)
Extract real component.
dimensionedSymmTensor sqr(const dimensionedVector &dv)
messageStream Info
Information stream (stdout output on master, null elsewhere)
dimensionedScalar pow(const dimensionedScalar &ds, const dimensionedScalar &expt)
Ostream & endl(Ostream &os)
Add newline and flush stream.
label min(const labelHashSet &set, label minValue=labelMax)
Find the min value in labelHashSet, optionally limited by second argument.
const Vector< label > N(dict.get< Vector< label > >("N"))