From f26ba2c303af6e5f995f42d44aa93d7901f2209b Mon Sep 17 00:00:00 2001 From: andy Date: Mon, 7 Mar 2011 16:47:50 +0000 Subject: [PATCH] ENH: Updated cloud enthalpy coupling --- .../COxidationDiffusionLimitedRate.C | 15 ++++++--------- .../COxidationDiffusionLimitedRate.H | 3 --- .../COxidationKineticDiffusionLimitedRate.C | 15 ++++++--------- .../COxidationKineticDiffusionLimitedRate.H | 3 --- .../COxidationMurphyShaddix.C | 17 +++++++---------- .../COxidationMurphyShaddix.H | 3 --- .../ReactingMultiphaseParcel.C | 11 ----------- .../Templates/ReactingParcel/ReactingParcel.C | 2 -- 8 files changed, 19 insertions(+), 50 deletions(-) diff --git a/src/lagrangian/coalCombustion/submodels/surfaceReactionModel/COxidationDiffusionLimitedRate/COxidationDiffusionLimitedRate.C b/src/lagrangian/coalCombustion/submodels/surfaceReactionModel/COxidationDiffusionLimitedRate/COxidationDiffusionLimitedRate.C index 2f0369ae3e..f60e67099a 100644 --- a/src/lagrangian/coalCombustion/submodels/surfaceReactionModel/COxidationDiffusionLimitedRate/COxidationDiffusionLimitedRate.C +++ b/src/lagrangian/coalCombustion/submodels/surfaceReactionModel/COxidationDiffusionLimitedRate/COxidationDiffusionLimitedRate.C @@ -44,8 +44,7 @@ Foam::COxidationDiffusionLimitedRate::COxidationDiffusionLimitedRate O2GlobalId_(owner.composition().globalCarrierId("O2")), CO2GlobalId_(owner.composition().globalCarrierId("CO2")), WC_(0.0), - WO2_(0.0), - HcCO2_(0.0) + WO2_(0.0) { // Determine Cs ids label idSolid = owner.composition().idSolid(); @@ -55,7 +54,6 @@ Foam::COxidationDiffusionLimitedRate::COxidationDiffusionLimitedRate WO2_ = owner.thermo().carrier().W(O2GlobalId_); const scalar WCO2 = owner.thermo().carrier().W(CO2GlobalId_); WC_ = WCO2 - WO2_; - HcCO2_ = owner.thermo().carrier().Hc(CO2GlobalId_); if (Sb_ < 0) { @@ -89,8 +87,7 @@ Foam::COxidationDiffusionLimitedRate::COxidationDiffusionLimitedRate O2GlobalId_(srm.O2GlobalId_), CO2GlobalId_(srm.CO2GlobalId_), WC_(srm.WC_), - WO2_(srm.WO2_), - HcCO2_(srm.HcCO2_) + WO2_(srm.WO2_) {} @@ -160,12 +157,12 @@ Foam::scalar Foam::COxidationDiffusionLimitedRate::calculate dMassSRCarrier[O2GlobalId_] -= dmO2; dMassSRCarrier[CO2GlobalId_] += dmCO2; - const scalar HsC = thermo.solids().properties()[CsLocalId_].Hs(T); + const scalar HC = thermo.solids().properties()[CsLocalId_].H(T); + const scalar HCO2 = thermo.carrier().H(CO2GlobalId_, T); + const scalar HO2 = thermo.carrier().H(O2GlobalId_, T); // Heat of reaction [J] - // Sensible enthalpy contributions due to O2 depletion and CO2 generation - // handled by particle transfer terms - return dmC*HsC - dmCO2*HcCO2_; + return dmC*HC + dmO2*HO2 - dmCO2*HCO2; } diff --git a/src/lagrangian/coalCombustion/submodels/surfaceReactionModel/COxidationDiffusionLimitedRate/COxidationDiffusionLimitedRate.H b/src/lagrangian/coalCombustion/submodels/surfaceReactionModel/COxidationDiffusionLimitedRate/COxidationDiffusionLimitedRate.H index 7c7d5ad401..18cca9b9f5 100644 --- a/src/lagrangian/coalCombustion/submodels/surfaceReactionModel/COxidationDiffusionLimitedRate/COxidationDiffusionLimitedRate.H +++ b/src/lagrangian/coalCombustion/submodels/surfaceReactionModel/COxidationDiffusionLimitedRate/COxidationDiffusionLimitedRate.H @@ -86,9 +86,6 @@ class COxidationDiffusionLimitedRate //- Molecular weight of O2 [kg/kmol] scalar WO2_; - //- Chemical enthalpy of CO2 [J/kg] - scalar HcCO2_; - public: diff --git a/src/lagrangian/coalCombustion/submodels/surfaceReactionModel/COxidationKineticDiffusionLimitedRate/COxidationKineticDiffusionLimitedRate.C b/src/lagrangian/coalCombustion/submodels/surfaceReactionModel/COxidationKineticDiffusionLimitedRate/COxidationKineticDiffusionLimitedRate.C index 88930ed390..ef32b558f3 100644 --- a/src/lagrangian/coalCombustion/submodels/surfaceReactionModel/COxidationKineticDiffusionLimitedRate/COxidationKineticDiffusionLimitedRate.C +++ b/src/lagrangian/coalCombustion/submodels/surfaceReactionModel/COxidationKineticDiffusionLimitedRate/COxidationKineticDiffusionLimitedRate.C @@ -45,8 +45,7 @@ COxidationKineticDiffusionLimitedRate O2GlobalId_(owner.composition().globalCarrierId("O2")), CO2GlobalId_(owner.composition().globalCarrierId("CO2")), WC_(0.0), - WO2_(0.0), - HcCO2_(0.0) + WO2_(0.0) { // Determine Cs ids label idSolid = owner.composition().idSolid(); @@ -56,7 +55,6 @@ COxidationKineticDiffusionLimitedRate WO2_ = owner.thermo().carrier().W(O2GlobalId_); const scalar WCO2 = owner.thermo().carrier().W(CO2GlobalId_); WC_ = WCO2 - WO2_; - HcCO2_ = owner.thermo().carrier().Hc(CO2GlobalId_); const scalar YCloc = owner.composition().Y0(idSolid)[CsLocalId_]; const scalar YSolidTot = owner.composition().YMixture0()[idSolid]; @@ -80,8 +78,7 @@ COxidationKineticDiffusionLimitedRate O2GlobalId_(srm.O2GlobalId_), CO2GlobalId_(srm.CO2GlobalId_), WC_(srm.WC_), - WO2_(srm.WO2_), - HcCO2_(srm.HcCO2_) + WO2_(srm.WO2_) {} @@ -163,12 +160,12 @@ Foam::scalar Foam::COxidationKineticDiffusionLimitedRate::calculate dMassSRCarrier[O2GlobalId_] -= dmO2; dMassSRCarrier[CO2GlobalId_] += dmCO2; - const scalar HsC = thermo.solids().properties()[CsLocalId_].Hs(T); + const scalar HC = thermo.solids().properties()[CsLocalId_].H(T); + const scalar HCO2 = thermo.carrier().H(CO2GlobalId_, T); + const scalar HO2 = thermo.carrier().H(O2GlobalId_, T); // Heat of reaction [J] - // Sensible enthalpy contributions due to O2 depletion and CO2 generation - // handled by particle transfer terms - return dmC*HsC - dmCO2*HcCO2_; + return dmC*HC + dmO2*HO2 - dmCO2*HCO2; } diff --git a/src/lagrangian/coalCombustion/submodels/surfaceReactionModel/COxidationKineticDiffusionLimitedRate/COxidationKineticDiffusionLimitedRate.H b/src/lagrangian/coalCombustion/submodels/surfaceReactionModel/COxidationKineticDiffusionLimitedRate/COxidationKineticDiffusionLimitedRate.H index 4eb2797a11..3a4b2da2bd 100644 --- a/src/lagrangian/coalCombustion/submodels/surfaceReactionModel/COxidationKineticDiffusionLimitedRate/COxidationKineticDiffusionLimitedRate.H +++ b/src/lagrangian/coalCombustion/submodels/surfaceReactionModel/COxidationKineticDiffusionLimitedRate/COxidationKineticDiffusionLimitedRate.H @@ -94,9 +94,6 @@ class COxidationKineticDiffusionLimitedRate //- Molecular weight of O2 [kg/kmol] scalar WO2_; - //- Chemical enthalpy of CO2 [J/kg] - scalar HcCO2_; - public: diff --git a/src/lagrangian/coalCombustion/submodels/surfaceReactionModel/COxidationMurphyShaddix/COxidationMurphyShaddix.C b/src/lagrangian/coalCombustion/submodels/surfaceReactionModel/COxidationMurphyShaddix/COxidationMurphyShaddix.C index 16da1b3916..a26b8242de 100644 --- a/src/lagrangian/coalCombustion/submodels/surfaceReactionModel/COxidationMurphyShaddix/COxidationMurphyShaddix.C +++ b/src/lagrangian/coalCombustion/submodels/surfaceReactionModel/COxidationMurphyShaddix/COxidationMurphyShaddix.C @@ -57,8 +57,7 @@ Foam::COxidationMurphyShaddix::COxidationMurphyShaddix O2GlobalId_(owner.composition().globalCarrierId("O2")), CO2GlobalId_(owner.composition().globalCarrierId("CO2")), WC_(0.0), - WO2_(0.0), - HcCO2_(0.0) + WO2_(0.0) { // Determine Cs ids label idSolid = owner.composition().idSolid(); @@ -68,7 +67,6 @@ Foam::COxidationMurphyShaddix::COxidationMurphyShaddix WO2_ = owner.thermo().carrier().W(O2GlobalId_); const scalar WCO2 = owner.thermo().carrier().W(CO2GlobalId_); WC_ = WCO2 - WO2_; - HcCO2_ = owner.thermo().carrier().Hc(CO2GlobalId_); const scalar YCloc = owner.composition().Y0(idSolid)[CsLocalId_]; const scalar YSolidTot = owner.composition().YMixture0()[idSolid]; @@ -95,8 +93,7 @@ Foam::COxidationMurphyShaddix::COxidationMurphyShaddix O2GlobalId_(srm.O2GlobalId_), CO2GlobalId_(srm.CO2GlobalId_), WC_(srm.WC_), - WO2_(srm.WO2_), - HcCO2_(srm.HcCO2_) + WO2_(srm.WO2_) {} @@ -223,12 +220,12 @@ Foam::scalar Foam::COxidationMurphyShaddix::calculate // Add to particle mass transfer dMassSolid[CsLocalId_] += dOmega*WC_; - const scalar HsC = thermo.solids().properties()[CsLocalId_].Hs(T); + const scalar HC = thermo.solids().properties()[CsLocalId_].H(T); + const scalar HCO2 = thermo.carrier().H(CO2GlobalId_, T); + const scalar HO2 = thermo.carrier().H(O2GlobalId_, T); - // Heat of reaction [J] - // Sensible enthalpy contributions due to O2 depletion and CO2 generation - // handled by particle transfer terms - return dOmega*(WC_*HsC - (WC_ + WO2_)*HcCO2_); + // Heat of reaction + return dOmega*(WC_*HC + WO2_*HO2 - (WC_ + WO2_)*HCO2); } diff --git a/src/lagrangian/coalCombustion/submodels/surfaceReactionModel/COxidationMurphyShaddix/COxidationMurphyShaddix.H b/src/lagrangian/coalCombustion/submodels/surfaceReactionModel/COxidationMurphyShaddix/COxidationMurphyShaddix.H index 72e522e014..73981e79d1 100644 --- a/src/lagrangian/coalCombustion/submodels/surfaceReactionModel/COxidationMurphyShaddix/COxidationMurphyShaddix.H +++ b/src/lagrangian/coalCombustion/submodels/surfaceReactionModel/COxidationMurphyShaddix/COxidationMurphyShaddix.H @@ -115,9 +115,6 @@ class COxidationMurphyShaddix //- Molecular weight of O2 [kg/kmol] scalar WO2_; - //- Chemical enthalpy of CO2 [J/kg] - scalar HcCO2_; - public: diff --git a/src/lagrangian/intermediate/parcels/Templates/ReactingMultiphaseParcel/ReactingMultiphaseParcel.C b/src/lagrangian/intermediate/parcels/Templates/ReactingMultiphaseParcel/ReactingMultiphaseParcel.C index fafaeb3ae8..fcad1a4ed3 100644 --- a/src/lagrangian/intermediate/parcels/Templates/ReactingMultiphaseParcel/ReactingMultiphaseParcel.C +++ b/src/lagrangian/intermediate/parcels/Templates/ReactingMultiphaseParcel/ReactingMultiphaseParcel.C @@ -382,16 +382,11 @@ void Foam::ReactingMultiphaseParcel::calc { label gid = td.cloud().composition().localToGlobalCarrierId(GAS, i); td.cloud().rhoTrans(gid)[cellI] += np0*dMassGas[i]; - td.cloud().hsTrans()[cellI] += - np0*dMassGas[i]*td.cloud().composition().carrier().Hs(gid, T0); } forAll(YLiquid_, i) { label gid = td.cloud().composition().localToGlobalCarrierId(LIQ, i); td.cloud().rhoTrans(gid)[cellI] += np0*dMassLiquid[i]; - td.cloud().hsTrans()[cellI] += - np0*dMassLiquid[i] - *td.cloud().composition().carrier().Hs(gid, T0); } /* // No mapping between solid components and carrier phase @@ -399,17 +394,11 @@ void Foam::ReactingMultiphaseParcel::calc { label gid = td.cloud().composition().localToGlobalCarrierId(SLD, i); td.cloud().rhoTrans(gid)[cellI] += np0*dMassSolid[i]; - td.cloud().hsTrans()[cellI] += - np0*dMassSolid[i] - *td.cloud().composition().carrier().Hs(gid, T0); } */ forAll(dMassSRCarrier, i) { td.cloud().rhoTrans(i)[cellI] += np0*dMassSRCarrier[i]; - td.cloud().hsTrans()[cellI] += - np0*dMassSRCarrier[i] - *td.cloud().composition().carrier().Hs(i, T0); } // Update momentum transfer diff --git a/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcel.C b/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcel.C index 2e893319ad..855439b893 100644 --- a/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcel.C +++ b/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcel.C @@ -391,8 +391,6 @@ void Foam::ReactingParcel::calc { label gid = td.cloud().composition().localToGlobalCarrierId(0, i); td.cloud().rhoTrans(gid)[cellI] += np0*dMassPC[i]; - td.cloud().hsTrans()[cellI] += - np0*dMassPC[i]*td.cloud().composition().carrier().Hs(gid, T0); } // Update momentum transfer