31 template<
class CloudType>
50 O2GlobalId_(owner.composition().globalCarrierId(
"O2")),
51 CO2GlobalId_(owner.composition().globalCarrierId(
"CO2")),
57 label idSolid = owner.composition().idSolid();
58 CsLocalId_ = owner.composition().localId(idSolid,
"C");
61 WO2_ = owner.mcCarrierThermo().speciesData()[O2GlobalId_].W();
62 scalar WCO2 = owner.mcCarrierThermo().speciesData()[CO2GlobalId_].W();
64 HcCO2_ = owner.mcCarrierThermo().speciesData()[CO2GlobalId_].Hc();
70 "COxidationKineticDiffusionLimitedRate"
75 ) <<
"Stoichiometry of reaction, Sb, must be greater than zero" <<
nl
83 template<
class CloudType>
91 template<
class CloudType>
98 template<
class CloudType>
121 const label idSolid = CloudType::parcelType::SLD;
122 const scalar fComb = YMixture[idSolid]*YSolid[CsLocalId_];
131 const scalar YO2 = this->owner().mcCarrierThermo().Y(O2GlobalId_)[cellI];
134 const scalar D0 = C1_/d*
pow(0.5*(T + Tc), 0.75);
137 const scalar Rk = C2_*
exp(-E_/(specie::RR*Tc));
143 scalar dmC = Ap*rhoc*specie::RR*Tc*YO2/WO2_*D0*Rk/(D0 + Rk)*dt;
146 dmC =
min(mass*fComb, dmC);
149 const scalar dmO2 = dmC/WC_*Sb_*WO2_;
152 const scalar dmCO2 = dmC + dmO2;
155 dMassSolid[CsLocalId_] += dmC;
158 dMassSRCarrier[O2GlobalId_] -= dmO2;
159 dMassSRCarrier[CO2GlobalId_] += dmCO2;
162 return -HcCO2_*dmCO2;