Go to the documentation of this file.
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>
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;
167 const scalar HsC =
thermo.solids().properties()[CsLocalId_].Hs(
T);
172 return dmC*HsC - dmCO2*HcCO2_;
label O2GlobalId_
O2 position in global list.
const scalar RR
Universal gas constant (default in [J/(kmol K)])
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.
label CsLocalId_
Cs positions in global/local lists.
scalar WO2_
Molecular weight of O2 [kg/kmol].
Thermo package for (S)olids (L)iquids and (G)ases Takes reference to thermo package,...
const scalar C2_
Kinetics limited rate pre-exponential constant, C2.
Basic thermodynamics type based on the use of fitting functions for cp, h, s obtained from the templa...
Ostream & endl(Ostream &os)
Add newline and flush stream.
dimensionedScalar exp(const dimensionedScalar &ds)
Kinetic/diffusion limited rate surface reaction model for coal parcels. Limited to:
const scalar C1_
Mass diffusion limited rate constant, C1.
const scalar E_
Kinetics limited rate activation energy.
COxidationKineticDiffusionLimitedRate(const dictionary &dict, CloudType &owner)
Construct from dictionary.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
Pre-declare SubField and related Field type.
scalar HcCO2_
Formation enthalpy for CO2 [J/kg].
dimensionedScalar pow(const dimensionedScalar &ds, const dimensionedScalar &expt)
Templated base class for dsmc cloud.
A list of keyword definitions, which are a keyword followed by any number of values (e....
label CO2GlobalId_
CO2 positions in global list.
virtual ~COxidationKineticDiffusionLimitedRate()
Destructor.
dimensionedSymmTensor sqr(const dimensionedVector &dv)
scalar WC_
Molecular weight of C [kg/kmol].
const scalar Sb_
Stoichiometry of reaction.
dimensioned< Type > min(const dimensioned< Type > &, const dimensioned< Type > &)
stressControl lookup("compactNormalStress") >> compactNormalStress