33 template<
class CloudType>
41 D12_(this->coeffDict().getScalar(
"D12")),
42 epsilon_(this->coeffDict().getScalar(
"epsilon")),
43 gamma_(this->coeffDict().getScalar(
"gamma")),
44 sigma_(this->coeffDict().getScalar(
"sigma")),
45 E_(this->coeffDict().getScalar(
"E")),
46 A_(this->coeffDict().getScalar(
"A")),
47 Aeff_(this->coeffDict().getScalar(
"Aeff")),
48 Ea_(this->coeffDict().getScalar(
"Ea")),
49 nuFuel_(this->coeffDict().getScalar(
"nuFuel")),
50 nuOx_(this->coeffDict().getScalar(
"nuOx")),
51 nuProd_(this->coeffDict().getScalar(
"nuProd")),
52 O2GlobalId_(owner.composition().carrierId(
"O2")),
58 label idSolid = owner.composition().idSolid();
60 owner.composition().localId
63 this->coeffDict().getWord(
"fuel")
67 owner.composition().localId
70 this->coeffDict().getWord(
"product")
74 WO2_ = owner.thermo().carrier().W(O2GlobalId_);
78 template<
class CloudType>
86 epsilon_(srm.epsilon_),
96 O2GlobalId_(srm.O2GlobalId_),
97 FuelLocalId_(srm.FuelLocalId_),
98 ProdLocalId_(srm.ProdLocalId_),
105 template<
class CloudType>
127 const scalar fComb = YSolid[FuelLocalId_];
136 const auto&
composition = this->owner().composition();
138 const scalar WFuel =
composition.solids().properties()[FuelLocalId_].W();
139 const scalar WProd =
composition.solids().properties()[ProdLocalId_].W();
143 thermo.carrier().Y(O2GlobalId_)[celli]*rhoc/WO2_;
151 const scalar
k = A_*
exp(-Ea_/(
RR*
T));
154 const scalar Deff = D12_*epsilon_/gamma_;
157 const scalar Sc =
nu/(D12_ + ROOTVSMALL);
163 const scalar r = d/2;
165 const scalar
f =
F[FuelLocalId_];
167 const scalar
rhof =
composition.solids().properties()[FuelLocalId_].rho();
169 const scalar deltaRho0 = (nuOx_/nuFuel_)*
rhof/WFuel;
181 F[FuelLocalId_] += dfdt*dt;
184 const scalar ri = r*
cbrt(1-
f);
188 const scalar dridt = -dfdt*(
pow3(r)/3)/
sqr(ri);
194 const scalar dOmega = q02*dt;
198 composition.solids().properties()[ProdLocalId_].Hf()
199 -
composition.solids().properties()[FuelLocalId_].Hf();
202 const scalar sFuel = nuFuel_/(nuOx_);
205 const scalar sProd = nuProd_/(nuOx_);
208 dMassSRCarrier[O2GlobalId_] += dOmega*WO2_;
211 dMassSolid[FuelLocalId_] -= dOmega*WFuel*sFuel;
214 dMassSolid[ProdLocalId_] += dOmega*WProd*sProd;
218 Pout<<
"mass = " << mass <<
nl
219 <<
"fComb = " << fComb <<
nl
220 <<
"dfdt = " << dfdt <<
nl
221 <<
"F = " <<
F[FuelLocalId_] <<
nl
222 <<
"ri = " << ri <<
nl
223 <<
"dridt = " << dridt <<
nl
224 <<
"q02 = " << q02 <<
nl
225 <<
"dOmega = " << dOmega <<
nl
226 <<
"Hr = " << dOmega*WFuel*sFuel*Hc <<
endl;
230 return -dOmega*WFuel*sFuel*Hc;
234 template<
class CloudType>