Go to the documentation of this file.
33 template<
class CloudType>
44 O2GlobalId_(owner.composition().carrierId(
"O2")),
45 CO2GlobalId_(owner.composition().carrierId(
"CO2")),
51 label idSolid = owner.composition().idSolid();
52 CsLocalId_ = owner.composition().localId(idSolid,
"C");
55 WO2_ = owner.thermo().carrier().W(O2GlobalId_);
56 const scalar WCO2 = owner.thermo().carrier().W(CO2GlobalId_);
59 HcCO2_ = owner.thermo().carrier().Hc(CO2GlobalId_);
64 <<
"Stoichiometry of reaction, Sb, must be greater than zero" <<
nl
68 const scalar YCloc = owner.composition().Y0(idSolid)[CsLocalId_];
69 const scalar YSolidTot = owner.composition().YMixture0()[idSolid];
70 Info<<
" C(s): particle mass fraction = " << YCloc*YSolidTot <<
endl;
74 template<
class CloudType>
94 template<
class CloudType>
102 template<
class CloudType>
125 const label idSolid = CloudType::parcelType::SLD;
126 const scalar fComb = YMixture[idSolid]*YSolid[CsLocalId_];
137 const scalar YO2 =
thermo.carrier().Y(O2GlobalId_)[cellI];
143 dmC =
min(mass*fComb, dmC);
146 const scalar dmO2 = dmC/WC_*Sb_*WO2_;
149 const scalar dmCO2 = dmC + dmO2;
152 dMassSolid[CsLocalId_] += dmC;
155 dMassSRCarrier[O2GlobalId_] -= dmO2;
156 dMassSRCarrier[CO2GlobalId_] += dmCO2;
158 const scalar HsC =
thermo.solids().properties()[CsLocalId_].Hs(
T);
163 return dmC*HsC - dmCO2*HcCO2_;
COxidationDiffusionLimitedRate(const dictionary &dict, CloudType &owner)
Construct from dictionary.
label CO2GlobalId_
CO2 positions in global list.
Thermo package for (S)olids (L)iquids and (G)ases Takes reference to thermo package,...
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.
scalar WC_
Molecular weight of C [kg/kmol].
const scalar Sb_
Stoichiometry of reaction.
label CsLocalId_
Cs positions in global/local lists.
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.
void T(FieldField< Field, Type > &f1, const FieldField< Field, Type > &f2)
scalar WO2_
Molecular weight of O2 [kg/kmol].
virtual ~COxidationDiffusionLimitedRate()
Destructor.
Templated base class for dsmc cloud.
A list of keyword definitions, which are a keyword followed by any number of values (e....
Diffusion limited rate surface reaction model for coal parcels. Limited to:
errorManipArg< error, int > exit(error &err, const int errNo=1)
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
bool readScalar(const char *buf, doubleScalar &s)
Read whole of buf as a scalar. Return true if succesful.
scalar HcCO2_
Formation enthalpy for CO2 [J/kg].
dimensioned< Type > min(const dimensioned< Type > &, const dimensioned< Type > &)
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.
const scalar D_
Diffusion coefficient of oxidants [m2/s].
label O2GlobalId_
O2 position in global list.
stressControl lookup("compactNormalStress") >> compactNormalStress