31 template<
class CloudType>
45 O2GlobalId_(owner.composition().carrierId(
"O2")),
46 CO2GlobalId_(owner.composition().carrierId(
"CO2")),
52 label idSolid = owner.composition().idSolid();
53 CsLocalId_ = owner.composition().localId(idSolid,
"C");
56 WO2_ = owner.thermo().carrier().W(O2GlobalId_);
57 const scalar WCO2 = owner.thermo().carrier().W(CO2GlobalId_);
60 HcCO2_ = owner.thermo().carrier().Hc(CO2GlobalId_);
62 const scalar YCloc = owner.composition().Y0(idSolid)[CsLocalId_];
63 const scalar YSolidTot = owner.composition().YMixture0()[idSolid];
64 Info<<
" C(s): particle mass fraction = " << YCloc*YSolidTot <<
endl;
68 template<
class CloudType>
80 CsLocalId_(srm.CsLocalId_),
81 O2GlobalId_(srm.O2GlobalId_),
82 CO2GlobalId_(srm.CO2GlobalId_),
91 template<
class CloudType>
99 template<
class CloudType>
122 const label idSolid = CloudType::parcelType::SLD;
123 const scalar fComb = YMixture[idSolid]*YSolid[CsLocalId_];
134 const scalar YO2 = thermo.
carrier().
Y(O2GlobalId_)[celli];
137 const scalar D0 = C1_/d*
pow(0.5*(T + Tc), 0.75);
140 const scalar Rk = C2_*
exp(-E_/(
RR*Tc));
146 scalar dmC = Ap*rhoc*
RR*Tc*YO2/WO2_*D0*Rk/(D0 + Rk)*dt;
149 dmC =
min(mass*fComb, dmC);
152 const scalar dOmega = dmC/WC_;
155 const scalar dmO2 = dOmega*Sb_*WO2_;
158 const scalar dmCO2 = dOmega*(WC_ + Sb_*WO2_);
161 dMassSolid[CsLocalId_] += dOmega*WC_;
164 dMassSRCarrier[O2GlobalId_] -= dmO2;
165 dMassSRCarrier[CO2GlobalId_] += dmCO2;
172 return dmC*HsC - dmCO2*HcCO2_;
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
A list of keyword definitions, which are a keyword followed by any number of values (e...
virtual ~COxidationKineticDiffusionLimitedRate()
Destructor.
const PtrList< solidProperties > & properties() const
Return the solidProperties properties.
dimensionedSymmTensor sqr(const dimensionedVector &dv)
Ostream & endl(Ostream &os)
Add newline and flush stream.
rhoReactionThermo & thermo
const solidMixtureProperties & solids() const
Return reference to the global (additional) solids.
PtrList< volScalarField > & Y()
Return the mass-fraction fields.
stressControl lookup("compactNormalStress") >> compactNormalStress
dimensionedScalar exp(const dimensionedScalar &ds)
Thermo package for (S)olids (L)iquids and (G)ases Takes reference to thermo package, and provides:
dimensioned< Type > min(const dimensioned< Type > &, const dimensioned< Type > &)
const basicSpecieMixture & carrier() const
Return reference to the gaseous components.
dimensionedScalar pow(const dimensionedScalar &ds, const dimensionedScalar &expt)
COxidationKineticDiffusionLimitedRate(const dictionary &dict, CloudType &owner)
Construct from dictionary.
const scalar RR
Universal gas constant (default in [J/(kmol K)])
Templated surface reaction model class.
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.
Templated base class for dsmc cloud.
Kinetic/diffusion limited rate surface reaction model for coal parcels. Limited to: ...