31 template<
class CloudType>
42 O2GlobalId_(owner.composition().globalCarrierId(
"O2")),
43 CO2GlobalId_(owner.composition().globalCarrierId(
"CO2")),
49 label idSolid = owner.composition().idSolid();
50 CsLocalId_ = owner.composition().localId(idSolid,
"C");
53 WO2_ = owner.mcCarrierThermo().speciesData()[O2GlobalId_].W();
54 scalar WCO2 = owner.mcCarrierThermo().speciesData()[CO2GlobalId_].W();
56 HcCO2_ = owner.mcCarrierThermo().speciesData()[CO2GlobalId_].Hc();
62 "COxidationDiffusionLimitedRate<CloudType>"
67 ) <<
"Stoichiometry of reaction, Sb, must be greater than zero" <<
nl
75 template<
class CloudType>
83 template<
class CloudType>
90 template<
class CloudType>
113 const label idSolid = CloudType::parcelType::SLD;
114 const scalar fComb = YMixture[idSolid]*YSolid[CsLocalId_];
123 const scalar YO2 = this->owner().mcCarrierThermo().Y(O2GlobalId_)[cellI];
130 dmC =
min(mass*fComb, dmC);
133 const scalar dmO2 = dmC/WC_*Sb_*WO2_;
136 const scalar dmCO2 = dmC + dmO2;
139 dMassSolid[CsLocalId_] += dmC;
142 dMassSRCarrier[O2GlobalId_] -= dmO2;
143 dMassSRCarrier[CO2GlobalId_] += dmCO2;
146 return -HcCO2_*dmCO2;