ENH: Updated coal parcel surface reaction models
This commit is contained in:
parent
5bb2ac5ec7
commit
d2f3ad34d9
@ -44,7 +44,8 @@ Foam::COxidationDiffusionLimitedRate<CloudType>::COxidationDiffusionLimitedRate
|
|||||||
O2GlobalId_(owner.composition().globalCarrierId("O2")),
|
O2GlobalId_(owner.composition().globalCarrierId("O2")),
|
||||||
CO2GlobalId_(owner.composition().globalCarrierId("CO2")),
|
CO2GlobalId_(owner.composition().globalCarrierId("CO2")),
|
||||||
WC_(0.0),
|
WC_(0.0),
|
||||||
WO2_(0.0)
|
WO2_(0.0),
|
||||||
|
HcCO2_(0.0)
|
||||||
{
|
{
|
||||||
// Determine Cs ids
|
// Determine Cs ids
|
||||||
label idSolid = owner.composition().idSolid();
|
label idSolid = owner.composition().idSolid();
|
||||||
@ -55,6 +56,8 @@ Foam::COxidationDiffusionLimitedRate<CloudType>::COxidationDiffusionLimitedRate
|
|||||||
const scalar WCO2 = owner.thermo().carrier().W(CO2GlobalId_);
|
const scalar WCO2 = owner.thermo().carrier().W(CO2GlobalId_);
|
||||||
WC_ = WCO2 - WO2_;
|
WC_ = WCO2 - WO2_;
|
||||||
|
|
||||||
|
HcCO2_ = owner.thermo().carrier().Hc(CO2GlobalId_);
|
||||||
|
|
||||||
if (Sb_ < 0)
|
if (Sb_ < 0)
|
||||||
{
|
{
|
||||||
FatalErrorIn
|
FatalErrorIn
|
||||||
@ -158,14 +161,11 @@ Foam::scalar Foam::COxidationDiffusionLimitedRate<CloudType>::calculate
|
|||||||
dMassSRCarrier[CO2GlobalId_] += dmCO2;
|
dMassSRCarrier[CO2GlobalId_] += dmCO2;
|
||||||
|
|
||||||
const scalar HsC = thermo.solids().properties()[CsLocalId_].Hs(T);
|
const scalar HsC = thermo.solids().properties()[CsLocalId_].Hs(T);
|
||||||
const scalar HCO2 = thermo.carrier().H(CO2GlobalId_, T);
|
|
||||||
|
|
||||||
// carrier enthalpy transfer handled by change in composition
|
// carrier sensible enthalpy exchange handled via change in mass
|
||||||
// const scalar HsO2 = thermo.carrier().Hs(O2GlobalId_, T);
|
|
||||||
// dhsTrans -= dmO2*HsO2;
|
|
||||||
|
|
||||||
// Heat of reaction [J]
|
// Heat of reaction [J]
|
||||||
return dmC*HsC - dmCO2*HCO2;
|
return dmC*HsC - dmCO2*HcCO2_;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -86,6 +86,9 @@ class COxidationDiffusionLimitedRate
|
|||||||
//- Molecular weight of O2 [kg/kmol]
|
//- Molecular weight of O2 [kg/kmol]
|
||||||
scalar WO2_;
|
scalar WO2_;
|
||||||
|
|
||||||
|
//- Formation enthalpy for CO2 [J/kg]
|
||||||
|
scalar HcCO2_;
|
||||||
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
|
@ -45,7 +45,8 @@ COxidationKineticDiffusionLimitedRate
|
|||||||
O2GlobalId_(owner.composition().globalCarrierId("O2")),
|
O2GlobalId_(owner.composition().globalCarrierId("O2")),
|
||||||
CO2GlobalId_(owner.composition().globalCarrierId("CO2")),
|
CO2GlobalId_(owner.composition().globalCarrierId("CO2")),
|
||||||
WC_(0.0),
|
WC_(0.0),
|
||||||
WO2_(0.0)
|
WO2_(0.0),
|
||||||
|
HcCO2_(0.0)
|
||||||
{
|
{
|
||||||
// Determine Cs ids
|
// Determine Cs ids
|
||||||
label idSolid = owner.composition().idSolid();
|
label idSolid = owner.composition().idSolid();
|
||||||
@ -56,6 +57,8 @@ COxidationKineticDiffusionLimitedRate
|
|||||||
const scalar WCO2 = owner.thermo().carrier().W(CO2GlobalId_);
|
const scalar WCO2 = owner.thermo().carrier().W(CO2GlobalId_);
|
||||||
WC_ = WCO2 - WO2_;
|
WC_ = WCO2 - WO2_;
|
||||||
|
|
||||||
|
HcCO2_ = owner.thermo().carrier().Hc(CO2GlobalId_);
|
||||||
|
|
||||||
const scalar YCloc = owner.composition().Y0(idSolid)[CsLocalId_];
|
const scalar YCloc = owner.composition().Y0(idSolid)[CsLocalId_];
|
||||||
const scalar YSolidTot = owner.composition().YMixture0()[idSolid];
|
const scalar YSolidTot = owner.composition().YMixture0()[idSolid];
|
||||||
Info<< " C(s): particle mass fraction = " << YCloc*YSolidTot << endl;
|
Info<< " C(s): particle mass fraction = " << YCloc*YSolidTot << endl;
|
||||||
@ -161,14 +164,11 @@ Foam::scalar Foam::COxidationKineticDiffusionLimitedRate<CloudType>::calculate
|
|||||||
dMassSRCarrier[CO2GlobalId_] += dmCO2;
|
dMassSRCarrier[CO2GlobalId_] += dmCO2;
|
||||||
|
|
||||||
const scalar HsC = thermo.solids().properties()[CsLocalId_].Hs(T);
|
const scalar HsC = thermo.solids().properties()[CsLocalId_].Hs(T);
|
||||||
const scalar HCO2 = thermo.carrier().H(CO2GlobalId_, T);
|
|
||||||
|
|
||||||
// carrier enthalpy transfer handled by change in composition
|
// carrier sensible enthalpy exchange handled via change in mass
|
||||||
// const scalar HsO2 = thermo.carrier().Hs(O2GlobalId_, T);
|
|
||||||
// dhsTrans -= dmO2*HsO2;
|
|
||||||
|
|
||||||
// Heat of reaction [J]
|
// Heat of reaction [J]
|
||||||
return dmC*HsC - dmCO2*HCO2;
|
return dmC*HsC - dmCO2*HcCO2_;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -94,6 +94,9 @@ class COxidationKineticDiffusionLimitedRate
|
|||||||
//- Molecular weight of O2 [kg/kmol]
|
//- Molecular weight of O2 [kg/kmol]
|
||||||
scalar WO2_;
|
scalar WO2_;
|
||||||
|
|
||||||
|
//- Formation enthalpy for CO2 [J/kg]
|
||||||
|
scalar HcCO2_;
|
||||||
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
|
@ -57,7 +57,8 @@ Foam::COxidationMurphyShaddix<CloudType>::COxidationMurphyShaddix
|
|||||||
O2GlobalId_(owner.composition().globalCarrierId("O2")),
|
O2GlobalId_(owner.composition().globalCarrierId("O2")),
|
||||||
CO2GlobalId_(owner.composition().globalCarrierId("CO2")),
|
CO2GlobalId_(owner.composition().globalCarrierId("CO2")),
|
||||||
WC_(0.0),
|
WC_(0.0),
|
||||||
WO2_(0.0)
|
WO2_(0.0),
|
||||||
|
HcCO2_(0.0)
|
||||||
{
|
{
|
||||||
// Determine Cs ids
|
// Determine Cs ids
|
||||||
label idSolid = owner.composition().idSolid();
|
label idSolid = owner.composition().idSolid();
|
||||||
@ -68,6 +69,8 @@ Foam::COxidationMurphyShaddix<CloudType>::COxidationMurphyShaddix
|
|||||||
const scalar WCO2 = owner.thermo().carrier().W(CO2GlobalId_);
|
const scalar WCO2 = owner.thermo().carrier().W(CO2GlobalId_);
|
||||||
WC_ = WCO2 - WO2_;
|
WC_ = WCO2 - WO2_;
|
||||||
|
|
||||||
|
HcCO2_ = owner.thermo().carrier().Hc(CO2GlobalId_);
|
||||||
|
|
||||||
const scalar YCloc = owner.composition().Y0(idSolid)[CsLocalId_];
|
const scalar YCloc = owner.composition().Y0(idSolid)[CsLocalId_];
|
||||||
const scalar YSolidTot = owner.composition().YMixture0()[idSolid];
|
const scalar YSolidTot = owner.composition().YMixture0()[idSolid];
|
||||||
Info<< " C(s): particle mass fraction = " << YCloc*YSolidTot << endl;
|
Info<< " C(s): particle mass fraction = " << YCloc*YSolidTot << endl;
|
||||||
@ -221,14 +224,11 @@ Foam::scalar Foam::COxidationMurphyShaddix<CloudType>::calculate
|
|||||||
dMassSolid[CsLocalId_] += dOmega*WC_;
|
dMassSolid[CsLocalId_] += dOmega*WC_;
|
||||||
|
|
||||||
const scalar HsC = thermo.solids().properties()[CsLocalId_].Hs(T);
|
const scalar HsC = thermo.solids().properties()[CsLocalId_].Hs(T);
|
||||||
const scalar HCO2 = thermo.carrier().H(CO2GlobalId_, T);
|
|
||||||
|
|
||||||
// carrier enthalpy transfer handled by change in composition
|
// carrier sensible enthalpy exchange handled via change in mass
|
||||||
// const scalar HsO2 = thermo.carrier().Hs(O2GlobalId_, T);
|
|
||||||
// dhsTrans -= dmO2*HsO2;
|
|
||||||
|
|
||||||
// Heat of reaction
|
// Heat of reaction [J]
|
||||||
return dOmega*(WC_*HsC - (WC_ + WO2_)*HCO2);
|
return dOmega*(WC_*HsC - (WC_ + WO2_)*HcCO2_);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -115,6 +115,9 @@ class COxidationMurphyShaddix
|
|||||||
//- Molecular weight of O2 [kg/kmol]
|
//- Molecular weight of O2 [kg/kmol]
|
||||||
scalar WO2_;
|
scalar WO2_;
|
||||||
|
|
||||||
|
//- Formation enthalpy for CO2 [J/kg]
|
||||||
|
scalar HcCO2_;
|
||||||
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user