31 template<
class CloudType>
40 Sb_(this->coeffDict().template lookup<scalar>(
"Sb")),
41 C1_(this->coeffDict().
template lookup<scalar>(
"C1")),
42 C2_(this->coeffDict().
template lookup<scalar>(
"C2")),
43 E_(this->coeffDict().
template lookup<scalar>(
"E")),
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.composition().carrier().Wi(O2GlobalId_);
57 const scalar WCO2 = owner.composition().carrier().Wi(CO2GlobalId_);
60 HcCO2_ = owner.composition().carrier().Hf(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_];
135 const scalar YO2 = carrier.
Y(O2GlobalId_)[celli];
138 const scalar D0 = C1_/d*
pow(0.5*(T + Tc), 0.75);
141 const scalar Rk = C2_*
exp(-E_/(
RR*Tc));
147 scalar dmC = Ap*rhoc*
RR*Tc*YO2/WO2_*D0*Rk/(D0 + Rk)*dt;
150 dmC =
min(mass*fComb, dmC);
153 const scalar dOmega = dmC/WC_;
156 const scalar dmO2 = dOmega*Sb_*WO2_;
159 const scalar dmCO2 = dOmega*(WC_ + Sb_*WO2_);
162 dMassSolid[CsLocalId_] += dOmega*WC_;
165 dMassSRCarrier[O2GlobalId_] -= dmO2;
166 dMassSRCarrier[CO2GlobalId_] += dmCO2;
173 return dmC*HsC - dmCO2*HcCO2_;
fluidReactionThermo & thermo
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.
Thermo package for (S)olids (L)iquids and (G)ases Takes reference to thermo package, and provides:
dimensionedSymmTensor sqr(const dimensionedVector &dv)
Ostream & endl(Ostream &os)
Add newline and flush stream.
Specialisation of basicMixture for a mixture consisting of a number for molecular species...
const dimensionedScalar RR
Universal gas constant: default SI units: [J/kmol/K].
dimensionedScalar exp(const dimensionedScalar &ds)
const solidMixtureProperties & solids() const
Return reference to the global (additional) solids.
layerAndWeight min(const layerAndWeight &a, const layerAndWeight &b)
dimensionedScalar pow(const dimensionedScalar &ds, const dimensionedScalar &expt)
COxidationKineticDiffusionLimitedRate(const dictionary &dict, CloudType &owner)
Construct from dictionary.
PtrList< volScalarField > & Y()
Return the mass-fraction fields.
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: ...