ENH: Updated heat of reaction for surface reaction models

This commit is contained in:
andy
2011-01-10 10:41:42 +00:00
parent 034455842e
commit 496a2f0c56
5 changed files with 32 additions and 30 deletions

View File

@ -160,12 +160,12 @@ Foam::scalar Foam::COxidationDiffusionLimitedRate<CloudType>::calculate
dMassSRCarrier[O2GlobalId_] -= dmO2; dMassSRCarrier[O2GlobalId_] -= dmO2;
dMassSRCarrier[CO2GlobalId_] += dmCO2; dMassSRCarrier[CO2GlobalId_] += dmCO2;
const scalar HC = thermo.solids().properties()[CsLocalId_].H(T); const scalar HsC = thermo.solids().properties()[CsLocalId_].Hs(T);
const scalar HCO2 = thermo.carrier().H(CO2GlobalId_, T);
const scalar HO2 = thermo.carrier().H(O2GlobalId_, T);
// Heat of reaction [J] // Heat of reaction [J]
return dmC*HC + dmO2*HO2 - dmCO2*HCO2; // Sensible enthalpy contributions due to O2 depletion and CO2 generation
// handled by particle transfer terms
return dmC*HsC - dmCO2*HcCO2_;
} }

View File

@ -36,12 +36,8 @@ COxidationKineticDiffusionLimitedRate
CloudType& owner CloudType& owner
) )
: :
SurfaceReactionModel<CloudType> SurfaceReactionModel<CloudType>(dict, owner, typeName),
( Sb_(readScalar(this->coeffDict().lookup("Sb"))),
dict,
owner,
typeName
),
C1_(readScalar(this->coeffDict().lookup("C1"))), C1_(readScalar(this->coeffDict().lookup("C1"))),
C2_(readScalar(this->coeffDict().lookup("C2"))), C2_(readScalar(this->coeffDict().lookup("C2"))),
E_(readScalar(this->coeffDict().lookup("E"))), E_(readScalar(this->coeffDict().lookup("E"))),
@ -76,6 +72,7 @@ COxidationKineticDiffusionLimitedRate
) )
: :
SurfaceReactionModel<CloudType>(srm), SurfaceReactionModel<CloudType>(srm),
Sb_(srm.Sb_),
C1_(srm.C1_), C1_(srm.C1_),
C2_(srm.C2_), C2_(srm.C2_),
E_(srm.E_), E_(srm.E_),
@ -83,7 +80,8 @@ COxidationKineticDiffusionLimitedRate
O2GlobalId_(srm.O2GlobalId_), O2GlobalId_(srm.O2GlobalId_),
CO2GlobalId_(srm.CO2GlobalId_), CO2GlobalId_(srm.CO2GlobalId_),
WC_(srm.WC_), WC_(srm.WC_),
WO2_(srm.WO2_) WO2_(srm.WO2_),
HcCO2_(srm.HcCO2_)
{} {}
@ -153,10 +151,10 @@ Foam::scalar Foam::COxidationKineticDiffusionLimitedRate<CloudType>::calculate
const scalar dOmega = dmC/WC_; const scalar dOmega = dmC/WC_;
// Change in O2 mass [kg] // Change in O2 mass [kg]
const scalar dmO2 = dOmega*WO2_; const scalar dmO2 = dOmega*Sb_*WO2_;
// Mass of newly created CO2 [kg] // Mass of newly created CO2 [kg]
const scalar dmCO2 = dOmega*(WC_ + WO2_); const scalar dmCO2 = dOmega*(WC_ + Sb_*WO2_);
// Update local particle C mass // Update local particle C mass
dMassSolid[CsLocalId_] += dOmega*WC_; dMassSolid[CsLocalId_] += dOmega*WC_;
@ -165,12 +163,12 @@ Foam::scalar Foam::COxidationKineticDiffusionLimitedRate<CloudType>::calculate
dMassSRCarrier[O2GlobalId_] -= dmO2; dMassSRCarrier[O2GlobalId_] -= dmO2;
dMassSRCarrier[CO2GlobalId_] += dmCO2; dMassSRCarrier[CO2GlobalId_] += dmCO2;
const scalar HC = thermo.solids().properties()[CsLocalId_].H(T); const scalar HsC = thermo.solids().properties()[CsLocalId_].Hs(T);
const scalar HCO2 = thermo.carrier().H(CO2GlobalId_, T);
const scalar HO2 = thermo.carrier().H(O2GlobalId_, T);
// Heat of reaction [J] // Heat of reaction [J]
return dOmega*(WC_*HC + WO2_*HO2 - (WC_ + WO2_)*HCO2); // Sensible enthalpy contributions due to O2 depletion and CO2 generation
// handled by particle transfer terms
return dmC*HsC - dmCO2*HcCO2_;
} }

