mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
updates
This commit is contained in:
@ -59,10 +59,10 @@ Foam::COxidationDiffusionLimitedRate::COxidationDiffusionLimitedRate
|
|||||||
CsLocalId_ = owner.composition().localId(idSolid, "C");
|
CsLocalId_ = owner.composition().localId(idSolid, "C");
|
||||||
|
|
||||||
// Set local copies of thermo properties
|
// Set local copies of thermo properties
|
||||||
WO2_ = owner().composition().gases()[O2GlobalId_].W();
|
WO2_ = owner().composition().carrierSpecies()[O2GlobalId_].W();
|
||||||
scalar WCO2 = owner().composition().gases()[CO2GlobalId_].W();
|
scalar WCO2 = owner().composition().carrierSpecies()[CO2GlobalId_].W();
|
||||||
WC_ = WCO2 - WO2_;
|
WC_ = WCO2 - WO2_;
|
||||||
HcCO2_ = owner().composition().gases()[CO2GlobalId_].Hc();
|
HcCO2_ = owner().composition().carrierSpecies()[CO2GlobalId_].Hc();
|
||||||
|
|
||||||
if (Sb_ < 0)
|
if (Sb_ < 0)
|
||||||
{
|
{
|
||||||
@ -138,7 +138,7 @@ Foam::scalar Foam::COxidationDiffusionLimitedRate::calculate
|
|||||||
const scalar dmO2 = dmC/WC_*Sb_*WO2_;
|
const scalar dmO2 = dmC/WC_*Sb_*WO2_;
|
||||||
|
|
||||||
// Mass of newly created CO2 [kg]
|
// Mass of newly created CO2 [kg]
|
||||||
const scalar dmCO2 = dmC + dmO2;
|
const scalar dmCO2 = dmC + dmO2;
|
||||||
|
|
||||||
// Update local particle C mass
|
// Update local particle C mass
|
||||||
dMassSolid[CsLocalId_] += dmC;
|
dMassSolid[CsLocalId_] += dmC;
|
||||||
|
|||||||
@ -62,10 +62,10 @@ COxidationKineticDiffusionLimitedRate
|
|||||||
CsLocalId_ = owner.composition().localId(idSolid, "C");
|
CsLocalId_ = owner.composition().localId(idSolid, "C");
|
||||||
|
|
||||||
// Set local copies of thermo properties
|
// Set local copies of thermo properties
|
||||||
WO2_ = owner().composition().gases()[O2GlobalId_].W();
|
WO2_ = owner().composition().carrierSpecies()[O2GlobalId_].W();
|
||||||
scalar WCO2 = owner().composition().gases()[CO2GlobalId_].W();
|
scalar WCO2 = owner().composition().carrierSpecies()[CO2GlobalId_].W();
|
||||||
WC_ = WCO2 - WO2_;
|
WC_ = WCO2 - WO2_;
|
||||||
HcCO2_ = owner().composition().gases()[CO2GlobalId_].Hc();
|
HcCO2_ = owner().composition().carrierSpecies()[CO2GlobalId_].Hc();
|
||||||
|
|
||||||
if (Sb_ < 0)
|
if (Sb_ < 0)
|
||||||
{
|
{
|
||||||
@ -150,7 +150,7 @@ Foam::scalar Foam::COxidationKineticDiffusionLimitedRate::calculate
|
|||||||
const scalar dmO2 = dmC/WC_*Sb_*WO2_;
|
const scalar dmO2 = dmC/WC_*Sb_*WO2_;
|
||||||
|
|
||||||
// Mass of newly created CO2 [kg]
|
// Mass of newly created CO2 [kg]
|
||||||
const scalar dmCO2 = dmC + dmO2;
|
const scalar dmCO2 = dmC + dmO2;
|
||||||
|
|
||||||
// Update local particle C mass
|
// Update local particle C mass
|
||||||
dMassSolid[CsLocalId_] += dmC;
|
dMassSolid[CsLocalId_] += dmC;
|
||||||
|
|||||||
@ -47,17 +47,16 @@ Foam::COxidationMurphyShaddix::COxidationMurphyShaddix
|
|||||||
owner,
|
owner,
|
||||||
typeName
|
typeName
|
||||||
),
|
),
|
||||||
coeffDict_(dict.subDict(typeName + "Coeffs")),
|
D0_(dimensionedScalar(this->coeffDict().lookup("D0")).value()),
|
||||||
D0_(dimensionedScalar(coeffDict_.lookup("D0")).value()),
|
rho0_(dimensionedScalar(this->coeffDict().lookup("rho0")).value()),
|
||||||
rho0_(dimensionedScalar(coeffDict_.lookup("rho0")).value()),
|
T0_(dimensionedScalar(this->coeffDict().lookup("T0")).value()),
|
||||||
T0_(dimensionedScalar(coeffDict_.lookup("T0")).value()),
|
Dn_(dimensionedScalar(this->coeffDict().lookup("Dn")).value()),
|
||||||
Dn_(dimensionedScalar(coeffDict_.lookup("Dn")).value()),
|
A_(dimensionedScalar(this->coeffDict().lookup("A")).value()),
|
||||||
A_(dimensionedScalar(coeffDict_.lookup("A")).value()),
|
E_(dimensionedScalar(this->coeffDict().lookup("E")).value()),
|
||||||
E_(dimensionedScalar(coeffDict_.lookup("E")).value()),
|
n_(dimensionedScalar(this->coeffDict().lookup("n")).value()),
|
||||||
n_(dimensionedScalar(coeffDict_.lookup("n")).value()),
|
WVol_(dimensionedScalar(this->coeffDict().lookup("WVol")).value()),
|
||||||
WVol_(dimensionedScalar(coeffDict_.lookup("WVol")).value()),
|
dH0_(dimensionedScalar(this->coeffDict().lookup("dH0")).value()),
|
||||||
dH0_(dimensionedScalar(coeffDict_.lookup("dH0")).value()),
|
TMaxdH_(dimensionedScalar(this->coeffDict().lookup("TmaxdH")).value()),
|
||||||
TMaxdH_(dimensionedScalar(coeffDict_.lookup("TmaxdH")).value()),
|
|
||||||
CsLocalId_(-1),
|
CsLocalId_(-1),
|
||||||
O2GlobalId_(-1),
|
O2GlobalId_(-1),
|
||||||
CO2GlobalId_(-1)
|
CO2GlobalId_(-1)
|
||||||
@ -138,16 +137,17 @@ Foam::scalar Foam::COxidationMurphyShaddix::calculate
|
|||||||
const scalar D = D0_*(rho0_/rhoc)*pow(Tc/T0_, Dn_);
|
const scalar D = D0_*(rho0_/rhoc)*pow(Tc/T0_, Dn_);
|
||||||
|
|
||||||
// Molecular weight of O2 [kg/kmol]
|
// Molecular weight of O2 [kg/kmol]
|
||||||
const scalar WO2 = owner().composition().gases()[O2GlobalId_].W();
|
const scalar WO2 = owner().composition().carrierSpecies()[O2GlobalId_].W();
|
||||||
|
|
||||||
// Molecular weight of CO2 [kg/kmol]
|
// Molecular weight of CO2 [kg/kmol]
|
||||||
const scalar WCO2 = owner().composition().gases()[CO2GlobalId_].W();
|
const scalar WCO2 =
|
||||||
|
owner().composition().carrierSpecies()[CO2GlobalId_].W();
|
||||||
|
|
||||||
// Molecular weight of C [kg/kmol]
|
// Molecular weight of C [kg/kmol]
|
||||||
const scalar WC = WCO2 - WO2;
|
const scalar WC = WCO2 - WO2;
|
||||||
|
|
||||||
// Far field partial pressure O2 [Pa]
|
// Far field partial pressure O2 [Pa]
|
||||||
const scalar PO2 = rhoO2/WO2*specie::RR*Tc;
|
const scalar ppO2 = rhoO2/WO2*specie::RR*Tc;
|
||||||
|
|
||||||
// Molar emission rate of volatiles per unit surface area
|
// Molar emission rate of volatiles per unit surface area
|
||||||
const scalar qVol = sum(dMassVolatile)/(WVol_*Ap);
|
const scalar qVol = sum(dMassVolatile)/(WVol_*Ap);
|
||||||
@ -157,23 +157,19 @@ Foam::scalar Foam::COxidationMurphyShaddix::calculate
|
|||||||
|
|
||||||
if (debug)
|
if (debug)
|
||||||
{
|
{
|
||||||
Pout << " C = " << C << endl;
|
Pout<< "mass = " << mass << nl
|
||||||
|
<< "fComb = " << fComb << nl
|
||||||
|
<< "WC = " << WC << nl
|
||||||
|
<< "Ap = " << Ap << nl
|
||||||
|
<< "dt = " << dt << nl
|
||||||
|
<< "C = " << C << nl
|
||||||
|
<< endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Molar reaction rate per unit surface area [kmol/(m^2.s)]
|
// Molar reaction rate per unit surface area [kmol/(m^2.s)]
|
||||||
scalar qCsOld = 0;
|
scalar qCsOld = 0;
|
||||||
scalar qCs = 1;
|
scalar qCs = 1;
|
||||||
|
|
||||||
if (debug)
|
|
||||||
{
|
|
||||||
Pout<< "mass = " << mass << nl
|
|
||||||
<< "fComb = " << fComb << nl
|
|
||||||
<< "WC = " << WC << nl
|
|
||||||
<< "Ap = " << Ap << nl
|
|
||||||
<< "dt = " << dt
|
|
||||||
<< nl << endl;
|
|
||||||
}
|
|
||||||
|
|
||||||
const scalar qCsLim = mass*fComb/(WC*Ap*dt);
|
const scalar qCsLim = mass*fComb/(WC*Ap*dt);
|
||||||
|
|
||||||
if (debug)
|
if (debug)
|
||||||
@ -182,10 +178,10 @@ Foam::scalar Foam::COxidationMurphyShaddix::calculate
|
|||||||
}
|
}
|
||||||
|
|
||||||
label iter = 0;
|
label iter = 0;
|
||||||
while ((fabs(qCs - qCsOld)/qCs>tolerance_) && (iter<=maxIters_))
|
while ((mag(qCs - qCsOld)/qCs > tolerance_) && (iter <= maxIters_))
|
||||||
{
|
{
|
||||||
qCsOld = qCs;
|
qCsOld = qCs;
|
||||||
const scalar PO2Surface = PO2*exp(-(qCs + qVol)*d/(2*C*D));
|
const scalar PO2Surface = ppO2*exp(-(qCs + qVol)*d/(2*C*D));
|
||||||
qCs = A_*exp(-E_/(specie::RR*T))*pow(PO2Surface, n_);
|
qCs = A_*exp(-E_/(specie::RR*T))*pow(PO2Surface, n_);
|
||||||
qCs = (100.0*qCs + iter*qCsOld)/(100.0 + iter);
|
qCs = (100.0*qCs + iter*qCsOld)/(100.0 + iter);
|
||||||
qCs = min(qCs, qCsLim);
|
qCs = min(qCs, qCsLim);
|
||||||
|
|||||||
@ -51,10 +51,6 @@ class COxidationMurphyShaddix
|
|||||||
{
|
{
|
||||||
// Private data
|
// Private data
|
||||||
|
|
||||||
//- Coefficients dictionary
|
|
||||||
const dictionary& coeffDict_;
|
|
||||||
|
|
||||||
|
|
||||||
// Model constants
|
// Model constants
|
||||||
|
|
||||||
//- Reference diffusion constant
|
//- Reference diffusion constant
|
||||||
|
|||||||
Reference in New Issue
Block a user