View File

@ -61,6 +61,9 @@ class COxidationKineticDiffusionLimitedRate
// Model constants // Model constants
//- Stoichiometry of reaction
const scalar Sb_;
//- Mass diffusion limited rate constant, C1 //- Mass diffusion limited rate constant, C1
const scalar C1_; const scalar C1_;

View File

@ -44,12 +44,7 @@ Foam::COxidationMurphyShaddix<CloudType>::COxidationMurphyShaddix
CloudType& owner CloudType& owner
) )
: :
SurfaceReactionModel<CloudType> SurfaceReactionModel<CloudType>(dict, owner, typeName),
(
dict,
owner,
typeName
),
D0_(readScalar(this->coeffDict().lookup("D0"))), D0_(readScalar(this->coeffDict().lookup("D0"))),
rho0_(readScalar(this->coeffDict().lookup("rho0"))), rho0_(readScalar(this->coeffDict().lookup("rho0"))),
T0_(readScalar(this->coeffDict().lookup("T0"))), T0_(readScalar(this->coeffDict().lookup("T0"))),
@ -62,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();
@ -72,6 +68,7 @@ Foam::COxidationMurphyShaddix<CloudType>::COxidationMurphyShaddix
WO2_ = owner.thermo().carrier().W(O2GlobalId_); WO2_ = owner.thermo().carrier().W(O2GlobalId_);
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];
@ -98,7 +95,8 @@ Foam::COxidationMurphyShaddix<CloudType>::COxidationMurphyShaddix
O2GlobalId_(srm.O2GlobalId_), O2GlobalId_(srm.O2GlobalId_),
CO2GlobalId_(srm.CO2GlobalId_), CO2GlobalId_(srm.CO2GlobalId_),
WC_(srm.WC_), WC_(srm.WC_),
WO2_(srm.WO2_) WO2_(srm.WO2_),
HcCO2_(srm.HcCO2_)
{} {}
@ -225,12 +223,12 @@ Foam::scalar Foam::COxidationMurphyShaddix<CloudType>::calculate
// Add to particle mass transfer // Add to particle mass transfer
dMassSolid[CsLocalId_] += dOmega*WC_; dMassSolid[CsLocalId_] += dOmega*WC_;
const scalar HC = thermo.solids().properties()[CsLocalId_].H(T); const scalar HsC = thermo.solids().properties()[CsLocalId_].Hs(T);
const scalar HCO2 = thermo.carrier().H(CO2GlobalId_, T);
const scalar HO2 = thermo.carrier().H(O2GlobalId_, T);
// Heat of reaction // Heat of reaction [J]
return dOmega*(WC_*HC + WO2_*HO2 - (WC_ + WO2_)*HCO2); // Sensible enthalpy contributions due to O2 depletion and CO2 generation
// handled by particle transfer terms
return dOmega*(WC_*HsC - (WC_ + WO2_)*HcCO2_);
} }

View File

@ -115,6 +115,9 @@ class COxidationMurphyShaddix
//- Molecular weight of O2 [kg/kmol] //- Molecular weight of O2 [kg/kmol]
scalar WO2_; scalar WO2_;
//- Chemical enthalpy of CO2 [J/kg]
scalar HcCO2_;
public: public: