mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
thermodynamics: Added pressure as an addition argument to all primitive thermodynamic functions
Added additional layer of templating to reactingMixture to support specie functions in a generic manner.
This commit is contained in:
@ -87,7 +87,7 @@
|
|||||||
forAll(Y, i)
|
forAll(Y, i)
|
||||||
{
|
{
|
||||||
Y[i] = Y0[i];
|
Y[i] = Y0[i];
|
||||||
hs0 += Y0[i]*specieData[i].Hs(T0);
|
hs0 += Y0[i]*specieData[i].Hs(p[i], T0);
|
||||||
}
|
}
|
||||||
|
|
||||||
hs = dimensionedScalar("h", dimEnergy/dimMass, hs0);
|
hs = dimensionedScalar("h", dimEnergy/dimMass, hs0);
|
||||||
|
|||||||
@ -211,7 +211,7 @@ int main(int argc, char *argv[])
|
|||||||
co = co2*
|
co = co2*
|
||||||
min
|
min
|
||||||
(
|
(
|
||||||
CO2BreakUp.Kn(equilibriumFlameTemperature, P, N)
|
CO2BreakUp.Kn(P, equilibriumFlameTemperature, N)
|
||||||
/::sqrt(max(ores, 0.001)),
|
/::sqrt(max(ores, 0.001)),
|
||||||
1.0
|
1.0
|
||||||
);
|
);
|
||||||
@ -219,7 +219,7 @@ int main(int argc, char *argv[])
|
|||||||
h2 = h2o*
|
h2 = h2o*
|
||||||
min
|
min
|
||||||
(
|
(
|
||||||
H2OBreakUp.Kn(equilibriumFlameTemperature, P, N)
|
H2OBreakUp.Kn(P, equilibriumFlameTemperature, N)
|
||||||
/::sqrt(max(ores, 0.001)),
|
/::sqrt(max(ores, 0.001)),
|
||||||
1.0
|
1.0
|
||||||
);
|
);
|
||||||
|
|||||||
@ -424,7 +424,7 @@ void Foam::ReactingMultiphaseParcel<ParcelType>::calc
|
|||||||
{
|
{
|
||||||
scalar dm = np0*dMassGas[i];
|
scalar dm = np0*dMassGas[i];
|
||||||
label gid = composition.localToGlobalCarrierId(GAS, i);
|
label gid = composition.localToGlobalCarrierId(GAS, i);
|
||||||
scalar hs = composition.carrier().Hs(gid, T0);
|
scalar hs = composition.carrier().Hs(gid, pc, T0);
|
||||||
td.cloud().rhoTrans(gid)[cellI] += dm;
|
td.cloud().rhoTrans(gid)[cellI] += dm;
|
||||||
td.cloud().UTrans()[cellI] += dm*U0;
|
td.cloud().UTrans()[cellI] += dm*U0;
|
||||||
td.cloud().hsTrans()[cellI] += dm*hs;
|
td.cloud().hsTrans()[cellI] += dm*hs;
|
||||||
@ -433,7 +433,7 @@ void Foam::ReactingMultiphaseParcel<ParcelType>::calc
|
|||||||
{
|
{
|
||||||
scalar dm = np0*dMassLiquid[i];
|
scalar dm = np0*dMassLiquid[i];
|
||||||
label gid = composition.localToGlobalCarrierId(LIQ, i);
|
label gid = composition.localToGlobalCarrierId(LIQ, i);
|
||||||
scalar hs = composition.carrier().Hs(gid, T0);
|
scalar hs = composition.carrier().Hs(gid, pc, T0);
|
||||||
td.cloud().rhoTrans(gid)[cellI] += dm;
|
td.cloud().rhoTrans(gid)[cellI] += dm;
|
||||||
td.cloud().UTrans()[cellI] += dm*U0;
|
td.cloud().UTrans()[cellI] += dm*U0;
|
||||||
td.cloud().hsTrans()[cellI] += dm*hs;
|
td.cloud().hsTrans()[cellI] += dm*hs;
|
||||||
@ -444,7 +444,7 @@ void Foam::ReactingMultiphaseParcel<ParcelType>::calc
|
|||||||
{
|
{
|
||||||
scalar dm = np0*dMassSolid[i];
|
scalar dm = np0*dMassSolid[i];
|
||||||
label gid = composition.localToGlobalCarrierId(SLD, i);
|
label gid = composition.localToGlobalCarrierId(SLD, i);
|
||||||
scalar hs = composition.carrier().Hs(gid, T0);
|
scalar hs = composition.carrier().Hs(gid, pc, T0);
|
||||||
td.cloud().rhoTrans(gid)[cellI] += dm;
|
td.cloud().rhoTrans(gid)[cellI] += dm;
|
||||||
td.cloud().UTrans()[cellI] += dm*U0;
|
td.cloud().UTrans()[cellI] += dm*U0;
|
||||||
td.cloud().hsTrans()[cellI] += dm*hs;
|
td.cloud().hsTrans()[cellI] += dm*hs;
|
||||||
@ -453,7 +453,7 @@ void Foam::ReactingMultiphaseParcel<ParcelType>::calc
|
|||||||
forAll(dMassSRCarrier, i)
|
forAll(dMassSRCarrier, i)
|
||||||
{
|
{
|
||||||
scalar dm = np0*dMassSRCarrier[i];
|
scalar dm = np0*dMassSRCarrier[i];
|
||||||
scalar hs = composition.carrier().Hs(i, T0);
|
scalar hs = composition.carrier().Hs(i, pc, T0);
|
||||||
td.cloud().rhoTrans(i)[cellI] += dm;
|
td.cloud().rhoTrans(i)[cellI] += dm;
|
||||||
td.cloud().UTrans()[cellI] += dm*U0;
|
td.cloud().UTrans()[cellI] += dm*U0;
|
||||||
td.cloud().hsTrans()[cellI] += dm*hs;
|
td.cloud().hsTrans()[cellI] += dm*hs;
|
||||||
@ -541,7 +541,7 @@ void Foam::ReactingMultiphaseParcel<ParcelType>::calcDevolatilisation
|
|||||||
forAll(dMassDV, i)
|
forAll(dMassDV, i)
|
||||||
{
|
{
|
||||||
const label id = composition.localToGlobalCarrierId(GAS, i);
|
const label id = composition.localToGlobalCarrierId(GAS, i);
|
||||||
const scalar Cp = composition.carrier().Cp(id, Ts);
|
const scalar Cp = composition.carrier().Cp(id, this->pc_, Ts);
|
||||||
const scalar W = composition.carrier().W(id);
|
const scalar W = composition.carrier().W(id);
|
||||||
const scalar Ni = dMassDV[i]/(this->areaS(d)*dt*W);
|
const scalar Ni = dMassDV[i]/(this->areaS(d)*dt*W);
|
||||||
|
|
||||||
|
|||||||
@ -104,7 +104,12 @@ void Foam::ReactingParcel<ParcelType>::cellValueSourceCorrection
|
|||||||
forAll(td.cloud().rhoTrans(), i)
|
forAll(td.cloud().rhoTrans(), i)
|
||||||
{
|
{
|
||||||
scalar Y = td.cloud().rhoTrans(i)[cellI]/addedMass;
|
scalar Y = td.cloud().rhoTrans(i)[cellI]/addedMass;
|
||||||
CpEff += Y*td.cloud().composition().carrier().Cp(i, this->Tc_);
|
CpEff += Y*td.cloud().composition().carrier().Cp
|
||||||
|
(
|
||||||
|
i,
|
||||||
|
this->pc_,
|
||||||
|
this->Tc_
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
const scalar Cpc = td.CpInterp().psi()[cellI];
|
const scalar Cpc = td.CpInterp().psi()[cellI];
|
||||||
@ -206,9 +211,9 @@ void Foam::ReactingParcel<ParcelType>::correctSurfaceValues
|
|||||||
const scalar cbrtW = cbrt(W);
|
const scalar cbrtW = cbrt(W);
|
||||||
|
|
||||||
rhos += Xs[i]*W;
|
rhos += Xs[i]*W;
|
||||||
mus += Ys[i]*sqrtW*thermo.carrier().mu(i, T);
|
mus += Ys[i]*sqrtW*thermo.carrier().mu(i, pc_, T);
|
||||||
kappas += Ys[i]*cbrtW*thermo.carrier().kappa(i, T);
|
kappas += Ys[i]*cbrtW*thermo.carrier().kappa(i, pc_, T);
|
||||||
Cps += Xs[i]*thermo.carrier().Cp(i, T);
|
Cps += Xs[i]*thermo.carrier().Cp(i, pc_, T);
|
||||||
|
|
||||||
sumYiSqrtW += Ys[i]*sqrtW;
|
sumYiSqrtW += Ys[i]*sqrtW;
|
||||||
sumYiCbrtW += Ys[i]*cbrtW;
|
sumYiCbrtW += Ys[i]*cbrtW;
|
||||||
@ -378,7 +383,7 @@ void Foam::ReactingParcel<ParcelType>::calc
|
|||||||
{
|
{
|
||||||
scalar dmi = dm*Y_[i];
|
scalar dmi = dm*Y_[i];
|
||||||
label gid = composition.localToGlobalCarrierId(0, i);
|
label gid = composition.localToGlobalCarrierId(0, i);
|
||||||
scalar hs = composition.carrier().Hs(gid, T0);
|
scalar hs = composition.carrier().Hs(gid, pc_, T0);
|
||||||
|
|
||||||
td.cloud().rhoTrans(gid)[cellI] += dmi;
|
td.cloud().rhoTrans(gid)[cellI] += dmi;
|
||||||
td.cloud().hsTrans()[cellI] += dmi*hs;
|
td.cloud().hsTrans()[cellI] += dmi*hs;
|
||||||
@ -439,7 +444,7 @@ void Foam::ReactingParcel<ParcelType>::calc
|
|||||||
{
|
{
|
||||||
scalar dm = np0*dMass[i];
|
scalar dm = np0*dMass[i];
|
||||||
label gid = composition.localToGlobalCarrierId(0, i);
|
label gid = composition.localToGlobalCarrierId(0, i);
|
||||||
scalar hs = composition.carrier().Hs(gid, T0);
|
scalar hs = composition.carrier().Hs(gid, pc_, T0);
|
||||||
|
|
||||||
td.cloud().rhoTrans(gid)[cellI] += dm;
|
td.cloud().rhoTrans(gid)[cellI] += dm;
|
||||||
td.cloud().UTrans()[cellI] += dm*U0;
|
td.cloud().UTrans()[cellI] += dm*U0;
|
||||||
@ -543,7 +548,7 @@ void Foam::ReactingParcel<ParcelType>::calcPhaseChange
|
|||||||
const label idc = composition.localToGlobalCarrierId(idPhase, i);
|
const label idc = composition.localToGlobalCarrierId(idPhase, i);
|
||||||
const label idl = composition.globalIds(idPhase)[i];
|
const label idl = composition.globalIds(idPhase)[i];
|
||||||
|
|
||||||
const scalar Cp = composition.carrier().Cp(idc, Ts);
|
const scalar Cp = composition.carrier().Cp(idc, pc_, Ts);
|
||||||
const scalar W = composition.carrier().W(idc);
|
const scalar W = composition.carrier().W(idc);
|
||||||
const scalar Ni = dMassPC[i]/(this->areaS(d)*dt*W);
|
const scalar Ni = dMassPC[i]/(this->areaS(d)*dt*W);
|
||||||
|
|
||||||
|
|||||||
@ -396,7 +396,7 @@ Foam::scalar Foam::CompositionModel<CloudType>::H
|
|||||||
forAll(Y, i)
|
forAll(Y, i)
|
||||||
{
|
{
|
||||||
label gid = props.globalIds()[i];
|
label gid = props.globalIds()[i];
|
||||||
HMixture += Y[i]*thermo_.carrier().Hs(gid, T);
|
HMixture += Y[i]*thermo_.carrier().Hs(gid, p, T);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -460,7 +460,7 @@ Foam::scalar Foam::CompositionModel<CloudType>::Hs
|
|||||||
forAll(Y, i)
|
forAll(Y, i)
|
||||||
{
|
{
|
||||||
label gid = props.globalIds()[i];
|
label gid = props.globalIds()[i];
|
||||||
HsMixture += Y[i]*thermo_.carrier().Hs(gid, T);
|
HsMixture += Y[i]*thermo_.carrier().Hs(gid, p, T);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -584,7 +584,7 @@ Foam::scalar Foam::CompositionModel<CloudType>::Cp
|
|||||||
forAll(Y, i)
|
forAll(Y, i)
|
||||||
{
|
{
|
||||||
label gid = props.globalIds()[i];
|
label gid = props.globalIds()[i];
|
||||||
CpMixture += Y[i]*thermo_.carrier().Cp(gid, T);
|
CpMixture += Y[i]*thermo_.carrier().Cp(gid, p, T);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -216,7 +216,7 @@ Foam::scalar Foam::LiquidEvaporation<CloudType>::dh
|
|||||||
}
|
}
|
||||||
case (parent::etEnthalpyDifference):
|
case (parent::etEnthalpyDifference):
|
||||||
{
|
{
|
||||||
scalar hc = this->owner().composition().carrier().Hs(idc, T);
|
scalar hc = this->owner().composition().carrier().Hs(idc, p, T);
|
||||||
scalar hp = liquids_.properties()[idl].h(p, T);
|
scalar hp = liquids_.properties()[idl].h(p, T);
|
||||||
|
|
||||||
dh = hc - hp;
|
dh = hc - hp;
|
||||||
|
|||||||
@ -171,10 +171,10 @@ void Foam::LiquidEvaporationBoil<CloudType>::calculate
|
|||||||
forAll(this->owner().thermo().carrier().Y(), i)
|
forAll(this->owner().thermo().carrier().Y(), i)
|
||||||
{
|
{
|
||||||
scalar Yc = this->owner().thermo().carrier().Y()[i][cellI];
|
scalar Yc = this->owner().thermo().carrier().Y()[i][cellI];
|
||||||
Hc += Yc*this->owner().thermo().carrier().Hs(i, Tc);
|
Hc += Yc*this->owner().thermo().carrier().Hs(i, pc, Tc);
|
||||||
Hsc += Yc*this->owner().thermo().carrier().Hs(i, Ts);
|
Hsc += Yc*this->owner().thermo().carrier().Hs(i, ps, Ts);
|
||||||
Cpc += Yc*this->owner().thermo().carrier().Cp(i, Ts);
|
Cpc += Yc*this->owner().thermo().carrier().Cp(i, ps, Ts);
|
||||||
kappac += Yc*this->owner().thermo().carrier().kappa(i, Ts);
|
kappac += Yc*this->owner().thermo().carrier().kappa(i, ps, Ts);
|
||||||
}
|
}
|
||||||
|
|
||||||
// calculate mass transfer of each specie in liquid
|
// calculate mass transfer of each specie in liquid
|
||||||
@ -315,7 +315,7 @@ Foam::scalar Foam::LiquidEvaporationBoil<CloudType>::dh
|
|||||||
}
|
}
|
||||||
case (parent::etEnthalpyDifference):
|
case (parent::etEnthalpyDifference):
|
||||||
{
|
{
|
||||||
scalar hc = this->owner().composition().carrier().Hs(idc, TDash);
|
scalar hc = this->owner().composition().carrier().Hs(idc, p, TDash);
|
||||||
scalar hp = liquids_.properties()[idl].h(p, TDash);
|
scalar hp = liquids_.properties()[idl].h(p, TDash);
|
||||||
|
|
||||||
dh = hc - hp;
|
dh = hc - hp;
|
||||||
|
|||||||
@ -146,7 +146,8 @@ void reactingOneDim::updatePhiGas()
|
|||||||
|
|
||||||
forAll(gasTable, gasI)
|
forAll(gasTable, gasI)
|
||||||
{
|
{
|
||||||
tmp<volScalarField> tHsiGas = solidChemistry_->gasHs(T_, gasI);
|
tmp<volScalarField> tHsiGas =
|
||||||
|
solidChemistry_->gasHs(p, T_, gasI);
|
||||||
tmp<volScalarField> tRRiGas = solidChemistry_->RRg(gasI);
|
tmp<volScalarField> tRRiGas = solidChemistry_->RRg(gasI);
|
||||||
|
|
||||||
const volScalarField& HsiGas = tHsiGas();
|
const volScalarField& HsiGas = tHsiGas();
|
||||||
|
|||||||
@ -153,6 +153,7 @@ public:
|
|||||||
//- Enthalpy/Internal energy for cell-set [J/kg]
|
//- Enthalpy/Internal energy for cell-set [J/kg]
|
||||||
virtual tmp<scalarField> he
|
virtual tmp<scalarField> he
|
||||||
(
|
(
|
||||||
|
const scalarField& p,
|
||||||
const scalarField& T,
|
const scalarField& T,
|
||||||
const labelList& cells
|
const labelList& cells
|
||||||
) const = 0;
|
) const = 0;
|
||||||
@ -160,6 +161,7 @@ public:
|
|||||||
//- Enthalpy/Internal energy for patch [J/kg]
|
//- Enthalpy/Internal energy for patch [J/kg]
|
||||||
virtual tmp<scalarField> he
|
virtual tmp<scalarField> he
|
||||||
(
|
(
|
||||||
|
const scalarField& p,
|
||||||
const scalarField& T,
|
const scalarField& T,
|
||||||
const label patchi
|
const label patchi
|
||||||
) const = 0;
|
) const = 0;
|
||||||
@ -171,6 +173,7 @@ public:
|
|||||||
virtual tmp<scalarField> THE
|
virtual tmp<scalarField> THE
|
||||||
(
|
(
|
||||||
const scalarField& h,
|
const scalarField& h,
|
||||||
|
const scalarField& p,
|
||||||
const scalarField& T0, // starting temperature
|
const scalarField& T0, // starting temperature
|
||||||
const labelList& cells
|
const labelList& cells
|
||||||
) const = 0;
|
) const = 0;
|
||||||
@ -179,6 +182,7 @@ public:
|
|||||||
virtual tmp<scalarField> THE
|
virtual tmp<scalarField> THE
|
||||||
(
|
(
|
||||||
const scalarField& h,
|
const scalarField& h,
|
||||||
|
const scalarField& p,
|
||||||
const scalarField& T0, // starting temperature
|
const scalarField& T0, // starting temperature
|
||||||
const label patchi
|
const label patchi
|
||||||
) const = 0;
|
) const = 0;
|
||||||
@ -195,6 +199,7 @@ public:
|
|||||||
//- Heat capacity at constant pressure for patch [J/kg/K]
|
//- Heat capacity at constant pressure for patch [J/kg/K]
|
||||||
virtual tmp<scalarField> Cp
|
virtual tmp<scalarField> Cp
|
||||||
(
|
(
|
||||||
|
const scalarField& p,
|
||||||
const scalarField& T,
|
const scalarField& T,
|
||||||
const label patchi
|
const label patchi
|
||||||
) const = 0;
|
) const = 0;
|
||||||
@ -205,6 +210,7 @@ public:
|
|||||||
//- Heat capacity at constant volume for patch [J/kg/K]
|
//- Heat capacity at constant volume for patch [J/kg/K]
|
||||||
virtual tmp<scalarField> Cv
|
virtual tmp<scalarField> Cv
|
||||||
(
|
(
|
||||||
|
const scalarField& p,
|
||||||
const scalarField& T,
|
const scalarField& T,
|
||||||
const label patchi
|
const label patchi
|
||||||
) const = 0;
|
) const = 0;
|
||||||
@ -215,6 +221,7 @@ public:
|
|||||||
//- gamma = Cp/Cv for patch []
|
//- gamma = Cp/Cv for patch []
|
||||||
virtual tmp<scalarField> gamma
|
virtual tmp<scalarField> gamma
|
||||||
(
|
(
|
||||||
|
const scalarField& p,
|
||||||
const scalarField& T,
|
const scalarField& T,
|
||||||
const label patchi
|
const label patchi
|
||||||
) const = 0;
|
) const = 0;
|
||||||
@ -225,6 +232,7 @@ public:
|
|||||||
//- Heat capacity at constant pressure/volume for patch [J/kg/K]
|
//- Heat capacity at constant pressure/volume for patch [J/kg/K]
|
||||||
virtual tmp<scalarField> Cpv
|
virtual tmp<scalarField> Cpv
|
||||||
(
|
(
|
||||||
|
const scalarField& p,
|
||||||
const scalarField& T,
|
const scalarField& T,
|
||||||
const label patchi
|
const label patchi
|
||||||
) const = 0;
|
) const = 0;
|
||||||
@ -235,6 +243,7 @@ public:
|
|||||||
//- Heat capacity ratio for patch []
|
//- Heat capacity ratio for patch []
|
||||||
virtual tmp<scalarField> CpByCpv
|
virtual tmp<scalarField> CpByCpv
|
||||||
(
|
(
|
||||||
|
const scalarField& p,
|
||||||
const scalarField& T,
|
const scalarField& T,
|
||||||
const label patchi
|
const label patchi
|
||||||
) const = 0;
|
) const = 0;
|
||||||
|
|||||||
@ -110,6 +110,7 @@ void Foam::energyJumpFvPatchScalarField::updateCoeffs()
|
|||||||
|
|
||||||
label patchID = patch().index();
|
label patchID = patch().index();
|
||||||
|
|
||||||
|
const scalarField& pp = thermo.p().boundaryField()[patchID];
|
||||||
const temperatureJumpFvPatchScalarField& TbPatch =
|
const temperatureJumpFvPatchScalarField& TbPatch =
|
||||||
refCast<const temperatureJumpFvPatchScalarField>
|
refCast<const temperatureJumpFvPatchScalarField>
|
||||||
(
|
(
|
||||||
@ -124,7 +125,7 @@ void Foam::energyJumpFvPatchScalarField::updateCoeffs()
|
|||||||
|
|
||||||
const labelUList& faceCells = this->patch().faceCells();
|
const labelUList& faceCells = this->patch().faceCells();
|
||||||
|
|
||||||
jump_ = thermo.he(jumpTb, faceCells);
|
jump_ = thermo.he(pp, jumpTb, faceCells);
|
||||||
}
|
}
|
||||||
|
|
||||||
fixedJumpFvPatchField<scalar>::updateCoeffs();
|
fixedJumpFvPatchField<scalar>::updateCoeffs();
|
||||||
|
|||||||
@ -104,10 +104,11 @@ void Foam::fixedEnergyFvPatchScalarField::updateCoeffs()
|
|||||||
|
|
||||||
const label patchi = patch().index();
|
const label patchi = patch().index();
|
||||||
|
|
||||||
|
const scalarField& pw = thermo.p().boundaryField()[patchi];
|
||||||
fvPatchScalarField& Tw =
|
fvPatchScalarField& Tw =
|
||||||
const_cast<fvPatchScalarField&>(thermo.T().boundaryField()[patchi]);
|
const_cast<fvPatchScalarField&>(thermo.T().boundaryField()[patchi]);
|
||||||
Tw.evaluate();
|
Tw.evaluate();
|
||||||
operator==(thermo.he(Tw, patchi));
|
operator==(thermo.he(pw, Tw, patchi));
|
||||||
|
|
||||||
fixedValueFvPatchScalarField::updateCoeffs();
|
fixedValueFvPatchScalarField::updateCoeffs();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -104,16 +104,17 @@ void Foam::gradientEnergyFvPatchScalarField::updateCoeffs()
|
|||||||
|
|
||||||
const label patchi = patch().index();
|
const label patchi = patch().index();
|
||||||
|
|
||||||
|
const scalarField& pw = thermo.p().boundaryField()[patchi];
|
||||||
fvPatchScalarField& Tw =
|
fvPatchScalarField& Tw =
|
||||||
const_cast<fvPatchScalarField&>(thermo.T().boundaryField()[patchi]);
|
const_cast<fvPatchScalarField&>(thermo.T().boundaryField()[patchi]);
|
||||||
|
|
||||||
Tw.evaluate();
|
Tw.evaluate();
|
||||||
|
|
||||||
gradient() = thermo.Cpv(Tw, patchi)*Tw.snGrad()
|
gradient() = thermo.Cpv(pw, Tw, patchi)*Tw.snGrad()
|
||||||
+ patch().deltaCoeffs()*
|
+ patch().deltaCoeffs()*
|
||||||
(
|
(
|
||||||
thermo.he(Tw, patchi)
|
thermo.he(pw, Tw, patchi)
|
||||||
- thermo.he(Tw, patch().faceCells())
|
- thermo.he(pw, Tw, patch().faceCells())
|
||||||
);
|
);
|
||||||
|
|
||||||
fixedGradientFvPatchScalarField::updateCoeffs();
|
fixedGradientFvPatchScalarField::updateCoeffs();
|
||||||
|
|||||||
@ -109,6 +109,7 @@ void Foam::mixedEnergyFvPatchScalarField::updateCoeffs()
|
|||||||
|
|
||||||
const label patchi = patch().index();
|
const label patchi = patch().index();
|
||||||
|
|
||||||
|
const scalarField& pw = thermo.p().boundaryField()[patchi];
|
||||||
mixedFvPatchScalarField& Tw = refCast<mixedFvPatchScalarField>
|
mixedFvPatchScalarField& Tw = refCast<mixedFvPatchScalarField>
|
||||||
(
|
(
|
||||||
const_cast<fvPatchScalarField&>(thermo.T().boundaryField()[patchi])
|
const_cast<fvPatchScalarField&>(thermo.T().boundaryField()[patchi])
|
||||||
@ -117,13 +118,13 @@ void Foam::mixedEnergyFvPatchScalarField::updateCoeffs()
|
|||||||
Tw.evaluate();
|
Tw.evaluate();
|
||||||
|
|
||||||
valueFraction() = Tw.valueFraction();
|
valueFraction() = Tw.valueFraction();
|
||||||
refValue() = thermo.he(Tw.refValue(), patchi);
|
refValue() = thermo.he(pw, Tw.refValue(), patchi);
|
||||||
refGrad() =
|
refGrad() =
|
||||||
thermo.Cpv(Tw, patchi)*Tw.refGrad()
|
thermo.Cpv(pw, Tw, patchi)*Tw.refGrad()
|
||||||
+ patch().deltaCoeffs()*
|
+ patch().deltaCoeffs()*
|
||||||
(
|
(
|
||||||
thermo.he(Tw, patchi)
|
thermo.he(pw, Tw, patchi)
|
||||||
- thermo.he(Tw, patch().faceCells())
|
- thermo.he(pw, Tw, patch().faceCells())
|
||||||
);
|
);
|
||||||
|
|
||||||
mixedFvPatchScalarField::updateCoeffs();
|
mixedFvPatchScalarField::updateCoeffs();
|
||||||
|
|||||||
@ -156,8 +156,9 @@ void Foam::wallHeatTransferFvPatchScalarField::updateCoeffs()
|
|||||||
|
|
||||||
const label patchi = patch().index();
|
const label patchi = patch().index();
|
||||||
|
|
||||||
|
const scalarField& pw = thermo.p().boundaryField()[patchi];
|
||||||
const scalarField& Tw = thermo.T().boundaryField()[patchi];
|
const scalarField& Tw = thermo.T().boundaryField()[patchi];
|
||||||
const scalarField Cpw(thermo.Cp(Tw, patchi));
|
const scalarField Cpw(thermo.Cp(pw, Tw, patchi));
|
||||||
|
|
||||||
valueFraction() =
|
valueFraction() =
|
||||||
1.0/
|
1.0/
|
||||||
|
|||||||
@ -49,17 +49,23 @@ Foam::heThermo<BasicThermo, MixtureType>::heThermo(const fvMesh& mesh)
|
|||||||
)
|
)
|
||||||
{
|
{
|
||||||
scalarField& heCells = he_.internalField();
|
scalarField& heCells = he_.internalField();
|
||||||
|
const scalarField& pCells = this->p_.internalField();
|
||||||
const scalarField& TCells = this->T_.internalField();
|
const scalarField& TCells = this->T_.internalField();
|
||||||
|
|
||||||
forAll(heCells, celli)
|
forAll(heCells, celli)
|
||||||
{
|
{
|
||||||
heCells[celli] = this->cellMixture(celli).HE(TCells[celli]);
|
heCells[celli] =
|
||||||
|
this->cellMixture(celli).HE(pCells[celli], TCells[celli]);
|
||||||
}
|
}
|
||||||
|
|
||||||
forAll(he_.boundaryField(), patchi)
|
forAll(he_.boundaryField(), patchi)
|
||||||
{
|
{
|
||||||
he_.boundaryField()[patchi] ==
|
he_.boundaryField()[patchi] == he
|
||||||
he(this->T_.boundaryField()[patchi], patchi);
|
(
|
||||||
|
this->p_.boundaryField()[patchi],
|
||||||
|
this->T_.boundaryField()[patchi],
|
||||||
|
patchi
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
this->heBoundaryCorrection(he_);
|
this->heBoundaryCorrection(he_);
|
||||||
@ -78,6 +84,7 @@ Foam::heThermo<BasicThermo, MixtureType>::~heThermo()
|
|||||||
template<class BasicThermo, class MixtureType>
|
template<class BasicThermo, class MixtureType>
|
||||||
Foam::tmp<Foam::scalarField> Foam::heThermo<BasicThermo, MixtureType>::he
|
Foam::tmp<Foam::scalarField> Foam::heThermo<BasicThermo, MixtureType>::he
|
||||||
(
|
(
|
||||||
|
const scalarField& p,
|
||||||
const scalarField& T,
|
const scalarField& T,
|
||||||
const labelList& cells
|
const labelList& cells
|
||||||
) const
|
) const
|
||||||
@ -87,7 +94,7 @@ Foam::tmp<Foam::scalarField> Foam::heThermo<BasicThermo, MixtureType>::he
|
|||||||
|
|
||||||
forAll(T, celli)
|
forAll(T, celli)
|
||||||
{
|
{
|
||||||
he[celli] = this->cellMixture(cells[celli]).HE(T[celli]);
|
he[celli] = this->cellMixture(cells[celli]).HE(p[celli], T[celli]);
|
||||||
}
|
}
|
||||||
|
|
||||||
return the;
|
return the;
|
||||||
@ -97,6 +104,7 @@ Foam::tmp<Foam::scalarField> Foam::heThermo<BasicThermo, MixtureType>::he
|
|||||||
template<class BasicThermo, class MixtureType>
|
template<class BasicThermo, class MixtureType>
|
||||||
Foam::tmp<Foam::scalarField> Foam::heThermo<BasicThermo, MixtureType>::he
|
Foam::tmp<Foam::scalarField> Foam::heThermo<BasicThermo, MixtureType>::he
|
||||||
(
|
(
|
||||||
|
const scalarField& p,
|
||||||
const scalarField& T,
|
const scalarField& T,
|
||||||
const label patchi
|
const label patchi
|
||||||
) const
|
) const
|
||||||
@ -106,7 +114,8 @@ Foam::tmp<Foam::scalarField> Foam::heThermo<BasicThermo, MixtureType>::he
|
|||||||
|
|
||||||
forAll(T, facei)
|
forAll(T, facei)
|
||||||
{
|
{
|
||||||
he[facei] = this->patchFaceMixture(patchi, facei).HE(T[facei]);
|
he[facei] =
|
||||||
|
this->patchFaceMixture(patchi, facei).HE(p[facei], T[facei]);
|
||||||
}
|
}
|
||||||
|
|
||||||
return the;
|
return the;
|
||||||
@ -161,6 +170,7 @@ Foam::heThermo<BasicThermo, MixtureType>::hc() const
|
|||||||
template<class BasicThermo, class MixtureType>
|
template<class BasicThermo, class MixtureType>
|
||||||
Foam::tmp<Foam::scalarField> Foam::heThermo<BasicThermo, MixtureType>::Cp
|
Foam::tmp<Foam::scalarField> Foam::heThermo<BasicThermo, MixtureType>::Cp
|
||||||
(
|
(
|
||||||
|
const scalarField& p,
|
||||||
const scalarField& T,
|
const scalarField& T,
|
||||||
const label patchi
|
const label patchi
|
||||||
) const
|
) const
|
||||||
@ -170,7 +180,8 @@ Foam::tmp<Foam::scalarField> Foam::heThermo<BasicThermo, MixtureType>::Cp
|
|||||||
|
|
||||||
forAll(T, facei)
|
forAll(T, facei)
|
||||||
{
|
{
|
||||||
cp[facei] = this->patchFaceMixture(patchi, facei).Cp(T[facei]);
|
cp[facei] =
|
||||||
|
this->patchFaceMixture(patchi, facei).Cp(p[facei], T[facei]);
|
||||||
}
|
}
|
||||||
|
|
||||||
return tCp;
|
return tCp;
|
||||||
@ -204,17 +215,20 @@ Foam::heThermo<BasicThermo, MixtureType>::Cp() const
|
|||||||
|
|
||||||
forAll(this->T_, celli)
|
forAll(this->T_, celli)
|
||||||
{
|
{
|
||||||
cp[celli] = this->cellMixture(celli).Cp(this->T_[celli]);
|
cp[celli] =
|
||||||
|
this->cellMixture(celli).Cp(this->p_[celli], this->T_[celli]);
|
||||||
}
|
}
|
||||||
|
|
||||||
forAll(this->T_.boundaryField(), patchi)
|
forAll(this->T_.boundaryField(), patchi)
|
||||||
{
|
{
|
||||||
|
const fvPatchScalarField& pp = this->p_.boundaryField()[patchi];
|
||||||
const fvPatchScalarField& pT = this->T_.boundaryField()[patchi];
|
const fvPatchScalarField& pT = this->T_.boundaryField()[patchi];
|
||||||
fvPatchScalarField& pCp = cp.boundaryField()[patchi];
|
fvPatchScalarField& pCp = cp.boundaryField()[patchi];
|
||||||
|
|
||||||
forAll(pT, facei)
|
forAll(pT, facei)
|
||||||
{
|
{
|
||||||
pCp[facei] = this->patchFaceMixture(patchi, facei).Cp(pT[facei]);
|
pCp[facei] =
|
||||||
|
this->patchFaceMixture(patchi, facei).Cp(pp[facei], pT[facei]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -226,6 +240,7 @@ template<class BasicThermo, class MixtureType>
|
|||||||
Foam::tmp<Foam::scalarField>
|
Foam::tmp<Foam::scalarField>
|
||||||
Foam::heThermo<BasicThermo, MixtureType>::Cv
|
Foam::heThermo<BasicThermo, MixtureType>::Cv
|
||||||
(
|
(
|
||||||
|
const scalarField& p,
|
||||||
const scalarField& T,
|
const scalarField& T,
|
||||||
const label patchi
|
const label patchi
|
||||||
) const
|
) const
|
||||||
@ -235,7 +250,8 @@ Foam::heThermo<BasicThermo, MixtureType>::Cv
|
|||||||
|
|
||||||
forAll(T, facei)
|
forAll(T, facei)
|
||||||
{
|
{
|
||||||
cv[facei] = this->patchFaceMixture(patchi, facei).Cv(T[facei]);
|
cv[facei] =
|
||||||
|
this->patchFaceMixture(patchi, facei).Cv(p[facei], T[facei]);
|
||||||
}
|
}
|
||||||
|
|
||||||
return tCv;
|
return tCv;
|
||||||
@ -269,13 +285,18 @@ Foam::heThermo<BasicThermo, MixtureType>::Cv() const
|
|||||||
|
|
||||||
forAll(this->T_, celli)
|
forAll(this->T_, celli)
|
||||||
{
|
{
|
||||||
cv[celli] = this->cellMixture(celli).Cv(this->T_[celli]);
|
cv[celli] =
|
||||||
|
this->cellMixture(celli).Cv(this->p_[celli], this->T_[celli]);
|
||||||
}
|
}
|
||||||
|
|
||||||
forAll(this->T_.boundaryField(), patchi)
|
forAll(this->T_.boundaryField(), patchi)
|
||||||
{
|
{
|
||||||
cv.boundaryField()[patchi] =
|
cv.boundaryField()[patchi] = Cv
|
||||||
Cv(this->T_.boundaryField()[patchi], patchi);
|
(
|
||||||
|
this->p_.boundaryField()[patchi],
|
||||||
|
this->T_.boundaryField()[patchi],
|
||||||
|
patchi
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
return tCv;
|
return tCv;
|
||||||
@ -285,6 +306,7 @@ Foam::heThermo<BasicThermo, MixtureType>::Cv() const
|
|||||||
template<class BasicThermo, class MixtureType>
|
template<class BasicThermo, class MixtureType>
|
||||||
Foam::tmp<Foam::scalarField> Foam::heThermo<BasicThermo, MixtureType>::gamma
|
Foam::tmp<Foam::scalarField> Foam::heThermo<BasicThermo, MixtureType>::gamma
|
||||||
(
|
(
|
||||||
|
const scalarField& p,
|
||||||
const scalarField& T,
|
const scalarField& T,
|
||||||
const label patchi
|
const label patchi
|
||||||
) const
|
) const
|
||||||
@ -294,7 +316,8 @@ Foam::tmp<Foam::scalarField> Foam::heThermo<BasicThermo, MixtureType>::gamma
|
|||||||
|
|
||||||
forAll(T, facei)
|
forAll(T, facei)
|
||||||
{
|
{
|
||||||
cpv[facei] = this->patchFaceMixture(patchi, facei).gamma(T[facei]);
|
cpv[facei] =
|
||||||
|
this->patchFaceMixture(patchi, facei).gamma(p[facei], T[facei]);
|
||||||
}
|
}
|
||||||
|
|
||||||
return tgamma;
|
return tgamma;
|
||||||
@ -328,18 +351,23 @@ Foam::heThermo<BasicThermo, MixtureType>::gamma() const
|
|||||||
|
|
||||||
forAll(this->T_, celli)
|
forAll(this->T_, celli)
|
||||||
{
|
{
|
||||||
cpv[celli] = this->cellMixture(celli).gamma(this->T_[celli]);
|
cpv[celli] =
|
||||||
|
this->cellMixture(celli).gamma(this->p_[celli], this->T_[celli]);
|
||||||
}
|
}
|
||||||
|
|
||||||
forAll(this->T_.boundaryField(), patchi)
|
forAll(this->T_.boundaryField(), patchi)
|
||||||
{
|
{
|
||||||
|
const fvPatchScalarField& pp = this->p_.boundaryField()[patchi];
|
||||||
const fvPatchScalarField& pT = this->T_.boundaryField()[patchi];
|
const fvPatchScalarField& pT = this->T_.boundaryField()[patchi];
|
||||||
fvPatchScalarField& pgamma = cpv.boundaryField()[patchi];
|
fvPatchScalarField& pgamma = cpv.boundaryField()[patchi];
|
||||||
|
|
||||||
forAll(pT, facei)
|
forAll(pT, facei)
|
||||||
{
|
{
|
||||||
pgamma[facei] =
|
pgamma[facei] = this->patchFaceMixture(patchi, facei).gamma
|
||||||
this->patchFaceMixture(patchi, facei).gamma(pT[facei]);
|
(
|
||||||
|
pp[facei],
|
||||||
|
pT[facei]
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -350,6 +378,7 @@ Foam::heThermo<BasicThermo, MixtureType>::gamma() const
|
|||||||
template<class BasicThermo, class MixtureType>
|
template<class BasicThermo, class MixtureType>
|
||||||
Foam::tmp<Foam::scalarField> Foam::heThermo<BasicThermo, MixtureType>::Cpv
|
Foam::tmp<Foam::scalarField> Foam::heThermo<BasicThermo, MixtureType>::Cpv
|
||||||
(
|
(
|
||||||
|
const scalarField& p,
|
||||||
const scalarField& T,
|
const scalarField& T,
|
||||||
const label patchi
|
const label patchi
|
||||||
) const
|
) const
|
||||||
@ -359,7 +388,8 @@ Foam::tmp<Foam::scalarField> Foam::heThermo<BasicThermo, MixtureType>::Cpv
|
|||||||
|
|
||||||
forAll(T, facei)
|
forAll(T, facei)
|
||||||
{
|
{
|
||||||
cpv[facei] = this->patchFaceMixture(patchi, facei).Cpv(T[facei]);
|
cpv[facei] =
|
||||||
|
this->patchFaceMixture(patchi, facei).Cpv(p[facei], T[facei]);
|
||||||
}
|
}
|
||||||
|
|
||||||
return tCpv;
|
return tCpv;
|
||||||
@ -393,17 +423,20 @@ Foam::heThermo<BasicThermo, MixtureType>::Cpv() const
|
|||||||
|
|
||||||
forAll(this->T_, celli)
|
forAll(this->T_, celli)
|
||||||
{
|
{
|
||||||
cpv[celli] = this->cellMixture(celli).Cpv(this->T_[celli]);
|
cpv[celli] =
|
||||||
|
this->cellMixture(celli).Cpv(this->p_[celli], this->T_[celli]);
|
||||||
}
|
}
|
||||||
|
|
||||||
forAll(this->T_.boundaryField(), patchi)
|
forAll(this->T_.boundaryField(), patchi)
|
||||||
{
|
{
|
||||||
|
const fvPatchScalarField& pp = this->p_.boundaryField()[patchi];
|
||||||
const fvPatchScalarField& pT = this->T_.boundaryField()[patchi];
|
const fvPatchScalarField& pT = this->T_.boundaryField()[patchi];
|
||||||
fvPatchScalarField& pCpv = cpv.boundaryField()[patchi];
|
fvPatchScalarField& pCpv = cpv.boundaryField()[patchi];
|
||||||
|
|
||||||
forAll(pT, facei)
|
forAll(pT, facei)
|
||||||
{
|
{
|
||||||
pCpv[facei] = this->patchFaceMixture(patchi, facei).Cpv(pT[facei]);
|
pCpv[facei] =
|
||||||
|
this->patchFaceMixture(patchi, facei).Cpv(pp[facei], pT[facei]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -414,6 +447,7 @@ Foam::heThermo<BasicThermo, MixtureType>::Cpv() const
|
|||||||
template<class BasicThermo, class MixtureType>
|
template<class BasicThermo, class MixtureType>
|
||||||
Foam::tmp<Foam::scalarField> Foam::heThermo<BasicThermo, MixtureType>::CpByCpv
|
Foam::tmp<Foam::scalarField> Foam::heThermo<BasicThermo, MixtureType>::CpByCpv
|
||||||
(
|
(
|
||||||
|
const scalarField& p,
|
||||||
const scalarField& T,
|
const scalarField& T,
|
||||||
const label patchi
|
const label patchi
|
||||||
) const
|
) const
|
||||||
@ -424,7 +458,7 @@ Foam::tmp<Foam::scalarField> Foam::heThermo<BasicThermo, MixtureType>::CpByCpv
|
|||||||
forAll(T, facei)
|
forAll(T, facei)
|
||||||
{
|
{
|
||||||
cpByCpv[facei] =
|
cpByCpv[facei] =
|
||||||
this->patchFaceMixture(patchi, facei).cpBycpv(T[facei]);
|
this->patchFaceMixture(patchi, facei).cpBycpv(p[facei], T[facei]);
|
||||||
}
|
}
|
||||||
|
|
||||||
return tCpByCpv;
|
return tCpByCpv;
|
||||||
@ -458,18 +492,26 @@ Foam::heThermo<BasicThermo, MixtureType>::CpByCpv() const
|
|||||||
|
|
||||||
forAll(this->T_, celli)
|
forAll(this->T_, celli)
|
||||||
{
|
{
|
||||||
cpByCpv[celli] = this->cellMixture(celli).cpBycpv(this->T_[celli]);
|
cpByCpv[celli] = this->cellMixture(celli).cpBycpv
|
||||||
|
(
|
||||||
|
this->p_[celli],
|
||||||
|
this->T_[celli]
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
forAll(this->T_.boundaryField(), patchi)
|
forAll(this->T_.boundaryField(), patchi)
|
||||||
{
|
{
|
||||||
|
const fvPatchScalarField& pp = this->p_.boundaryField()[patchi];
|
||||||
const fvPatchScalarField& pT = this->T_.boundaryField()[patchi];
|
const fvPatchScalarField& pT = this->T_.boundaryField()[patchi];
|
||||||
fvPatchScalarField& pCpByCpv = cpByCpv.boundaryField()[patchi];
|
fvPatchScalarField& pCpByCpv = cpByCpv.boundaryField()[patchi];
|
||||||
|
|
||||||
forAll(pT, facei)
|
forAll(pT, facei)
|
||||||
{
|
{
|
||||||
pCpByCpv[facei] =
|
pCpByCpv[facei] = this->patchFaceMixture(patchi, facei).cpBycpv
|
||||||
this->patchFaceMixture(patchi, facei).cpBycpv(pT[facei]);
|
(
|
||||||
|
pp[facei],
|
||||||
|
pT[facei]
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -481,6 +523,7 @@ template<class BasicThermo, class MixtureType>
|
|||||||
Foam::tmp<Foam::scalarField> Foam::heThermo<BasicThermo, MixtureType>::THE
|
Foam::tmp<Foam::scalarField> Foam::heThermo<BasicThermo, MixtureType>::THE
|
||||||
(
|
(
|
||||||
const scalarField& h,
|
const scalarField& h,
|
||||||
|
const scalarField& p,
|
||||||
const scalarField& T0,
|
const scalarField& T0,
|
||||||
const labelList& cells
|
const labelList& cells
|
||||||
) const
|
) const
|
||||||
@ -490,7 +533,8 @@ Foam::tmp<Foam::scalarField> Foam::heThermo<BasicThermo, MixtureType>::THE
|
|||||||
|
|
||||||
forAll(h, celli)
|
forAll(h, celli)
|
||||||
{
|
{
|
||||||
T[celli] = this->cellMixture(cells[celli]).THE(h[celli], T0[celli]);
|
T[celli] =
|
||||||
|
this->cellMixture(cells[celli]).THE(h[celli], p[celli], T0[celli]);
|
||||||
}
|
}
|
||||||
|
|
||||||
return tT;
|
return tT;
|
||||||
@ -501,6 +545,7 @@ template<class BasicThermo, class MixtureType>
|
|||||||
Foam::tmp<Foam::scalarField> Foam::heThermo<BasicThermo, MixtureType>::THE
|
Foam::tmp<Foam::scalarField> Foam::heThermo<BasicThermo, MixtureType>::THE
|
||||||
(
|
(
|
||||||
const scalarField& h,
|
const scalarField& h,
|
||||||
|
const scalarField& p,
|
||||||
const scalarField& T0,
|
const scalarField& T0,
|
||||||
const label patchi
|
const label patchi
|
||||||
) const
|
) const
|
||||||
@ -514,7 +559,7 @@ Foam::tmp<Foam::scalarField> Foam::heThermo<BasicThermo, MixtureType>::THE
|
|||||||
(
|
(
|
||||||
patchi,
|
patchi,
|
||||||
facei
|
facei
|
||||||
).THE(h[facei], T0[facei]);
|
).THE(h[facei], p[facei], T0[facei]);
|
||||||
}
|
}
|
||||||
|
|
||||||
return tT;
|
return tT;
|
||||||
@ -538,8 +583,12 @@ Foam::tmp<Foam::scalarField> Foam::heThermo<BasicThermo, MixtureType>::kappa
|
|||||||
) const
|
) const
|
||||||
{
|
{
|
||||||
return
|
return
|
||||||
Cp(this->T_.boundaryField()[patchi], patchi)
|
Cp
|
||||||
*this->alpha_.boundaryField()[patchi];
|
(
|
||||||
|
this->p_.boundaryField()[patchi],
|
||||||
|
this->T_.boundaryField()[patchi],
|
||||||
|
patchi
|
||||||
|
)*this->alpha_.boundaryField()[patchi];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -565,8 +614,12 @@ Foam::heThermo<BasicThermo, MixtureType>::kappaEff
|
|||||||
) const
|
) const
|
||||||
{
|
{
|
||||||
return
|
return
|
||||||
Cp(this->T_.boundaryField()[patchi], patchi)
|
Cp
|
||||||
*alphaEff(alphat, patchi);
|
(
|
||||||
|
this->p_.boundaryField()[patchi],
|
||||||
|
this->T_.boundaryField()[patchi],
|
||||||
|
patchi
|
||||||
|
)*alphaEff(alphat, patchi);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -592,7 +645,12 @@ Foam::heThermo<BasicThermo, MixtureType>::alphaEff
|
|||||||
) const
|
) const
|
||||||
{
|
{
|
||||||
return
|
return
|
||||||
this->CpByCpv(this->T_.boundaryField()[patchi], patchi)
|
this->CpByCpv
|
||||||
|
(
|
||||||
|
this->p_.boundaryField()[patchi],
|
||||||
|
this->T_.boundaryField()[patchi],
|
||||||
|
patchi
|
||||||
|
)
|
||||||
*(
|
*(
|
||||||
this->alpha_.boundaryField()[patchi]
|
this->alpha_.boundaryField()[patchi]
|
||||||
+ alphat
|
+ alphat
|
||||||
|
|||||||
@ -118,6 +118,7 @@ public:
|
|||||||
//- Enthalpy/Internal energy for cell-set [J/kg]
|
//- Enthalpy/Internal energy for cell-set [J/kg]
|
||||||
virtual tmp<scalarField> he
|
virtual tmp<scalarField> he
|
||||||
(
|
(
|
||||||
|
const scalarField& p,
|
||||||
const scalarField& T,
|
const scalarField& T,
|
||||||
const labelList& cells
|
const labelList& cells
|
||||||
) const;
|
) const;
|
||||||
@ -125,6 +126,7 @@ public:
|
|||||||
//- Enthalpy/Internal energy for patch [J/kg]
|
//- Enthalpy/Internal energy for patch [J/kg]
|
||||||
virtual tmp<scalarField> he
|
virtual tmp<scalarField> he
|
||||||
(
|
(
|
||||||
|
const scalarField& p,
|
||||||
const scalarField& T,
|
const scalarField& T,
|
||||||
const label patchi
|
const label patchi
|
||||||
) const;
|
) const;
|
||||||
@ -136,6 +138,7 @@ public:
|
|||||||
virtual tmp<scalarField> THE
|
virtual tmp<scalarField> THE
|
||||||
(
|
(
|
||||||
const scalarField& he,
|
const scalarField& he,
|
||||||
|
const scalarField& p,
|
||||||
const scalarField& T0, // starting temperature
|
const scalarField& T0, // starting temperature
|
||||||
const labelList& cells
|
const labelList& cells
|
||||||
) const;
|
) const;
|
||||||
@ -144,6 +147,7 @@ public:
|
|||||||
virtual tmp<scalarField> THE
|
virtual tmp<scalarField> THE
|
||||||
(
|
(
|
||||||
const scalarField& he,
|
const scalarField& he,
|
||||||
|
const scalarField& p,
|
||||||
const scalarField& T0, // starting temperature
|
const scalarField& T0, // starting temperature
|
||||||
const label patchi
|
const label patchi
|
||||||
) const;
|
) const;
|
||||||
@ -151,6 +155,7 @@ public:
|
|||||||
//- Heat capacity at constant pressure for patch [J/kg/K]
|
//- Heat capacity at constant pressure for patch [J/kg/K]
|
||||||
virtual tmp<scalarField> Cp
|
virtual tmp<scalarField> Cp
|
||||||
(
|
(
|
||||||
|
const scalarField& p,
|
||||||
const scalarField& T,
|
const scalarField& T,
|
||||||
const label patchi
|
const label patchi
|
||||||
) const;
|
) const;
|
||||||
@ -161,6 +166,7 @@ public:
|
|||||||
//- Heat capacity at constant volume for patch [J/kg/K]
|
//- Heat capacity at constant volume for patch [J/kg/K]
|
||||||
virtual tmp<scalarField> Cv
|
virtual tmp<scalarField> Cv
|
||||||
(
|
(
|
||||||
|
const scalarField& p,
|
||||||
const scalarField& T,
|
const scalarField& T,
|
||||||
const label patchi
|
const label patchi
|
||||||
) const;
|
) const;
|
||||||
@ -174,6 +180,7 @@ public:
|
|||||||
//- gamma = Cp/Cv for patch []
|
//- gamma = Cp/Cv for patch []
|
||||||
virtual tmp<scalarField> gamma
|
virtual tmp<scalarField> gamma
|
||||||
(
|
(
|
||||||
|
const scalarField& p,
|
||||||
const scalarField& T,
|
const scalarField& T,
|
||||||
const label patchi
|
const label patchi
|
||||||
) const;
|
) const;
|
||||||
@ -181,6 +188,7 @@ public:
|
|||||||
//- Heat capacity at constant pressure/volume for patch [J/kg/K]
|
//- Heat capacity at constant pressure/volume for patch [J/kg/K]
|
||||||
virtual tmp<scalarField> Cpv
|
virtual tmp<scalarField> Cpv
|
||||||
(
|
(
|
||||||
|
const scalarField& p,
|
||||||
const scalarField& T,
|
const scalarField& T,
|
||||||
const label patchi
|
const label patchi
|
||||||
) const;
|
) const;
|
||||||
@ -194,6 +202,7 @@ public:
|
|||||||
//- Heat capacity ratio for patch []
|
//- Heat capacity ratio for patch []
|
||||||
virtual tmp<scalarField> CpByCpv
|
virtual tmp<scalarField> CpByCpv
|
||||||
(
|
(
|
||||||
|
const scalarField& p,
|
||||||
const scalarField& T,
|
const scalarField& T,
|
||||||
const label patchi
|
const label patchi
|
||||||
) const;
|
) const;
|
||||||
|
|||||||
@ -43,11 +43,17 @@ void Foam::hePsiThermo<MixtureType>::calculate()
|
|||||||
const typename MixtureType::thermoType& mixture_ =
|
const typename MixtureType::thermoType& mixture_ =
|
||||||
this->cellMixture(celli);
|
this->cellMixture(celli);
|
||||||
|
|
||||||
TCells[celli] = mixture_.THE(hCells[celli], TCells[celli]);
|
TCells[celli] = mixture_.THE
|
||||||
|
(
|
||||||
|
hCells[celli],
|
||||||
|
pCells[celli],
|
||||||
|
TCells[celli]
|
||||||
|
);
|
||||||
|
|
||||||
psiCells[celli] = mixture_.psi(pCells[celli], TCells[celli]);
|
psiCells[celli] = mixture_.psi(pCells[celli], TCells[celli]);
|
||||||
|
|
||||||
muCells[celli] = mixture_.mu(TCells[celli]);
|
muCells[celli] = mixture_.mu(pCells[celli], TCells[celli]);
|
||||||
alphaCells[celli] = mixture_.alphah(TCells[celli]);
|
alphaCells[celli] = mixture_.alphah(pCells[celli], TCells[celli]);
|
||||||
}
|
}
|
||||||
|
|
||||||
forAll(this->T_.boundaryField(), patchi)
|
forAll(this->T_.boundaryField(), patchi)
|
||||||
@ -68,11 +74,11 @@ void Foam::hePsiThermo<MixtureType>::calculate()
|
|||||||
const typename MixtureType::thermoType& mixture_ =
|
const typename MixtureType::thermoType& mixture_ =
|
||||||
this->patchFaceMixture(patchi, facei);
|
this->patchFaceMixture(patchi, facei);
|
||||||
|
|
||||||
ph[facei] = mixture_.HE(pT[facei]);
|
ph[facei] = mixture_.HE(pp[facei], pT[facei]);
|
||||||
|
|
||||||
ppsi[facei] = mixture_.psi(pp[facei], pT[facei]);
|
ppsi[facei] = mixture_.psi(pp[facei], pT[facei]);
|
||||||
pmu[facei] = mixture_.mu(pT[facei]);
|
pmu[facei] = mixture_.mu(pp[facei], pT[facei]);
|
||||||
palpha[facei] = mixture_.alphah(pT[facei]);
|
palpha[facei] = mixture_.alphah(pp[facei], pT[facei]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -82,11 +88,11 @@ void Foam::hePsiThermo<MixtureType>::calculate()
|
|||||||
const typename MixtureType::thermoType& mixture_ =
|
const typename MixtureType::thermoType& mixture_ =
|
||||||
this->patchFaceMixture(patchi, facei);
|
this->patchFaceMixture(patchi, facei);
|
||||||
|
|
||||||
pT[facei] = mixture_.THE(ph[facei], pT[facei]);
|
pT[facei] = mixture_.THE(ph[facei], pp[facei], pT[facei]);
|
||||||
|
|
||||||
ppsi[facei] = mixture_.psi(pp[facei], pT[facei]);
|
ppsi[facei] = mixture_.psi(pp[facei], pT[facei]);
|
||||||
pmu[facei] = mixture_.mu(pT[facei]);
|
pmu[facei] = mixture_.mu(pp[facei], pT[facei]);
|
||||||
palpha[facei] = mixture_.alphah(pT[facei]);
|
palpha[facei] = mixture_.alphah(pp[facei], pT[facei]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -44,12 +44,18 @@ void Foam::heRhoThermo<MixtureType>::calculate()
|
|||||||
const typename MixtureType::thermoType& mixture_ =
|
const typename MixtureType::thermoType& mixture_ =
|
||||||
this->cellMixture(celli);
|
this->cellMixture(celli);
|
||||||
|
|
||||||
TCells[celli] = mixture_.THE(hCells[celli], TCells[celli]);
|
TCells[celli] = mixture_.THE
|
||||||
|
(
|
||||||
|
hCells[celli],
|
||||||
|
pCells[celli],
|
||||||
|
TCells[celli]
|
||||||
|
);
|
||||||
|
|
||||||
psiCells[celli] = mixture_.psi(pCells[celli], TCells[celli]);
|
psiCells[celli] = mixture_.psi(pCells[celli], TCells[celli]);
|
||||||
rhoCells[celli] = mixture_.rho(pCells[celli], TCells[celli]);
|
rhoCells[celli] = mixture_.rho(pCells[celli], TCells[celli]);
|
||||||
|
|
||||||
muCells[celli] = mixture_.mu(TCells[celli]);
|
muCells[celli] = mixture_.mu(pCells[celli], TCells[celli]);
|
||||||
alphaCells[celli] = mixture_.alphah(TCells[celli]);
|
alphaCells[celli] = mixture_.alphah(pCells[celli], TCells[celli]);
|
||||||
}
|
}
|
||||||
|
|
||||||
forAll(this->T_.boundaryField(), patchi)
|
forAll(this->T_.boundaryField(), patchi)
|
||||||
@ -71,12 +77,12 @@ void Foam::heRhoThermo<MixtureType>::calculate()
|
|||||||
const typename MixtureType::thermoType& mixture_ =
|
const typename MixtureType::thermoType& mixture_ =
|
||||||
this->patchFaceMixture(patchi, facei);
|
this->patchFaceMixture(patchi, facei);
|
||||||
|
|
||||||
ph[facei] = mixture_.HE(pT[facei]);
|
ph[facei] = mixture_.HE(pp[facei], pT[facei]);
|
||||||
|
|
||||||
ppsi[facei] = mixture_.psi(pp[facei], pT[facei]);
|
ppsi[facei] = mixture_.psi(pp[facei], pT[facei]);
|
||||||
prho[facei] = mixture_.rho(pp[facei], pT[facei]);
|
prho[facei] = mixture_.rho(pp[facei], pT[facei]);
|
||||||
pmu[facei] = mixture_.mu(pT[facei]);
|
pmu[facei] = mixture_.mu(pp[facei], pT[facei]);
|
||||||
palpha[facei] = mixture_.alphah(pT[facei]);
|
palpha[facei] = mixture_.alphah(pp[facei], pT[facei]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -86,12 +92,12 @@ void Foam::heRhoThermo<MixtureType>::calculate()
|
|||||||
const typename MixtureType::thermoType& mixture_ =
|
const typename MixtureType::thermoType& mixture_ =
|
||||||
this->patchFaceMixture(patchi, facei);
|
this->patchFaceMixture(patchi, facei);
|
||||||
|
|
||||||
pT[facei] = mixture_.THE(ph[facei], pT[facei]);
|
pT[facei] = mixture_.THE(ph[facei], pp[facei], pT[facei]);
|
||||||
|
|
||||||
ppsi[facei] = mixture_.psi(pp[facei], pT[facei]);
|
ppsi[facei] = mixture_.psi(pp[facei], pT[facei]);
|
||||||
prho[facei] = mixture_.rho(pp[facei], pT[facei]);
|
prho[facei] = mixture_.rho(pp[facei], pT[facei]);
|
||||||
pmu[facei] = mixture_.mu(pT[facei]);
|
pmu[facei] = mixture_.mu(pp[facei], pT[facei]);
|
||||||
palpha[facei] = mixture_.alphah(pT[facei]);
|
palpha[facei] = mixture_.alphah(pp[facei], pT[facei]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -352,7 +352,7 @@ void Foam::ODEChemistryModel<CompType, ThermoType>::derivatives
|
|||||||
scalar cp = 0.0;
|
scalar cp = 0.0;
|
||||||
for (label i=0; i<nSpecie_; i++)
|
for (label i=0; i<nSpecie_; i++)
|
||||||
{
|
{
|
||||||
const scalar cpi = specieThermo_[i].cp(T);
|
const scalar cpi = specieThermo_[i].cp(p, T);
|
||||||
const scalar Xi = c[i]/rho;
|
const scalar Xi = c[i]/rho;
|
||||||
cp += Xi*cpi;
|
cp += Xi*cpi;
|
||||||
}
|
}
|
||||||
@ -361,7 +361,7 @@ void Foam::ODEChemistryModel<CompType, ThermoType>::derivatives
|
|||||||
scalar dT = 0.0;
|
scalar dT = 0.0;
|
||||||
for (label i = 0; i < nSpecie_; i++)
|
for (label i = 0; i < nSpecie_; i++)
|
||||||
{
|
{
|
||||||
const scalar hi = specieThermo_[i].ha(T);
|
const scalar hi = specieThermo_[i].ha(p, T);
|
||||||
dT += hi*dcdt[i];
|
dT += hi*dcdt[i];
|
||||||
}
|
}
|
||||||
dT /= rho*cp;
|
dT /= rho*cp;
|
||||||
@ -815,7 +815,7 @@ Foam::scalar Foam::ODEChemistryModel<CompType, ThermoType>::solve
|
|||||||
{
|
{
|
||||||
mixture += (c[i]/cTot)*specieThermo_[i];
|
mixture += (c[i]/cTot)*specieThermo_[i];
|
||||||
}
|
}
|
||||||
Ti = mixture.THa(hi, Ti);
|
Ti = mixture.THa(hi, pi, Ti);
|
||||||
|
|
||||||
timeLeft -= dt;
|
timeLeft -= dt;
|
||||||
this->deltaTChem_[celli] = tauC;
|
this->deltaTChem_[celli] = tauC;
|
||||||
|
|||||||
@ -105,10 +105,11 @@ void Foam::fixedUnburntEnthalpyFvPatchScalarField::updateCoeffs()
|
|||||||
|
|
||||||
const label patchi = patch().index();
|
const label patchi = patch().index();
|
||||||
|
|
||||||
|
const scalarField& pw = thermo.p().boundaryField()[patchi];
|
||||||
fvPatchScalarField& Tw =
|
fvPatchScalarField& Tw =
|
||||||
const_cast<fvPatchScalarField&>(thermo.Tu().boundaryField()[patchi]);
|
const_cast<fvPatchScalarField&>(thermo.Tu().boundaryField()[patchi]);
|
||||||
Tw.evaluate();
|
Tw.evaluate();
|
||||||
operator==(thermo.heu(Tw, patchi));
|
operator==(thermo.heu(pw, Tw, patchi));
|
||||||
|
|
||||||
fixedValueFvPatchScalarField::updateCoeffs();
|
fixedValueFvPatchScalarField::updateCoeffs();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -104,16 +104,17 @@ void Foam::gradientUnburntEnthalpyFvPatchScalarField::updateCoeffs()
|
|||||||
|
|
||||||
const label patchi = patch().index();
|
const label patchi = patch().index();
|
||||||
|
|
||||||
|
const scalarField& pw = thermo.p().boundaryField()[patchi];
|
||||||
fvPatchScalarField& Tw =
|
fvPatchScalarField& Tw =
|
||||||
const_cast<fvPatchScalarField&>(thermo.Tu().boundaryField()[patchi]);
|
const_cast<fvPatchScalarField&>(thermo.Tu().boundaryField()[patchi]);
|
||||||
|
|
||||||
Tw.evaluate();
|
Tw.evaluate();
|
||||||
|
|
||||||
gradient() = thermo.Cp(Tw, patchi)*Tw.snGrad()
|
gradient() = thermo.Cp(pw, Tw, patchi)*Tw.snGrad()
|
||||||
+ patch().deltaCoeffs()*
|
+ patch().deltaCoeffs()*
|
||||||
(
|
(
|
||||||
thermo.heu(Tw, patchi)
|
thermo.heu(pw, Tw, patchi)
|
||||||
- thermo.heu(Tw, patch().faceCells())
|
- thermo.heu(pw, Tw, patch().faceCells())
|
||||||
);
|
);
|
||||||
|
|
||||||
fixedGradientFvPatchScalarField::updateCoeffs();
|
fixedGradientFvPatchScalarField::updateCoeffs();
|
||||||
|
|||||||
@ -108,6 +108,7 @@ void Foam::mixedUnburntEnthalpyFvPatchScalarField::updateCoeffs()
|
|||||||
|
|
||||||
const label patchi = patch().index();
|
const label patchi = patch().index();
|
||||||
|
|
||||||
|
const scalarField& pw = thermo.p().boundaryField()[patchi];
|
||||||
mixedFvPatchScalarField& Tw = refCast<mixedFvPatchScalarField>
|
mixedFvPatchScalarField& Tw = refCast<mixedFvPatchScalarField>
|
||||||
(
|
(
|
||||||
const_cast<fvPatchScalarField&>(thermo.Tu().boundaryField()[patchi])
|
const_cast<fvPatchScalarField&>(thermo.Tu().boundaryField()[patchi])
|
||||||
@ -116,12 +117,12 @@ void Foam::mixedUnburntEnthalpyFvPatchScalarField::updateCoeffs()
|
|||||||
Tw.evaluate();
|
Tw.evaluate();
|
||||||
|
|
||||||
valueFraction() = Tw.valueFraction();
|
valueFraction() = Tw.valueFraction();
|
||||||
refValue() = thermo.heu(Tw.refValue(), patchi);
|
refValue() = thermo.heu(pw, Tw.refValue(), patchi);
|
||||||
refGrad() = thermo.Cp(Tw, patchi)*Tw.refGrad()
|
refGrad() = thermo.Cp(pw, Tw, patchi)*Tw.refGrad()
|
||||||
+ patch().deltaCoeffs()*
|
+ patch().deltaCoeffs()*
|
||||||
(
|
(
|
||||||
thermo.heu(Tw, patchi)
|
thermo.heu(pw, Tw, patchi)
|
||||||
- thermo.heu(Tw, patch().faceCells())
|
- thermo.heu(pw, Tw, patch().faceCells())
|
||||||
);
|
);
|
||||||
|
|
||||||
mixedFvPatchScalarField::updateCoeffs();
|
mixedFvPatchScalarField::updateCoeffs();
|
||||||
|
|||||||
@ -27,14 +27,32 @@ License
|
|||||||
#define makeReactionThermo_H
|
#define makeReactionThermo_H
|
||||||
|
|
||||||
#include "addToRunTimeSelectionTable.H"
|
#include "addToRunTimeSelectionTable.H"
|
||||||
|
#include "SpecieMixture.H"
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
#define makeReactionThermo(BaseThermo,CThermo,MixtureThermo,Mixture,Transport,Type,Thermo,EqnOfState) \
|
#define makeReactionThermo(BaseThermo,CThermo,MixtureThermo,Mixture,Transport,Type,Thermo,EqnOfState) \
|
||||||
\
|
\
|
||||||
typedef MixtureThermo \
|
typedef MixtureThermo \
|
||||||
<Mixture<Transport<specieThermo<Thermo<EqnOfState>,Type> > > > \
|
< \
|
||||||
MixtureThermo##Mixture##Transport##Type##Thermo##EqnOfState; \
|
SpecieMixture \
|
||||||
|
< \
|
||||||
|
Mixture \
|
||||||
|
< \
|
||||||
|
Transport \
|
||||||
|
< \
|
||||||
|
specieThermo \
|
||||||
|
< \
|
||||||
|
Thermo \
|
||||||
|
< \
|
||||||
|
EqnOfState \
|
||||||
|
>, \
|
||||||
|
Type \
|
||||||
|
> \
|
||||||
|
> \
|
||||||
|
> \
|
||||||
|
> \
|
||||||
|
> MixtureThermo##Mixture##Transport##Type##Thermo##EqnOfState; \
|
||||||
\
|
\
|
||||||
defineTemplateTypeNameAndDebugWithName \
|
defineTemplateTypeNameAndDebugWithName \
|
||||||
( \
|
( \
|
||||||
@ -71,8 +89,16 @@ addToRunTimeSelectionTable \
|
|||||||
|
|
||||||
#define makeReactionMixtureThermo(BaseThermo,CThermo,MixtureThermo,Mixture,ThermoPhys) \
|
#define makeReactionMixtureThermo(BaseThermo,CThermo,MixtureThermo,Mixture,ThermoPhys) \
|
||||||
\
|
\
|
||||||
typedef MixtureThermo<Mixture<ThermoPhys> > \
|
typedef MixtureThermo \
|
||||||
MixtureThermo##Mixture##ThermoPhys; \
|
< \
|
||||||
|
SpecieMixture \
|
||||||
|
< \
|
||||||
|
Mixture \
|
||||||
|
< \
|
||||||
|
ThermoPhys \
|
||||||
|
> \
|
||||||
|
> \
|
||||||
|
> MixtureThermo##Mixture##ThermoPhys; \
|
||||||
\
|
\
|
||||||
defineTemplateTypeNameAndDebugWithName \
|
defineTemplateTypeNameAndDebugWithName \
|
||||||
( \
|
( \
|
||||||
|
|||||||
@ -0,0 +1,210 @@
|
|||||||
|
/*---------------------------------------------------------------------------*\
|
||||||
|
========= |
|
||||||
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
|
\\ / O peration |
|
||||||
|
\\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation
|
||||||
|
\\/ M anipulation |
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
License
|
||||||
|
This file is part of OpenFOAM.
|
||||||
|
|
||||||
|
OpenFOAM is free software: you can redistribute it and/or modify it
|
||||||
|
under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||||
|
for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
#include "SpecieMixture.H"
|
||||||
|
#include "fvMesh.H"
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
template<class MixtureType>
|
||||||
|
Foam::SpecieMixture<MixtureType>::SpecieMixture
|
||||||
|
(
|
||||||
|
const dictionary& thermoDict,
|
||||||
|
const fvMesh& mesh
|
||||||
|
)
|
||||||
|
:
|
||||||
|
MixtureType
|
||||||
|
(
|
||||||
|
thermoDict,
|
||||||
|
mesh
|
||||||
|
)
|
||||||
|
{}
|
||||||
|
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
template<class MixtureType>
|
||||||
|
Foam::scalar Foam::SpecieMixture<MixtureType>::nMoles
|
||||||
|
(
|
||||||
|
const label speciei
|
||||||
|
) const
|
||||||
|
{
|
||||||
|
return this->getLocalThermo(speciei).nMoles();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
template<class MixtureType>
|
||||||
|
Foam::scalar Foam::SpecieMixture<MixtureType>::W
|
||||||
|
(
|
||||||
|
const label speciei
|
||||||
|
) const
|
||||||
|
{
|
||||||
|
return this->getLocalThermo(speciei).W();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
template<class MixtureType>
|
||||||
|
Foam::scalar Foam::SpecieMixture<MixtureType>::Cp
|
||||||
|
(
|
||||||
|
const label speciei,
|
||||||
|
const scalar p,
|
||||||
|
const scalar T
|
||||||
|
) const
|
||||||
|
{
|
||||||
|
return this->getLocalThermo(speciei).Cp(p, T);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
template<class MixtureType>
|
||||||
|
Foam::scalar Foam::SpecieMixture<MixtureType>::Cv
|
||||||
|
(
|
||||||
|
const label speciei,
|
||||||
|
const scalar p,
|
||||||
|
const scalar T
|
||||||
|
) const
|
||||||
|
{
|
||||||
|
return this->getLocalThermo(speciei).Cv(p, T);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
template<class MixtureType>
|
||||||
|
Foam::scalar Foam::SpecieMixture<MixtureType>::Ha
|
||||||
|
(
|
||||||
|
const label speciei,
|
||||||
|
const scalar p,
|
||||||
|
const scalar T
|
||||||
|
) const
|
||||||
|
{
|
||||||
|
return this->getLocalThermo(speciei).Ha(p, T);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
template<class MixtureType>
|
||||||
|
Foam::scalar Foam::SpecieMixture<MixtureType>::Hs
|
||||||
|
(
|
||||||
|
const label speciei,
|
||||||
|
const scalar p,
|
||||||
|
const scalar T
|
||||||
|
) const
|
||||||
|
{
|
||||||
|
return this->getLocalThermo(speciei).Hs(p, T);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
template<class MixtureType>
|
||||||
|
Foam::scalar Foam::SpecieMixture<MixtureType>::Hc
|
||||||
|
(
|
||||||
|
const label speciei
|
||||||
|
) const
|
||||||
|
{
|
||||||
|
return this->getLocalThermo(speciei).Hc();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
template<class MixtureType>
|
||||||
|
Foam::scalar Foam::SpecieMixture<MixtureType>::S
|
||||||
|
(
|
||||||
|
const label speciei,
|
||||||
|
const scalar p,
|
||||||
|
const scalar T
|
||||||
|
) const
|
||||||
|
{
|
||||||
|
return this->getLocalThermo(speciei).S(p, T);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
template<class MixtureType>
|
||||||
|
Foam::scalar Foam::SpecieMixture<MixtureType>::Es
|
||||||
|
(
|
||||||
|
const label speciei,
|
||||||
|
const scalar p,
|
||||||
|
const scalar T
|
||||||
|
) const
|
||||||
|
{
|
||||||
|
return this->getLocalThermo(speciei).Es(p, T);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
template<class MixtureType>
|
||||||
|
Foam::scalar Foam::SpecieMixture<MixtureType>::G
|
||||||
|
(
|
||||||
|
const label speciei,
|
||||||
|
const scalar p,
|
||||||
|
const scalar T
|
||||||
|
) const
|
||||||
|
{
|
||||||
|
return this->getLocalThermo(speciei).G(p, T);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
template<class MixtureType>
|
||||||
|
Foam::scalar Foam::SpecieMixture<MixtureType>::A
|
||||||
|
(
|
||||||
|
const label speciei,
|
||||||
|
const scalar p,
|
||||||
|
const scalar T
|
||||||
|
) const
|
||||||
|
{
|
||||||
|
return this->getLocalThermo(speciei).A(p, T);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
template<class MixtureType>
|
||||||
|
Foam::scalar Foam::SpecieMixture<MixtureType>::mu
|
||||||
|
(
|
||||||
|
const label speciei,
|
||||||
|
const scalar p,
|
||||||
|
const scalar T
|
||||||
|
) const
|
||||||
|
{
|
||||||
|
return this->getLocalThermo(speciei).mu(p, T);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
template<class MixtureType>
|
||||||
|
Foam::scalar Foam::SpecieMixture<MixtureType>::kappa
|
||||||
|
(
|
||||||
|
const label speciei,
|
||||||
|
const scalar p,
|
||||||
|
const scalar T
|
||||||
|
) const
|
||||||
|
{
|
||||||
|
return this->getLocalThermo(speciei).kappa(p, T);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
template<class MixtureType>
|
||||||
|
Foam::scalar Foam::SpecieMixture<MixtureType>::alphah
|
||||||
|
(
|
||||||
|
const label speciei,
|
||||||
|
const scalar p,
|
||||||
|
const scalar T
|
||||||
|
) const
|
||||||
|
{
|
||||||
|
return this->getLocalThermo(speciei).alphah(p, T);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -0,0 +1,196 @@
|
|||||||
|
/*---------------------------------------------------------------------------*\
|
||||||
|
========= |
|
||||||
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
|
\\ / O peration |
|
||||||
|
\\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation
|
||||||
|
\\/ M anipulation |
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
License
|
||||||
|
This file is part of OpenFOAM.
|
||||||
|
|
||||||
|
OpenFOAM is free software: you can redistribute it and/or modify it
|
||||||
|
under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
|
||||||
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||||
|
for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
Class
|
||||||
|
Foam::SpecieMixture
|
||||||
|
|
||||||
|
Description
|
||||||
|
Foam::SpecieMixture
|
||||||
|
|
||||||
|
SourceFiles
|
||||||
|
SpecieMixture.C
|
||||||
|
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
#ifndef SpecieMixture_H
|
||||||
|
#define SpecieMixture_H
|
||||||
|
|
||||||
|
#include "scalar.H"
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
namespace Foam
|
||||||
|
{
|
||||||
|
|
||||||
|
// Forward declaration of classes
|
||||||
|
class dictionary;
|
||||||
|
class fvMesh;
|
||||||
|
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*\
|
||||||
|
Class SpecieMixture Declaration
|
||||||
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
template<class MixtureType>
|
||||||
|
class SpecieMixture
|
||||||
|
:
|
||||||
|
public MixtureType
|
||||||
|
{
|
||||||
|
|
||||||
|
public:
|
||||||
|
|
||||||
|
// Constructors
|
||||||
|
|
||||||
|
//- Construct from dictionary and mesh
|
||||||
|
SpecieMixture(const dictionary&, const fvMesh&);
|
||||||
|
|
||||||
|
|
||||||
|
//- Destructor
|
||||||
|
virtual ~SpecieMixture()
|
||||||
|
{}
|
||||||
|
|
||||||
|
|
||||||
|
// Member functions
|
||||||
|
|
||||||
|
// Per specie properties
|
||||||
|
|
||||||
|
//- Number of moles []
|
||||||
|
virtual scalar nMoles(const label speciei) const;
|
||||||
|
|
||||||
|
//- Molecular weight [kg/kmol]
|
||||||
|
virtual scalar W(const label speciei) const;
|
||||||
|
|
||||||
|
|
||||||
|
// Per specie thermo properties
|
||||||
|
|
||||||
|
//- Heat capacity at constant pressure [J/(kg K)]
|
||||||
|
virtual scalar Cp
|
||||||
|
(
|
||||||
|
const label speciei,
|
||||||
|
const scalar p,
|
||||||
|
const scalar T
|
||||||
|
) const;
|
||||||
|
|
||||||
|
//- Heat capacity at constant volume [J/(kg K)]
|
||||||
|
virtual scalar Cv
|
||||||
|
(
|
||||||
|
const label speciei,
|
||||||
|
const scalar p,
|
||||||
|
const scalar T
|
||||||
|
) const;
|
||||||
|
|
||||||
|
//- Absolute enthalpy [J/kg]
|
||||||
|
virtual scalar Ha
|
||||||
|
(
|
||||||
|
const label speciei,
|
||||||
|
const scalar p,
|
||||||
|
const scalar T
|
||||||
|
) const;
|
||||||
|
|
||||||
|
//- Sensible enthalpy [J/kg]
|
||||||
|
virtual scalar Hs
|
||||||
|
(
|
||||||
|
const label speciei,
|
||||||
|
const scalar p,
|
||||||
|
const scalar T
|
||||||
|
) const;
|
||||||
|
|
||||||
|
//- Chemical enthalpy [J/kg]
|
||||||
|
virtual scalar Hc(const label speciei) const;
|
||||||
|
|
||||||
|
//- Entropy [J/(kg K)]
|
||||||
|
virtual scalar S
|
||||||
|
(
|
||||||
|
const label speciei,
|
||||||
|
const scalar p,
|
||||||
|
const scalar T
|
||||||
|
) const;
|
||||||
|
|
||||||
|
//- Sensible internal energy [J/kg]
|
||||||
|
virtual scalar Es
|
||||||
|
(
|
||||||
|
const label speciei,
|
||||||
|
const scalar p,
|
||||||
|
const scalar T
|
||||||
|
) const;
|
||||||
|
|
||||||
|
//- Gibbs free energy [J/kg]
|
||||||
|
virtual scalar G
|
||||||
|
(
|
||||||
|
const label speciei,
|
||||||
|
const scalar p,
|
||||||
|
const scalar T
|
||||||
|
) const;
|
||||||
|
|
||||||
|
//- Helmholtz free energy [J/kg]
|
||||||
|
virtual scalar A
|
||||||
|
(
|
||||||
|
const label speciei,
|
||||||
|
const scalar p,
|
||||||
|
const scalar T
|
||||||
|
) const;
|
||||||
|
|
||||||
|
|
||||||
|
// Per specie transport properties
|
||||||
|
|
||||||
|
//- Dynamic viscosity [kg/m/s]
|
||||||
|
virtual scalar mu
|
||||||
|
(
|
||||||
|
const label speciei,
|
||||||
|
const scalar p,
|
||||||
|
const scalar T
|
||||||
|
) const;
|
||||||
|
|
||||||
|
//- Thermal conductivity [W/m/K]
|
||||||
|
virtual scalar kappa
|
||||||
|
(
|
||||||
|
const label speciei,
|
||||||
|
const scalar p,
|
||||||
|
const scalar T
|
||||||
|
) const;
|
||||||
|
|
||||||
|
//- Thermal diffusivity of enthalpy [kg/m/s]
|
||||||
|
virtual scalar alphah
|
||||||
|
(
|
||||||
|
const label speciei,
|
||||||
|
const scalar p,
|
||||||
|
const scalar T
|
||||||
|
) const;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
} // End namespace Foam
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||||
|
|
||||||
|
#ifdef NoRepository
|
||||||
|
# include "SpecieMixture.C"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
@ -135,44 +135,98 @@ public:
|
|||||||
// Per specie thermo properties
|
// Per specie thermo properties
|
||||||
|
|
||||||
//- Heat capacity at constant pressure [J/(kg K)]
|
//- Heat capacity at constant pressure [J/(kg K)]
|
||||||
virtual scalar Cp(const label specieI, const scalar T) const = 0;
|
virtual scalar Cp
|
||||||
|
(
|
||||||
|
const label specieI,
|
||||||
|
const scalar p,
|
||||||
|
const scalar T
|
||||||
|
) const = 0;
|
||||||
|
|
||||||
//- Heat capacity at constant volume [J/(kg K)]
|
//- Heat capacity at constant volume [J/(kg K)]
|
||||||
virtual scalar Cv(const label specieI, const scalar T) const = 0;
|
virtual scalar Cv
|
||||||
|
(
|
||||||
|
const label specieI,
|
||||||
|
const scalar p,
|
||||||
|
const scalar T
|
||||||
|
) const = 0;
|
||||||
|
|
||||||
//- Absolute enthalpy [J/kg]
|
//- Absolute enthalpy [J/kg]
|
||||||
virtual scalar Ha(const label specieI, const scalar T) const = 0;
|
virtual scalar Ha
|
||||||
|
(
|
||||||
|
const label specieI,
|
||||||
|
const scalar p,
|
||||||
|
const scalar T
|
||||||
|
) const = 0;
|
||||||
|
|
||||||
//- Sensible enthalpy [J/kg]
|
//- Sensible enthalpy [J/kg]
|
||||||
virtual scalar Hs(const label specieI, const scalar T) const = 0;
|
virtual scalar Hs
|
||||||
|
(
|
||||||
|
const label specieI,
|
||||||
|
const scalar p,
|
||||||
|
const scalar T
|
||||||
|
) const = 0;
|
||||||
|
|
||||||
//- Chemical enthalpy [J/kg]
|
//- Chemical enthalpy [J/kg]
|
||||||
virtual scalar Hc(const label specieI) const = 0;
|
virtual scalar Hc(const label specieI) const = 0;
|
||||||
|
|
||||||
//- Entropy [J/(kg K)]
|
//- Entropy [J/(kg K)]
|
||||||
virtual scalar S(const label specieI, const scalar T) const = 0;
|
virtual scalar S
|
||||||
|
(
|
||||||
|
const label specieI,
|
||||||
|
const scalar p,
|
||||||
|
const scalar T
|
||||||
|
) const = 0;
|
||||||
|
|
||||||
//- Sensible internal energy [J/kg]
|
//- Sensible internal energy [J/kg]
|
||||||
virtual scalar Es(const label specieI, const scalar T) const = 0;
|
virtual scalar Es
|
||||||
|
(
|
||||||
|
const label specieI,
|
||||||
|
const scalar p,
|
||||||
|
const scalar T
|
||||||
|
) const = 0;
|
||||||
|
|
||||||
//- Gibbs free energy [J/kg]
|
//- Gibbs free energy [J/kg]
|
||||||
virtual scalar G(const label specieI, const scalar T) const = 0;
|
virtual scalar G
|
||||||
|
(
|
||||||
|
const label specieI,
|
||||||
|
const scalar p,
|
||||||
|
const scalar T
|
||||||
|
) const = 0;
|
||||||
|
|
||||||
//- Helmholtz free energy [J/kg]
|
//- Helmholtz free energy [J/kg]
|
||||||
virtual scalar A(const label specieI, const scalar T) const = 0;
|
virtual scalar A
|
||||||
|
(
|
||||||
|
const label specieI,
|
||||||
|
const scalar p,
|
||||||
|
const scalar T
|
||||||
|
) const = 0;
|
||||||
|
|
||||||
|
|
||||||
// Per specie transport properties
|
// Per specie transport properties
|
||||||
|
|
||||||
//- Dynamic viscosity [kg/m/s]
|
//- Dynamic viscosity [kg/m/s]
|
||||||
virtual scalar mu(const label specieI, const scalar T) const = 0;
|
virtual scalar mu
|
||||||
|
(
|
||||||
|
const label specieI,
|
||||||
|
const scalar p,
|
||||||
|
const scalar T
|
||||||
|
) const = 0;
|
||||||
|
|
||||||
//- Thermal conductivity [W/m/K]
|
//- Thermal conductivity [W/m/K]
|
||||||
virtual scalar kappa(const label specieI, const scalar T) const = 0;
|
virtual scalar kappa
|
||||||
|
(
|
||||||
|
const label specieI,
|
||||||
|
const scalar p,
|
||||||
|
const scalar T
|
||||||
|
) const = 0;
|
||||||
|
|
||||||
//- Thermal diffusivity of enthalpy [kg/m/s]
|
//- Thermal diffusivity of enthalpy [kg/m/s]
|
||||||
virtual scalar alphah(const label specieI, const scalar T) const
|
virtual scalar alphah
|
||||||
= 0;
|
(
|
||||||
|
const label specieI,
|
||||||
|
const scalar p,
|
||||||
|
const scalar T
|
||||||
|
) const = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -131,155 +131,4 @@ const ThermoType& Foam::dieselMixture<ThermoType>::getLocalThermo
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
template<class ThermoType>
|
|
||||||
Foam::scalar Foam::dieselMixture<ThermoType>::nMoles
|
|
||||||
(
|
|
||||||
const label specieI
|
|
||||||
) const
|
|
||||||
{
|
|
||||||
return getLocalThermo(specieI).nMoles();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template<class ThermoType>
|
|
||||||
Foam::scalar Foam::dieselMixture<ThermoType>::W
|
|
||||||
(
|
|
||||||
const label specieI
|
|
||||||
) const
|
|
||||||
{
|
|
||||||
return getLocalThermo(specieI).W();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template<class ThermoType>
|
|
||||||
Foam::scalar Foam::dieselMixture<ThermoType>::Cp
|
|
||||||
(
|
|
||||||
const label specieI,
|
|
||||||
const scalar T
|
|
||||||
) const
|
|
||||||
{
|
|
||||||
return getLocalThermo(specieI).Cp(T);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template<class ThermoType>
|
|
||||||
Foam::scalar Foam::dieselMixture<ThermoType>::Cv
|
|
||||||
(
|
|
||||||
const label specieI,
|
|
||||||
const scalar T
|
|
||||||
) const
|
|
||||||
{
|
|
||||||
return getLocalThermo(specieI).Cv(T);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template<class ThermoType>
|
|
||||||
Foam::scalar Foam::dieselMixture<ThermoType>::Ha
|
|
||||||
(
|
|
||||||
const label specieI,
|
|
||||||
const scalar T
|
|
||||||
) const
|
|
||||||
{
|
|
||||||
return getLocalThermo(specieI).Ha(T);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template<class ThermoType>
|
|
||||||
Foam::scalar Foam::dieselMixture<ThermoType>::Hs
|
|
||||||
(
|
|
||||||
const label specieI,
|
|
||||||
const scalar T
|
|
||||||
) const
|
|
||||||
{
|
|
||||||
return getLocalThermo(specieI).Hs(T);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template<class ThermoType>
|
|
||||||
Foam::scalar Foam::dieselMixture<ThermoType>::Hc
|
|
||||||
(
|
|
||||||
const label specieI
|
|
||||||
) const
|
|
||||||
{
|
|
||||||
return getLocalThermo(specieI).Hc();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template<class ThermoType>
|
|
||||||
Foam::scalar Foam::dieselMixture<ThermoType>::S
|
|
||||||
(
|
|
||||||
const label specieI,
|
|
||||||
const scalar T
|
|
||||||
) const
|
|
||||||
{
|
|
||||||
return getLocalThermo(specieI).S(T);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template<class ThermoType>
|
|
||||||
Foam::scalar Foam::dieselMixture<ThermoType>::Es
|
|
||||||
(
|
|
||||||
const label specieI,
|
|
||||||
const scalar T
|
|
||||||
) const
|
|
||||||
{
|
|
||||||
return getLocalThermo(specieI).Es(T);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template<class ThermoType>
|
|
||||||
Foam::scalar Foam::dieselMixture<ThermoType>::G
|
|
||||||
(
|
|
||||||
const label specieI,
|
|
||||||
const scalar T
|
|
||||||
) const
|
|
||||||
{
|
|
||||||
return getLocalThermo(specieI).G(T);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template<class ThermoType>
|
|
||||||
Foam::scalar Foam::dieselMixture<ThermoType>::A
|
|
||||||
(
|
|
||||||
const label specieI,
|
|
||||||
const scalar T
|
|
||||||
) const
|
|
||||||
{
|
|
||||||
return getLocalThermo(specieI).A(T);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template<class ThermoType>
|
|
||||||
Foam::scalar Foam::dieselMixture<ThermoType>::mu
|
|
||||||
(
|
|
||||||
const label specieI,
|
|
||||||
const scalar T
|
|
||||||
) const
|
|
||||||
{
|
|
||||||
return getLocalThermo(specieI).mu(T);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template<class ThermoType>
|
|
||||||
Foam::scalar Foam::dieselMixture<ThermoType>::kappa
|
|
||||||
(
|
|
||||||
const label specieI,
|
|
||||||
const scalar T
|
|
||||||
) const
|
|
||||||
{
|
|
||||||
return getLocalThermo(specieI).kappa(T);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template<class ThermoType>
|
|
||||||
Foam::scalar Foam::dieselMixture<ThermoType>::alphah
|
|
||||||
(
|
|
||||||
const label specieI,
|
|
||||||
const scalar T
|
|
||||||
) const
|
|
||||||
{
|
|
||||||
return getLocalThermo(specieI).alphah(T);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// ************************************************************************* //
|
// ************************************************************************* //
|
||||||
|
|||||||
@ -154,57 +154,6 @@ public:
|
|||||||
|
|
||||||
//- Return thermo based on index
|
//- Return thermo based on index
|
||||||
const ThermoType& getLocalThermo(const label specieI) const;
|
const ThermoType& getLocalThermo(const label specieI) const;
|
||||||
|
|
||||||
|
|
||||||
// Per specie properties
|
|
||||||
|
|
||||||
//- Number of moles []
|
|
||||||
virtual scalar nMoles(const label specieI) const;
|
|
||||||
|
|
||||||
//- Molecular weight [kg/kmol]
|
|
||||||
virtual scalar W(const label specieI) const;
|
|
||||||
|
|
||||||
|
|
||||||
// Per specie thermo properties
|
|
||||||
|
|
||||||
//- Heat capacity at constant pressure [J/(kg K)]
|
|
||||||
virtual scalar Cp(const label specieI, const scalar T) const;
|
|
||||||
|
|
||||||
//- Heat capacity at constant volume [J/(kg K)]
|
|
||||||
virtual scalar Cv(const label specieI, const scalar T) const;
|
|
||||||
|
|
||||||
//- Absolute enthalpy [J/kg]
|
|
||||||
virtual scalar Ha(const label specieI, const scalar T) const;
|
|
||||||
|
|
||||||
//- Sensible enthalpy [J/kg]
|
|
||||||
virtual scalar Hs(const label specieI, const scalar T) const;
|
|
||||||
|
|
||||||
//- Chemical enthalpy [J/kg]
|
|
||||||
virtual scalar Hc(const label specieI) const;
|
|
||||||
|
|
||||||
//- Entropy [J/(kg K)]
|
|
||||||
virtual scalar S(const label specieI, const scalar T) const;
|
|
||||||
|
|
||||||
//- Sensible internal energy [J/kg]
|
|
||||||
virtual scalar Es(const label specieI, const scalar T) const;
|
|
||||||
|
|
||||||
//- Gibbs free energy [J/kg]
|
|
||||||
virtual scalar G(const label specieI, const scalar T) const;
|
|
||||||
|
|
||||||
//- Helmholtz free energy [J/kg]
|
|
||||||
virtual scalar A(const label specieI, const scalar T) const;
|
|
||||||
|
|
||||||
|
|
||||||
// Per specie transport properties
|
|
||||||
|
|
||||||
//- Dynamic viscosity [kg/m/s]
|
|
||||||
virtual scalar mu(const label specieI, const scalar T) const;
|
|
||||||
|
|
||||||
//- Thermal conductivity [W/m/K]
|
|
||||||
virtual scalar kappa(const label specieI, const scalar T) const;
|
|
||||||
|
|
||||||
//- Thermal diffusivity of enthalpy [kg/m/s]
|
|
||||||
virtual scalar alphah(const label specieI, const scalar T) const;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -141,155 +141,4 @@ const ThermoType& Foam::egrMixture<ThermoType>::getLocalThermo
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
template<class ThermoType>
|
|
||||||
Foam::scalar Foam::egrMixture<ThermoType>::nMoles
|
|
||||||
(
|
|
||||||
const label specieI
|
|
||||||
) const
|
|
||||||
{
|
|
||||||
return getLocalThermo(specieI).nMoles();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template<class ThermoType>
|
|
||||||
Foam::scalar Foam::egrMixture<ThermoType>::W
|
|
||||||
(
|
|
||||||
const label specieI
|
|
||||||
) const
|
|
||||||
{
|
|
||||||
return getLocalThermo(specieI).W();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template<class ThermoType>
|
|
||||||
Foam::scalar Foam::egrMixture<ThermoType>::Cp
|
|
||||||
(
|
|
||||||
const label specieI,
|
|
||||||
const scalar T
|
|
||||||
) const
|
|
||||||
{
|
|
||||||
return getLocalThermo(specieI).Cp(T);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template<class ThermoType>
|
|
||||||
Foam::scalar Foam::egrMixture<ThermoType>::Cv
|
|
||||||
(
|
|
||||||
const label specieI,
|
|
||||||
const scalar T
|
|
||||||
) const
|
|
||||||
{
|
|
||||||
return getLocalThermo(specieI).Cv(T);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template<class ThermoType>
|
|
||||||
Foam::scalar Foam::egrMixture<ThermoType>::Ha
|
|
||||||
(
|
|
||||||
const label specieI,
|
|
||||||
const scalar T
|
|
||||||
) const
|
|
||||||
{
|
|
||||||
return getLocalThermo(specieI).Ha(T);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template<class ThermoType>
|
|
||||||
Foam::scalar Foam::egrMixture<ThermoType>::Hs
|
|
||||||
(
|
|
||||||
const label specieI,
|
|
||||||
const scalar T
|
|
||||||
) const
|
|
||||||
{
|
|
||||||
return getLocalThermo(specieI).Hs(T);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template<class ThermoType>
|
|
||||||
Foam::scalar Foam::egrMixture<ThermoType>::Hc
|
|
||||||
(
|
|
||||||
const label specieI
|
|
||||||
) const
|
|
||||||
{
|
|
||||||
return getLocalThermo(specieI).Hc();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template<class ThermoType>
|
|
||||||
Foam::scalar Foam::egrMixture<ThermoType>::S
|
|
||||||
(
|
|
||||||
const label specieI,
|
|
||||||
const scalar T
|
|
||||||
) const
|
|
||||||
{
|
|
||||||
return getLocalThermo(specieI).S(T);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template<class ThermoType>
|
|
||||||
Foam::scalar Foam::egrMixture<ThermoType>::Es
|
|
||||||
(
|
|
||||||
const label specieI,
|
|
||||||
const scalar T
|
|
||||||
) const
|
|
||||||
{
|
|
||||||
return getLocalThermo(specieI).Es(T);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template<class ThermoType>
|
|
||||||
Foam::scalar Foam::egrMixture<ThermoType>::G
|
|
||||||
(
|
|
||||||
const label specieI,
|
|
||||||
const scalar T
|
|
||||||
) const
|
|
||||||
{
|
|
||||||
return getLocalThermo(specieI).G(T);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template<class ThermoType>
|
|
||||||
Foam::scalar Foam::egrMixture<ThermoType>::A
|
|
||||||
(
|
|
||||||
const label specieI,
|
|
||||||
const scalar T
|
|
||||||
) const
|
|
||||||
{
|
|
||||||
return getLocalThermo(specieI).A(T);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template<class ThermoType>
|
|
||||||
Foam::scalar Foam::egrMixture<ThermoType>::mu
|
|
||||||
(
|
|
||||||
const label specieI,
|
|
||||||
const scalar T
|
|
||||||
) const
|
|
||||||
{
|
|
||||||
return getLocalThermo(specieI).mu(T);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template<class ThermoType>
|
|
||||||
Foam::scalar Foam::egrMixture<ThermoType>::kappa
|
|
||||||
(
|
|
||||||
const label specieI,
|
|
||||||
const scalar T
|
|
||||||
) const
|
|
||||||
{
|
|
||||||
return getLocalThermo(specieI).kappa(T);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template<class ThermoType>
|
|
||||||
Foam::scalar Foam::egrMixture<ThermoType>::alphah
|
|
||||||
(
|
|
||||||
const label specieI,
|
|
||||||
const scalar T
|
|
||||||
) const
|
|
||||||
{
|
|
||||||
return getLocalThermo(specieI).alphah(T);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// ************************************************************************* //
|
// ************************************************************************* //
|
||||||
|
|||||||
@ -170,57 +170,6 @@ public:
|
|||||||
|
|
||||||
//- Return thermo based on index
|
//- Return thermo based on index
|
||||||
const ThermoType& getLocalThermo(const label specieI) const;
|
const ThermoType& getLocalThermo(const label specieI) const;
|
||||||
|
|
||||||
|
|
||||||
// Per specie properties
|
|
||||||
|
|
||||||
//- Number of moles []
|
|
||||||
virtual scalar nMoles(const label specieI) const;
|
|
||||||
|
|
||||||
//- Molecular weight [kg/kmol]
|
|
||||||
virtual scalar W(const label specieI) const;
|
|
||||||
|
|
||||||
|
|
||||||
// Per specie thermo properties
|
|
||||||
|
|
||||||
//- Heat capacity at constant pressure [J/(kg K)]
|
|
||||||
virtual scalar Cp(const label specieI, const scalar T) const;
|
|
||||||
|
|
||||||
//- Heat capacity at constant volume [J/(kg K)]
|
|
||||||
virtual scalar Cv(const label specieI, const scalar T) const;
|
|
||||||
|
|
||||||
//- Absolute enthalpy [J/kg]
|
|
||||||
virtual scalar Ha(const label specieI, const scalar T) const;
|
|
||||||
|
|
||||||
//- Sensible enthalpy [J/kg]
|
|
||||||
virtual scalar Hs(const label specieI, const scalar T) const;
|
|
||||||
|
|
||||||
//- Chemical enthalpy [J/kg]
|
|
||||||
virtual scalar Hc(const label specieI) const;
|
|
||||||
|
|
||||||
//- Entropy [J/(kg K)]
|
|
||||||
virtual scalar S(const label specieI, const scalar T) const;
|
|
||||||
|
|
||||||
//- Sensible internal energy [J/kg]
|
|
||||||
virtual scalar Es(const label specieI, const scalar T) const;
|
|
||||||
|
|
||||||
//- Gibbs free energy [J/kg]
|
|
||||||
virtual scalar G(const label specieI, const scalar T) const;
|
|
||||||
|
|
||||||
//- Helmholtz free energy [J/kg]
|
|
||||||
virtual scalar A(const label specieI, const scalar T) const;
|
|
||||||
|
|
||||||
|
|
||||||
// Per specie transport properties
|
|
||||||
|
|
||||||
//- Dynamic viscosity [kg/m/s]
|
|
||||||
virtual scalar mu(const label specieI, const scalar T) const;
|
|
||||||
|
|
||||||
//- Thermal conductivity [W/m/K]
|
|
||||||
virtual scalar kappa(const label specieI, const scalar T) const;
|
|
||||||
|
|
||||||
//- Thermal diffusivity of enthalpy [kg/m/s]
|
|
||||||
virtual scalar alphah(const label specieI, const scalar T) const;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -120,155 +120,4 @@ const ThermoType& Foam::homogeneousMixture<ThermoType>::getLocalThermo
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
template<class ThermoType>
|
|
||||||
Foam::scalar Foam::homogeneousMixture<ThermoType>::nMoles
|
|
||||||
(
|
|
||||||
const label specieI
|
|
||||||
) const
|
|
||||||
{
|
|
||||||
return getLocalThermo(specieI).nMoles();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template<class ThermoType>
|
|
||||||
Foam::scalar Foam::homogeneousMixture<ThermoType>::W
|
|
||||||
(
|
|
||||||
const label specieI
|
|
||||||
) const
|
|
||||||
{
|
|
||||||
return getLocalThermo(specieI).W();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template<class ThermoType>
|
|
||||||
Foam::scalar Foam::homogeneousMixture<ThermoType>::Cp
|
|
||||||
(
|
|
||||||
const label specieI,
|
|
||||||
const scalar T
|
|
||||||
) const
|
|
||||||
{
|
|
||||||
return getLocalThermo(specieI).Cp(T);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template<class ThermoType>
|
|
||||||
Foam::scalar Foam::homogeneousMixture<ThermoType>::Cv
|
|
||||||
(
|
|
||||||
const label specieI,
|
|
||||||
const scalar T
|
|
||||||
) const
|
|
||||||
{
|
|
||||||
return getLocalThermo(specieI).Cv(T);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template<class ThermoType>
|
|
||||||
Foam::scalar Foam::homogeneousMixture<ThermoType>::Ha
|
|
||||||
(
|
|
||||||
const label specieI,
|
|
||||||
const scalar T
|
|
||||||
) const
|
|
||||||
{
|
|
||||||
return getLocalThermo(specieI).Ha(T);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template<class ThermoType>
|
|
||||||
Foam::scalar Foam::homogeneousMixture<ThermoType>::Hs
|
|
||||||
(
|
|
||||||
const label specieI,
|
|
||||||
const scalar T
|
|
||||||
) const
|
|
||||||
{
|
|
||||||
return getLocalThermo(specieI).Hs(T);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template<class ThermoType>
|
|
||||||
Foam::scalar Foam::homogeneousMixture<ThermoType>::Hc
|
|
||||||
(
|
|
||||||
const label specieI
|
|
||||||
) const
|
|
||||||
{
|
|
||||||
return getLocalThermo(specieI).Hc();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template<class ThermoType>
|
|
||||||
Foam::scalar Foam::homogeneousMixture<ThermoType>::S
|
|
||||||
(
|
|
||||||
const label specieI,
|
|
||||||
const scalar T
|
|
||||||
) const
|
|
||||||
{
|
|
||||||
return getLocalThermo(specieI).S(T);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template<class ThermoType>
|
|
||||||
Foam::scalar Foam::homogeneousMixture<ThermoType>::Es
|
|
||||||
(
|
|
||||||
const label specieI,
|
|
||||||
const scalar T
|
|
||||||
) const
|
|
||||||
{
|
|
||||||
return getLocalThermo(specieI).Es(T);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template<class ThermoType>
|
|
||||||
Foam::scalar Foam::homogeneousMixture<ThermoType>::G
|
|
||||||
(
|
|
||||||
const label specieI,
|
|
||||||
const scalar T
|
|
||||||
) const
|
|
||||||
{
|
|
||||||
return getLocalThermo(specieI).G(T);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template<class ThermoType>
|
|
||||||
Foam::scalar Foam::homogeneousMixture<ThermoType>::A
|
|
||||||
(
|
|
||||||
const label specieI,
|
|
||||||
const scalar T
|
|
||||||
) const
|
|
||||||
{
|
|
||||||
return getLocalThermo(specieI).A(T);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template<class ThermoType>
|
|
||||||
Foam::scalar Foam::homogeneousMixture<ThermoType>::mu
|
|
||||||
(
|
|
||||||
const label specieI,
|
|
||||||
const scalar T
|
|
||||||
) const
|
|
||||||
{
|
|
||||||
return getLocalThermo(specieI).mu(T);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template<class ThermoType>
|
|
||||||
Foam::scalar Foam::homogeneousMixture<ThermoType>::kappa
|
|
||||||
(
|
|
||||||
const label specieI,
|
|
||||||
const scalar T
|
|
||||||
) const
|
|
||||||
{
|
|
||||||
return getLocalThermo(specieI).kappa(T);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template<class ThermoType>
|
|
||||||
Foam::scalar Foam::homogeneousMixture<ThermoType>::alphah
|
|
||||||
(
|
|
||||||
const label specieI,
|
|
||||||
const scalar T
|
|
||||||
) const
|
|
||||||
{
|
|
||||||
return getLocalThermo(specieI).alphah(T);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// ************************************************************************* //
|
// ************************************************************************* //
|
||||||
|
|||||||
@ -128,57 +128,6 @@ public:
|
|||||||
|
|
||||||
//- Return thermo based on index
|
//- Return thermo based on index
|
||||||
const ThermoType& getLocalThermo(const label specieI) const;
|
const ThermoType& getLocalThermo(const label specieI) const;
|
||||||
|
|
||||||
|
|
||||||
// Per specie properties
|
|
||||||
|
|
||||||
//- Number of moles []
|
|
||||||
virtual scalar nMoles(const label specieI) const;
|
|
||||||
|
|
||||||
//- Molecular weight [kg/kmol]
|
|
||||||
virtual scalar W(const label specieI) const;
|
|
||||||
|
|
||||||
|
|
||||||
// Per specie thermo properties
|
|
||||||
|
|
||||||
//- Heat capacity at constant pressure [J/(kg K)]
|
|
||||||
virtual scalar Cp(const label specieI, const scalar T) const;
|
|
||||||
|
|
||||||
//- Heat capacity at constant volume [J/(kg K)]
|
|
||||||
virtual scalar Cv(const label specieI, const scalar T) const;
|
|
||||||
|
|
||||||
//- Absolute enthalpy [J/kg]
|
|
||||||
virtual scalar Ha(const label specieI, const scalar T) const;
|
|
||||||
|
|
||||||
//- Sensible enthalpy [J/kg]
|
|
||||||
virtual scalar Hs(const label specieI, const scalar T) const;
|
|
||||||
|
|
||||||
//- Chemical enthalpy [J/kg]
|
|
||||||
virtual scalar Hc(const label specieI) const;
|
|
||||||
|
|
||||||
//- Entropy [J/(kg K)]
|
|
||||||
virtual scalar S(const label specieI, const scalar T) const;
|
|
||||||
|
|
||||||
//- Sensible internal energy [J/kg]
|
|
||||||
virtual scalar Es(const label specieI, const scalar T) const;
|
|
||||||
|
|
||||||
//- Gibbs free energy [J/kg]
|
|
||||||
virtual scalar G(const label specieI, const scalar T) const;
|
|
||||||
|
|
||||||
//- Helmholtz free energy [J/kg]
|
|
||||||
virtual scalar A(const label specieI, const scalar T) const;
|
|
||||||
|
|
||||||
|
|
||||||
// Per specie transport properties
|
|
||||||
|
|
||||||
//- Dynamic viscosity [kg/m/s]
|
|
||||||
virtual scalar mu(const label specieI, const scalar T) const;
|
|
||||||
|
|
||||||
//- Thermal conductivity [W/m/K]
|
|
||||||
virtual scalar kappa(const label specieI, const scalar T) const;
|
|
||||||
|
|
||||||
//- Thermal diffusivity of enthalpy [kg/m/s]
|
|
||||||
virtual scalar alphah(const label specieI, const scalar T) const;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -136,155 +136,4 @@ const ThermoType& Foam::inhomogeneousMixture<ThermoType>::getLocalThermo
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
template<class ThermoType>
|
|
||||||
Foam::scalar Foam::inhomogeneousMixture<ThermoType>::nMoles
|
|
||||||
(
|
|
||||||
const label specieI
|
|
||||||
) const
|
|
||||||
{
|
|
||||||
return getLocalThermo(specieI).nMoles();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template<class ThermoType>
|
|
||||||
Foam::scalar Foam::inhomogeneousMixture<ThermoType>::W
|
|
||||||
(
|
|
||||||
const label specieI
|
|
||||||
) const
|
|
||||||
{
|
|
||||||
return getLocalThermo(specieI).W();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template<class ThermoType>
|
|
||||||
Foam::scalar Foam::inhomogeneousMixture<ThermoType>::Cp
|
|
||||||
(
|
|
||||||
const label specieI,
|
|
||||||
const scalar T
|
|
||||||
) const
|
|
||||||
{
|
|
||||||
return getLocalThermo(specieI).Cp(T);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template<class ThermoType>
|
|
||||||
Foam::scalar Foam::inhomogeneousMixture<ThermoType>::Cv
|
|
||||||
(
|
|
||||||
const label specieI,
|
|
||||||
const scalar T
|
|
||||||
) const
|
|
||||||
{
|
|
||||||
return getLocalThermo(specieI).Cv(T);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template<class ThermoType>
|
|
||||||
Foam::scalar Foam::inhomogeneousMixture<ThermoType>::Ha
|
|
||||||
(
|
|
||||||
const label specieI,
|
|
||||||
const scalar T
|
|
||||||
) const
|
|
||||||
{
|
|
||||||
return getLocalThermo(specieI).Ha(T);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template<class ThermoType>
|
|
||||||
Foam::scalar Foam::inhomogeneousMixture<ThermoType>::Hs
|
|
||||||
(
|
|
||||||
const label specieI,
|
|
||||||
const scalar T
|
|
||||||
) const
|
|
||||||
{
|
|
||||||
return getLocalThermo(specieI).Hs(T);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template<class ThermoType>
|
|
||||||
Foam::scalar Foam::inhomogeneousMixture<ThermoType>::Hc
|
|
||||||
(
|
|
||||||
const label specieI
|
|
||||||
) const
|
|
||||||
{
|
|
||||||
return getLocalThermo(specieI).Hc();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template<class ThermoType>
|
|
||||||
Foam::scalar Foam::inhomogeneousMixture<ThermoType>::S
|
|
||||||
(
|
|
||||||
const label specieI,
|
|
||||||
const scalar T
|
|
||||||
) const
|
|
||||||
{
|
|
||||||
return getLocalThermo(specieI).S(T);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template<class ThermoType>
|
|
||||||
Foam::scalar Foam::inhomogeneousMixture<ThermoType>::Es
|
|
||||||
(
|
|
||||||
const label specieI,
|
|
||||||
const scalar T
|
|
||||||
) const
|
|
||||||
{
|
|
||||||
return getLocalThermo(specieI).Es(T);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template<class ThermoType>
|
|
||||||
Foam::scalar Foam::inhomogeneousMixture<ThermoType>::G
|
|
||||||
(
|
|
||||||
const label specieI,
|
|
||||||
const scalar T
|
|
||||||
) const
|
|
||||||
{
|
|
||||||
return getLocalThermo(specieI).G(T);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template<class ThermoType>
|
|
||||||
Foam::scalar Foam::inhomogeneousMixture<ThermoType>::A
|
|
||||||
(
|
|
||||||
const label specieI,
|
|
||||||
const scalar T
|
|
||||||
) const
|
|
||||||
{
|
|
||||||
return getLocalThermo(specieI).A(T);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template<class ThermoType>
|
|
||||||
Foam::scalar Foam::inhomogeneousMixture<ThermoType>::mu
|
|
||||||
(
|
|
||||||
const label specieI,
|
|
||||||
const scalar T
|
|
||||||
) const
|
|
||||||
{
|
|
||||||
return getLocalThermo(specieI).mu(T);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template<class ThermoType>
|
|
||||||
Foam::scalar Foam::inhomogeneousMixture<ThermoType>::kappa
|
|
||||||
(
|
|
||||||
const label specieI,
|
|
||||||
const scalar T
|
|
||||||
) const
|
|
||||||
{
|
|
||||||
return getLocalThermo(specieI).kappa(T);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template<class ThermoType>
|
|
||||||
Foam::scalar Foam::inhomogeneousMixture<ThermoType>::alphah
|
|
||||||
(
|
|
||||||
const label specieI,
|
|
||||||
const scalar T
|
|
||||||
) const
|
|
||||||
{
|
|
||||||
return getLocalThermo(specieI).alphah(T);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// ************************************************************************* //
|
// ************************************************************************* //
|
||||||
|
|||||||
@ -159,57 +159,6 @@ public:
|
|||||||
|
|
||||||
//- Return thermo based on index
|
//- Return thermo based on index
|
||||||
const ThermoType& getLocalThermo(const label specieI) const;
|
const ThermoType& getLocalThermo(const label specieI) const;
|
||||||
|
|
||||||
|
|
||||||
// Per specie properties
|
|
||||||
|
|
||||||
//- Number of moles []
|
|
||||||
virtual scalar nMoles(const label specieI) const;
|
|
||||||
|
|
||||||
//- Molecular weight [kg/kmol]
|
|
||||||
virtual scalar W(const label specieI) const;
|
|
||||||
|
|
||||||
|
|
||||||
// Per specie thermo properties
|
|
||||||
|
|
||||||
//- Heat capacity at constant pressure [J/(kg K)]
|
|
||||||
virtual scalar Cp(const label specieI, const scalar T) const;
|
|
||||||
|
|
||||||
//- Heat capacity at constant volume [J/(kg K)]
|
|
||||||
virtual scalar Cv(const label specieI, const scalar T) const;
|
|
||||||
|
|
||||||
//- Absolute enthalpy [J/kg]
|
|
||||||
virtual scalar Ha(const label specieI, const scalar T) const;
|
|
||||||
|
|
||||||
//- Sensible enthalpy [J/kg]
|
|
||||||
virtual scalar Hs(const label specieI, const scalar T) const;
|
|
||||||
|
|
||||||
//- Chemical enthalpy [J/kg]
|
|
||||||
virtual scalar Hc(const label specieI) const;
|
|
||||||
|
|
||||||
//- Entropy [J/(kg K)]
|
|
||||||
virtual scalar S(const label specieI, const scalar T) const;
|
|
||||||
|
|
||||||
//- Sensible internal energy [J/kg]
|
|
||||||
virtual scalar Es(const label specieI, const scalar T) const;
|
|
||||||
|
|
||||||
//- Gibbs free energy [J/kg]
|
|
||||||
virtual scalar G(const label specieI, const scalar T) const;
|
|
||||||
|
|
||||||
//- Helmholtz free energy [J/kg]
|
|
||||||
virtual scalar A(const label specieI, const scalar T) const;
|
|
||||||
|
|
||||||
|
|
||||||
// Per specie transport properties
|
|
||||||
|
|
||||||
//- Dynamic viscosity [kg/m/s]
|
|
||||||
virtual scalar mu(const label specieI, const scalar T) const;
|
|
||||||
|
|
||||||
//- Thermal conductivity [W/m/K]
|
|
||||||
virtual scalar kappa(const label specieI, const scalar T) const;
|
|
||||||
|
|
||||||
//- Thermal diffusivity ofu enthalpy [kg/m/s]
|
|
||||||
virtual scalar alphah(const label specieI, const scalar T) const;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -161,155 +161,4 @@ void Foam::multiComponentMixture<ThermoType>::read
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
template<class ThermoType>
|
|
||||||
Foam::scalar Foam::multiComponentMixture<ThermoType>::nMoles
|
|
||||||
(
|
|
||||||
const label specieI
|
|
||||||
) const
|
|
||||||
{
|
|
||||||
return speciesData_[specieI].nMoles();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template<class ThermoType>
|
|
||||||
Foam::scalar Foam::multiComponentMixture<ThermoType>::W
|
|
||||||
(
|
|
||||||
const label specieI
|
|
||||||
) const
|
|
||||||
{
|
|
||||||
return speciesData_[specieI].W();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template<class ThermoType>
|
|
||||||
Foam::scalar Foam::multiComponentMixture<ThermoType>::Cp
|
|
||||||
(
|
|
||||||
const label specieI,
|
|
||||||
const scalar T
|
|
||||||
) const
|
|
||||||
{
|
|
||||||
return speciesData_[specieI].Cp(T);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template<class ThermoType>
|
|
||||||
Foam::scalar Foam::multiComponentMixture<ThermoType>::Cv
|
|
||||||
(
|
|
||||||
const label specieI,
|
|
||||||
const scalar T
|
|
||||||
) const
|
|
||||||
{
|
|
||||||
return speciesData_[specieI].Cv(T);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template<class ThermoType>
|
|
||||||
Foam::scalar Foam::multiComponentMixture<ThermoType>::Ha
|
|
||||||
(
|
|
||||||
const label specieI,
|
|
||||||
const scalar T
|
|
||||||
) const
|
|
||||||
{
|
|
||||||
return speciesData_[specieI].Ha(T);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template<class ThermoType>
|
|
||||||
Foam::scalar Foam::multiComponentMixture<ThermoType>::Hs
|
|
||||||
(
|
|
||||||
const label specieI,
|
|
||||||
const scalar T
|
|
||||||
) const
|
|
||||||
{
|
|
||||||
return speciesData_[specieI].Hs(T);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template<class ThermoType>
|
|
||||||
Foam::scalar Foam::multiComponentMixture<ThermoType>::Hc
|
|
||||||
(
|
|
||||||
const label specieI
|
|
||||||
) const
|
|
||||||
{
|
|
||||||
return speciesData_[specieI].Hc();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template<class ThermoType>
|
|
||||||
Foam::scalar Foam::multiComponentMixture<ThermoType>::S
|
|
||||||
(
|
|
||||||
const label specieI,
|
|
||||||
const scalar T
|
|
||||||
) const
|
|
||||||
{
|
|
||||||
return speciesData_[specieI].S(T);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template<class ThermoType>
|
|
||||||
Foam::scalar Foam::multiComponentMixture<ThermoType>::Es
|
|
||||||
(
|
|
||||||
const label specieI,
|
|
||||||
const scalar T
|
|
||||||
) const
|
|
||||||
{
|
|
||||||
return speciesData_[specieI].Es(T);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template<class ThermoType>
|
|
||||||
Foam::scalar Foam::multiComponentMixture<ThermoType>::G
|
|
||||||
(
|
|
||||||
const label specieI,
|
|
||||||
const scalar T
|
|
||||||
) const
|
|
||||||
{
|
|
||||||
return speciesData_[specieI].G(T);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template<class ThermoType>
|
|
||||||
Foam::scalar Foam::multiComponentMixture<ThermoType>::A
|
|
||||||
(
|
|
||||||
const label specieI,
|
|
||||||
const scalar T
|
|
||||||
) const
|
|
||||||
{
|
|
||||||
return speciesData_[specieI].A(T);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template<class ThermoType>
|
|
||||||
Foam::scalar Foam::multiComponentMixture<ThermoType>::mu
|
|
||||||
(
|
|
||||||
const label specieI,
|
|
||||||
const scalar T
|
|
||||||
) const
|
|
||||||
{
|
|
||||||
return speciesData_[specieI].mu(T);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template<class ThermoType>
|
|
||||||
Foam::scalar Foam::multiComponentMixture<ThermoType>::kappa
|
|
||||||
(
|
|
||||||
const label specieI,
|
|
||||||
const scalar T
|
|
||||||
) const
|
|
||||||
{
|
|
||||||
return speciesData_[specieI].kappa(T);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template<class ThermoType>
|
|
||||||
Foam::scalar Foam::multiComponentMixture<ThermoType>::alphah
|
|
||||||
(
|
|
||||||
const label specieI,
|
|
||||||
const scalar T
|
|
||||||
) const
|
|
||||||
{
|
|
||||||
return speciesData_[specieI].alphah(T);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// ************************************************************************* //
|
// ************************************************************************* //
|
||||||
|
|||||||
@ -119,56 +119,11 @@ public:
|
|||||||
//- Read dictionary
|
//- Read dictionary
|
||||||
void read(const dictionary&);
|
void read(const dictionary&);
|
||||||
|
|
||||||
|
//- Return thermo based on index
|
||||||
// Per specie properties
|
inline const ThermoType& getLocalThermo(const label speciei) const
|
||||||
|
{
|
||||||
//- Number of moles []
|
return speciesData_[speciei];
|
||||||
virtual scalar nMoles(const label specieI) const;
|
}
|
||||||
|
|
||||||
//- Molecular weight [kg/kmol]
|
|
||||||
virtual scalar W(const label specieI) const;
|
|
||||||
|
|
||||||
|
|
||||||
// Per specie thermo properties
|
|
||||||
|
|
||||||
//- Heat capacity at constant pressure [J/(kg K)]
|
|
||||||
virtual scalar Cp(const label specieI, const scalar T) const;
|
|
||||||
|
|
||||||
//- Heat capacity at constant volume [J/(kg K)]
|
|
||||||
virtual scalar Cv(const label specieI, const scalar T) const;
|
|
||||||
|
|
||||||
//- Absolute enthalpy [J/kg]
|
|
||||||
virtual scalar Ha(const label specieI, const scalar T) const;
|
|
||||||
|
|
||||||
//- Sensible enthalpy [J/kg]
|
|
||||||
virtual scalar Hs(const label specieI, const scalar T) const;
|
|
||||||
|
|
||||||
//- Chemical enthalpy [J/kg]
|
|
||||||
virtual scalar Hc(const label specieI) const;
|
|
||||||
|
|
||||||
//- Entropy [J/(kg K)]
|
|
||||||
virtual scalar S(const label specieI, const scalar T) const;
|
|
||||||
|
|
||||||
//- Sensible internal energy [J/kg]
|
|
||||||
virtual scalar Es(const label specieI, const scalar T) const;
|
|
||||||
|
|
||||||
//- Gibbs free energy [J/kg]
|
|
||||||
virtual scalar G(const label specieI, const scalar T) const;
|
|
||||||
|
|
||||||
//- Helmholtz free energy [J/kg]
|
|
||||||
virtual scalar A(const label specieI, const scalar T) const;
|
|
||||||
|
|
||||||
|
|
||||||
// Per specie transport properties
|
|
||||||
|
|
||||||
//- Dynamic viscosity [kg/m/s]
|
|
||||||
virtual scalar mu(const label specieI, const scalar T) const;
|
|
||||||
|
|
||||||
//- Thermal conductivity [W/m/K]
|
|
||||||
virtual scalar kappa(const label specieI, const scalar T) const;
|
|
||||||
|
|
||||||
//- Thermal diffusivity of enthalpy [kg/m/s]
|
|
||||||
virtual scalar alphah(const label specieI, const scalar T) const;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -137,155 +137,4 @@ const ThermoType& Foam::veryInhomogeneousMixture<ThermoType>::getLocalThermo
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
template<class ThermoType>
|
|
||||||
Foam::scalar Foam::veryInhomogeneousMixture<ThermoType>::nMoles
|
|
||||||
(
|
|
||||||
const label specieI
|
|
||||||
) const
|
|
||||||
{
|
|
||||||
return getLocalThermo(specieI).nMoles();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template<class ThermoType>
|
|
||||||
Foam::scalar Foam::veryInhomogeneousMixture<ThermoType>::W
|
|
||||||
(
|
|
||||||
const label specieI
|
|
||||||
) const
|
|
||||||
{
|
|
||||||
return getLocalThermo(specieI).W();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template<class ThermoType>
|
|
||||||
Foam::scalar Foam::veryInhomogeneousMixture<ThermoType>::Cp
|
|
||||||
(
|
|
||||||
const label specieI,
|
|
||||||
const scalar T
|
|
||||||
) const
|
|
||||||
{
|
|
||||||
return getLocalThermo(specieI).Cp(T);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template<class ThermoType>
|
|
||||||
Foam::scalar Foam::veryInhomogeneousMixture<ThermoType>::Cv
|
|
||||||
(
|
|
||||||
const label specieI,
|
|
||||||
const scalar T
|
|
||||||
) const
|
|
||||||
{
|
|
||||||
return getLocalThermo(specieI).Cv(T);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template<class ThermoType>
|
|
||||||
Foam::scalar Foam::veryInhomogeneousMixture<ThermoType>::Ha
|
|
||||||
(
|
|
||||||
const label specieI,
|
|
||||||
const scalar T
|
|
||||||
) const
|
|
||||||
{
|
|
||||||
return getLocalThermo(specieI).Ha(T);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template<class ThermoType>
|
|
||||||
Foam::scalar Foam::veryInhomogeneousMixture<ThermoType>::Hs
|
|
||||||
(
|
|
||||||
const label specieI,
|
|
||||||
const scalar T
|
|
||||||
) const
|
|
||||||
{
|
|
||||||
return getLocalThermo(specieI).Hs(T);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template<class ThermoType>
|
|
||||||
Foam::scalar Foam::veryInhomogeneousMixture<ThermoType>::Hc
|
|
||||||
(
|
|
||||||
const label specieI
|
|
||||||
) const
|
|
||||||
{
|
|
||||||
return getLocalThermo(specieI).Hc();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template<class ThermoType>
|
|
||||||
Foam::scalar Foam::veryInhomogeneousMixture<ThermoType>::S
|
|
||||||
(
|
|
||||||
const label specieI,
|
|
||||||
const scalar T
|
|
||||||
) const
|
|
||||||
{
|
|
||||||
return getLocalThermo(specieI).S(T);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template<class ThermoType>
|
|
||||||
Foam::scalar Foam::veryInhomogeneousMixture<ThermoType>::Es
|
|
||||||
(
|
|
||||||
const label specieI,
|
|
||||||
const scalar T
|
|
||||||
) const
|
|
||||||
{
|
|
||||||
return getLocalThermo(specieI).Es(T);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template<class ThermoType>
|
|
||||||
Foam::scalar Foam::veryInhomogeneousMixture<ThermoType>::G
|
|
||||||
(
|
|
||||||
const label specieI,
|
|
||||||
const scalar T
|
|
||||||
) const
|
|
||||||
{
|
|
||||||
return getLocalThermo(specieI).G(T);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template<class ThermoType>
|
|
||||||
Foam::scalar Foam::veryInhomogeneousMixture<ThermoType>::A
|
|
||||||
(
|
|
||||||
const label specieI,
|
|
||||||
const scalar T
|
|
||||||
) const
|
|
||||||
{
|
|
||||||
return getLocalThermo(specieI).A(T);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template<class ThermoType>
|
|
||||||
Foam::scalar Foam::veryInhomogeneousMixture<ThermoType>::mu
|
|
||||||
(
|
|
||||||
const label specieI,
|
|
||||||
const scalar T
|
|
||||||
) const
|
|
||||||
{
|
|
||||||
return getLocalThermo(specieI).mu(T);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template<class ThermoType>
|
|
||||||
Foam::scalar Foam::veryInhomogeneousMixture<ThermoType>::kappa
|
|
||||||
(
|
|
||||||
const label specieI,
|
|
||||||
const scalar T
|
|
||||||
) const
|
|
||||||
{
|
|
||||||
return getLocalThermo(specieI).kappa(T);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template<class ThermoType>
|
|
||||||
Foam::scalar Foam::veryInhomogeneousMixture<ThermoType>::alphah
|
|
||||||
(
|
|
||||||
const label specieI,
|
|
||||||
const scalar T
|
|
||||||
) const
|
|
||||||
{
|
|
||||||
return getLocalThermo(specieI).alphah(T);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// ************************************************************************* //
|
// ************************************************************************* //
|
||||||
|
|||||||
@ -160,57 +160,6 @@ public:
|
|||||||
|
|
||||||
//- Return thermo based on index
|
//- Return thermo based on index
|
||||||
const ThermoType& getLocalThermo(const label specieI) const;
|
const ThermoType& getLocalThermo(const label specieI) const;
|
||||||
|
|
||||||
|
|
||||||
// Per specie properties
|
|
||||||
|
|
||||||
//- Number of moles []
|
|
||||||
virtual scalar nMoles(const label specieI) const;
|
|
||||||
|
|
||||||
//- Molecular weight [kg/kmol]
|
|
||||||
virtual scalar W(const label specieI) const;
|
|
||||||
|
|
||||||
|
|
||||||
// Per specie thermo properties
|
|
||||||
|
|
||||||
//- Heat capacity at constant pressure [J/(kg K)]
|
|
||||||
virtual scalar Cp(const label specieI, const scalar T) const;
|
|
||||||
|
|
||||||
//- Heat capacity at constant volume [J/(kg K)]
|
|
||||||
virtual scalar Cv(const label specieI, const scalar T) const;
|
|
||||||
|
|
||||||
//- Absolute enthalpy [J/kg]
|
|
||||||
virtual scalar Ha(const label specieI, const scalar T) const;
|
|
||||||
|
|
||||||
//- Sensible enthalpy [J/kg]
|
|
||||||
virtual scalar Hs(const label specieI, const scalar T) const;
|
|
||||||
|
|
||||||
//- Chemical enthalpy [J/kg]
|
|
||||||
virtual scalar Hc(const label specieI) const;
|
|
||||||
|
|
||||||
//- Entropy [J/(kg K)]
|
|
||||||
virtual scalar S(const label specieI, const scalar T) const;
|
|
||||||
|
|
||||||
//- Sensible internal energy [J/kg]
|
|
||||||
virtual scalar Es(const label specieI, const scalar T) const;
|
|
||||||
|
|
||||||
//- Gibbs free energy [J/kg]
|
|
||||||
virtual scalar G(const label specieI, const scalar T) const;
|
|
||||||
|
|
||||||
//- Helmholtz free energy [J/kg]
|
|
||||||
virtual scalar A(const label specieI, const scalar T) const;
|
|
||||||
|
|
||||||
|
|
||||||
// Per specie transport properties
|
|
||||||
|
|
||||||
//- Dynamic viscosity [kg/m/s]
|
|
||||||
virtual scalar mu(const label specieI, const scalar T) const;
|
|
||||||
|
|
||||||
//- Thermal conductivity [W/m/K]
|
|
||||||
virtual scalar kappa(const label specieI, const scalar T) const;
|
|
||||||
|
|
||||||
//- Thermal diffusivity of enthalpy [kg/m/s]
|
|
||||||
virtual scalar alphah(const label specieI, const scalar T) const;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -45,11 +45,17 @@ void Foam::hePsiReactionThermo<MixtureType>::calculate()
|
|||||||
const typename MixtureType::thermoType& mixture =
|
const typename MixtureType::thermoType& mixture =
|
||||||
this->cellMixture(celli);
|
this->cellMixture(celli);
|
||||||
|
|
||||||
TCells[celli] = mixture.THE(hCells[celli], TCells[celli]);
|
TCells[celli] = mixture.THE
|
||||||
|
(
|
||||||
|
hCells[celli],
|
||||||
|
pCells[celli],
|
||||||
|
TCells[celli]
|
||||||
|
);
|
||||||
|
|
||||||
psiCells[celli] = mixture.psi(pCells[celli], TCells[celli]);
|
psiCells[celli] = mixture.psi(pCells[celli], TCells[celli]);
|
||||||
|
|
||||||
muCells[celli] = mixture.mu(TCells[celli]);
|
muCells[celli] = mixture.mu(pCells[celli], TCells[celli]);
|
||||||
alphaCells[celli] = mixture.alphah(TCells[celli]);
|
alphaCells[celli] = mixture.alphah(pCells[celli], TCells[celli]);
|
||||||
}
|
}
|
||||||
|
|
||||||
forAll(this->T_.boundaryField(), patchi)
|
forAll(this->T_.boundaryField(), patchi)
|
||||||
@ -70,11 +76,11 @@ void Foam::hePsiReactionThermo<MixtureType>::calculate()
|
|||||||
const typename MixtureType::thermoType& mixture =
|
const typename MixtureType::thermoType& mixture =
|
||||||
this->patchFaceMixture(patchi, facei);
|
this->patchFaceMixture(patchi, facei);
|
||||||
|
|
||||||
ph[facei] = mixture.HE(pT[facei]);
|
ph[facei] = mixture.HE(pp[facei], pT[facei]);
|
||||||
|
|
||||||
ppsi[facei] = mixture.psi(pp[facei], pT[facei]);
|
ppsi[facei] = mixture.psi(pp[facei], pT[facei]);
|
||||||
pmu_[facei] = mixture.mu(pT[facei]);
|
pmu_[facei] = mixture.mu(pp[facei], pT[facei]);
|
||||||
palpha_[facei] = mixture.alphah(pT[facei]);
|
palpha_[facei] = mixture.alphah(pp[facei], pT[facei]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -84,11 +90,11 @@ void Foam::hePsiReactionThermo<MixtureType>::calculate()
|
|||||||
const typename MixtureType::thermoType& mixture =
|
const typename MixtureType::thermoType& mixture =
|
||||||
this->patchFaceMixture(patchi, facei);
|
this->patchFaceMixture(patchi, facei);
|
||||||
|
|
||||||
pT[facei] = mixture.THE(ph[facei], pT[facei]);
|
pT[facei] = mixture.THE(ph[facei], pp[facei], pT[facei]);
|
||||||
|
|
||||||
ppsi[facei] = mixture.psi(pp[facei], pT[facei]);
|
ppsi[facei] = mixture.psi(pp[facei], pT[facei]);
|
||||||
pmu_[facei] = mixture.mu(pT[facei]);
|
pmu_[facei] = mixture.mu(pp[facei], pT[facei]);
|
||||||
palpha_[facei] = mixture.alphah(pT[facei]);
|
palpha_[facei] = mixture.alphah(pp[facei], pT[facei]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -47,14 +47,24 @@ void Foam::heheuReactionThermo<MixtureType>::calculate()
|
|||||||
const typename MixtureType::thermoType& mixture_ =
|
const typename MixtureType::thermoType& mixture_ =
|
||||||
this->cellMixture(celli);
|
this->cellMixture(celli);
|
||||||
|
|
||||||
TCells[celli] = mixture_.THE(hCells[celli], TCells[celli]);
|
TCells[celli] = mixture_.THE
|
||||||
|
(
|
||||||
|
hCells[celli],
|
||||||
|
pCells[celli],
|
||||||
|
TCells[celli]
|
||||||
|
);
|
||||||
|
|
||||||
psiCells[celli] = mixture_.psi(pCells[celli], TCells[celli]);
|
psiCells[celli] = mixture_.psi(pCells[celli], TCells[celli]);
|
||||||
|
|
||||||
muCells[celli] = mixture_.mu(TCells[celli]);
|
muCells[celli] = mixture_.mu(pCells[celli], TCells[celli]);
|
||||||
alphaCells[celli] = mixture_.alphah(TCells[celli]);
|
alphaCells[celli] = mixture_.alphah(pCells[celli], TCells[celli]);
|
||||||
|
|
||||||
TuCells[celli] =
|
TuCells[celli] = this->cellReactants(celli).THE
|
||||||
this->cellReactants(celli).THE(heuCells[celli], TuCells[celli]);
|
(
|
||||||
|
heuCells[celli],
|
||||||
|
pCells[celli],
|
||||||
|
TuCells[celli]
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
forAll(this->T_.boundaryField(), patchi)
|
forAll(this->T_.boundaryField(), patchi)
|
||||||
@ -77,11 +87,11 @@ void Foam::heheuReactionThermo<MixtureType>::calculate()
|
|||||||
const typename MixtureType::thermoType& mixture_ =
|
const typename MixtureType::thermoType& mixture_ =
|
||||||
this->patchFaceMixture(patchi, facei);
|
this->patchFaceMixture(patchi, facei);
|
||||||
|
|
||||||
ph[facei] = mixture_.HE(pT[facei]);
|
ph[facei] = mixture_.HE(pp[facei], pT[facei]);
|
||||||
|
|
||||||
ppsi[facei] = mixture_.psi(pp[facei], pT[facei]);
|
ppsi[facei] = mixture_.psi(pp[facei], pT[facei]);
|
||||||
pmu_[facei] = mixture_.mu(pT[facei]);
|
pmu_[facei] = mixture_.mu(pp[facei], pT[facei]);
|
||||||
palpha_[facei] = mixture_.alphah(pT[facei]);
|
palpha_[facei] = mixture_.alphah(pp[facei], pT[facei]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -91,15 +101,15 @@ void Foam::heheuReactionThermo<MixtureType>::calculate()
|
|||||||
const typename MixtureType::thermoType& mixture_ =
|
const typename MixtureType::thermoType& mixture_ =
|
||||||
this->patchFaceMixture(patchi, facei);
|
this->patchFaceMixture(patchi, facei);
|
||||||
|
|
||||||
pT[facei] = mixture_.THE(ph[facei], pT[facei]);
|
pT[facei] = mixture_.THE(ph[facei], pp[facei], pT[facei]);
|
||||||
|
|
||||||
ppsi[facei] = mixture_.psi(pp[facei], pT[facei]);
|
ppsi[facei] = mixture_.psi(pp[facei], pT[facei]);
|
||||||
pmu_[facei] = mixture_.mu(pT[facei]);
|
pmu_[facei] = mixture_.mu(pp[facei], pT[facei]);
|
||||||
palpha_[facei] = mixture_.alphah(pT[facei]);
|
palpha_[facei] = mixture_.alphah(pp[facei], pT[facei]);
|
||||||
|
|
||||||
pTu[facei] =
|
pTu[facei] =
|
||||||
this->patchFaceReactants(patchi, facei)
|
this->patchFaceReactants(patchi, facei)
|
||||||
.THE(pheu[facei], pTu[facei]);
|
.THE(pheu[facei], pp[facei], pTu[facei]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -141,22 +151,31 @@ Foam::heheuReactionThermo<MixtureType>::heheuReactionThermo(const fvMesh& mesh)
|
|||||||
)
|
)
|
||||||
{
|
{
|
||||||
scalarField& heuCells = this->heu_.internalField();
|
scalarField& heuCells = this->heu_.internalField();
|
||||||
|
const scalarField& pCells = this->p_.internalField();
|
||||||
const scalarField& TuCells = this->Tu_.internalField();
|
const scalarField& TuCells = this->Tu_.internalField();
|
||||||
|
|
||||||
forAll(heuCells, celli)
|
forAll(heuCells, celli)
|
||||||
{
|
{
|
||||||
heuCells[celli] = this->cellReactants(celli).HE(TuCells[celli]);
|
heuCells[celli] = this->cellReactants(celli).HE
|
||||||
|
(
|
||||||
|
pCells[celli],
|
||||||
|
TuCells[celli]
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
forAll(this->heu_.boundaryField(), patchi)
|
forAll(this->heu_.boundaryField(), patchi)
|
||||||
{
|
{
|
||||||
fvPatchScalarField& pheu = this->heu_.boundaryField()[patchi];
|
fvPatchScalarField& pheu = this->heu_.boundaryField()[patchi];
|
||||||
|
const fvPatchScalarField& pp = this->p_.boundaryField()[patchi];
|
||||||
const fvPatchScalarField& pTu = this->Tu_.boundaryField()[patchi];
|
const fvPatchScalarField& pTu = this->Tu_.boundaryField()[patchi];
|
||||||
|
|
||||||
forAll(pheu, facei)
|
forAll(pheu, facei)
|
||||||
{
|
{
|
||||||
pheu[facei] =
|
pheu[facei] = this->patchFaceReactants(patchi, facei).HE
|
||||||
this->patchFaceReactants(patchi, facei).HE(pTu[facei]);
|
(
|
||||||
|
pp[facei],
|
||||||
|
pTu[facei]
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -200,6 +219,7 @@ template<class MixtureType>
|
|||||||
Foam::tmp<Foam::scalarField>
|
Foam::tmp<Foam::scalarField>
|
||||||
Foam::heheuReactionThermo<MixtureType>::heu
|
Foam::heheuReactionThermo<MixtureType>::heu
|
||||||
(
|
(
|
||||||
|
const scalarField& p,
|
||||||
const scalarField& Tu,
|
const scalarField& Tu,
|
||||||
const labelList& cells
|
const labelList& cells
|
||||||
) const
|
) const
|
||||||
@ -209,7 +229,7 @@ Foam::heheuReactionThermo<MixtureType>::heu
|
|||||||
|
|
||||||
forAll(Tu, celli)
|
forAll(Tu, celli)
|
||||||
{
|
{
|
||||||
heu[celli] = this->cellReactants(cells[celli]).HE(Tu[celli]);
|
heu[celli] = this->cellReactants(cells[celli]).HE(p[celli], Tu[celli]);
|
||||||
}
|
}
|
||||||
|
|
||||||
return theu;
|
return theu;
|
||||||
@ -220,6 +240,7 @@ template<class MixtureType>
|
|||||||
Foam::tmp<Foam::scalarField>
|
Foam::tmp<Foam::scalarField>
|
||||||
Foam::heheuReactionThermo<MixtureType>::heu
|
Foam::heheuReactionThermo<MixtureType>::heu
|
||||||
(
|
(
|
||||||
|
const scalarField& p,
|
||||||
const scalarField& Tu,
|
const scalarField& Tu,
|
||||||
const label patchi
|
const label patchi
|
||||||
) const
|
) const
|
||||||
@ -229,7 +250,8 @@ Foam::heheuReactionThermo<MixtureType>::heu
|
|||||||
|
|
||||||
forAll(Tu, facei)
|
forAll(Tu, facei)
|
||||||
{
|
{
|
||||||
heu[facei] = this->patchFaceReactants(patchi, facei).HE(Tu[facei]);
|
heu[facei] =
|
||||||
|
this->patchFaceReactants(patchi, facei).HE(p[facei], Tu[facei]);
|
||||||
}
|
}
|
||||||
|
|
||||||
return theu;
|
return theu;
|
||||||
@ -258,13 +280,18 @@ Foam::heheuReactionThermo<MixtureType>::Tb() const
|
|||||||
|
|
||||||
volScalarField& Tb_ = tTb();
|
volScalarField& Tb_ = tTb();
|
||||||
scalarField& TbCells = Tb_.internalField();
|
scalarField& TbCells = Tb_.internalField();
|
||||||
|
const scalarField& pCells = this->p_.internalField();
|
||||||
const scalarField& TCells = this->T_.internalField();
|
const scalarField& TCells = this->T_.internalField();
|
||||||
const scalarField& hCells = this->he_.internalField();
|
const scalarField& hCells = this->he_.internalField();
|
||||||
|
|
||||||
forAll(TbCells, celli)
|
forAll(TbCells, celli)
|
||||||
{
|
{
|
||||||
TbCells[celli] =
|
TbCells[celli] = this->cellProducts(celli).THE
|
||||||
this->cellProducts(celli).THE(hCells[celli], TCells[celli]);
|
(
|
||||||
|
hCells[celli],
|
||||||
|
pCells[celli],
|
||||||
|
TCells[celli]
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
forAll(Tb_.boundaryField(), patchi)
|
forAll(Tb_.boundaryField(), patchi)
|
||||||
@ -272,13 +299,14 @@ Foam::heheuReactionThermo<MixtureType>::Tb() const
|
|||||||
fvPatchScalarField& pTb = Tb_.boundaryField()[patchi];
|
fvPatchScalarField& pTb = Tb_.boundaryField()[patchi];
|
||||||
|
|
||||||
const fvPatchScalarField& ph = this->he_.boundaryField()[patchi];
|
const fvPatchScalarField& ph = this->he_.boundaryField()[patchi];
|
||||||
|
const fvPatchScalarField& pp = this->p_.boundaryField()[patchi];
|
||||||
const fvPatchScalarField& pT = this->T_.boundaryField()[patchi];
|
const fvPatchScalarField& pT = this->T_.boundaryField()[patchi];
|
||||||
|
|
||||||
forAll(pTb, facei)
|
forAll(pTb, facei)
|
||||||
{
|
{
|
||||||
pTb[facei] =
|
pTb[facei] =
|
||||||
this->patchFaceProducts(patchi, facei)
|
this->patchFaceProducts(patchi, facei)
|
||||||
.THE(ph[facei], pT[facei]);
|
.THE(ph[facei], pp[facei], pT[facei]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -412,22 +440,31 @@ Foam::heheuReactionThermo<MixtureType>::muu() const
|
|||||||
|
|
||||||
volScalarField& muu_ = tmuu();
|
volScalarField& muu_ = tmuu();
|
||||||
scalarField& muuCells = muu_.internalField();
|
scalarField& muuCells = muu_.internalField();
|
||||||
|
const scalarField& pCells = this->p_.internalField();
|
||||||
const scalarField& TuCells = this->Tu_.internalField();
|
const scalarField& TuCells = this->Tu_.internalField();
|
||||||
|
|
||||||
forAll(muuCells, celli)
|
forAll(muuCells, celli)
|
||||||
{
|
{
|
||||||
muuCells[celli] = this->cellReactants(celli).mu(TuCells[celli]);
|
muuCells[celli] = this->cellReactants(celli).mu
|
||||||
|
(
|
||||||
|
pCells[celli],
|
||||||
|
TuCells[celli]
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
forAll(muu_.boundaryField(), patchi)
|
forAll(muu_.boundaryField(), patchi)
|
||||||
{
|
{
|
||||||
fvPatchScalarField& pMuu = muu_.boundaryField()[patchi];
|
fvPatchScalarField& pMuu = muu_.boundaryField()[patchi];
|
||||||
|
const fvPatchScalarField& pp = this->p_.boundaryField()[patchi];
|
||||||
const fvPatchScalarField& pTu = this->Tu_.boundaryField()[patchi];
|
const fvPatchScalarField& pTu = this->Tu_.boundaryField()[patchi];
|
||||||
|
|
||||||
forAll(pMuu, facei)
|
forAll(pMuu, facei)
|
||||||
{
|
{
|
||||||
pMuu[facei] =
|
pMuu[facei] = this->patchFaceReactants(patchi, facei).mu
|
||||||
this->patchFaceReactants(patchi, facei).mu(pTu[facei]);
|
(
|
||||||
|
pp[facei],
|
||||||
|
pTu[facei]
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -459,22 +496,31 @@ Foam::heheuReactionThermo<MixtureType>::mub() const
|
|||||||
volScalarField& mub_ = tmub();
|
volScalarField& mub_ = tmub();
|
||||||
scalarField& mubCells = mub_.internalField();
|
scalarField& mubCells = mub_.internalField();
|
||||||
const volScalarField Tb_(Tb());
|
const volScalarField Tb_(Tb());
|
||||||
|
const scalarField& pCells = this->p_.internalField();
|
||||||
const scalarField& TbCells = Tb_.internalField();
|
const scalarField& TbCells = Tb_.internalField();
|
||||||
|
|
||||||
forAll(mubCells, celli)
|
forAll(mubCells, celli)
|
||||||
{
|
{
|
||||||
mubCells[celli] = this->cellProducts(celli).mu(TbCells[celli]);
|
mubCells[celli] = this->cellProducts(celli).mu
|
||||||
|
(
|
||||||
|
pCells[celli],
|
||||||
|
TbCells[celli]
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
forAll(mub_.boundaryField(), patchi)
|
forAll(mub_.boundaryField(), patchi)
|
||||||
{
|
{
|
||||||
fvPatchScalarField& pMub = mub_.boundaryField()[patchi];
|
fvPatchScalarField& pMub = mub_.boundaryField()[patchi];
|
||||||
|
const fvPatchScalarField& pp = this->p_.boundaryField()[patchi];
|
||||||
const fvPatchScalarField& pTb = Tb_.boundaryField()[patchi];
|
const fvPatchScalarField& pTb = Tb_.boundaryField()[patchi];
|
||||||
|
|
||||||
forAll(pMub, facei)
|
forAll(pMub, facei)
|
||||||
{
|
{
|
||||||
pMub[facei] =
|
pMub[facei] = this->patchFaceProducts(patchi, facei).mu
|
||||||
this->patchFaceProducts(patchi, facei).mu(pTb[facei]);
|
(
|
||||||
|
pp[facei],
|
||||||
|
pTb[facei]
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -114,6 +114,7 @@ public:
|
|||||||
//- Unburnt gas enthalpy for cell-set [J/kg]
|
//- Unburnt gas enthalpy for cell-set [J/kg]
|
||||||
virtual tmp<scalarField> heu
|
virtual tmp<scalarField> heu
|
||||||
(
|
(
|
||||||
|
const scalarField& p,
|
||||||
const scalarField& T,
|
const scalarField& T,
|
||||||
const labelList& cells
|
const labelList& cells
|
||||||
) const;
|
) const;
|
||||||
@ -121,6 +122,7 @@ public:
|
|||||||
//- Unburnt gas enthalpy for patch [J/kg]
|
//- Unburnt gas enthalpy for patch [J/kg]
|
||||||
virtual tmp<scalarField> heu
|
virtual tmp<scalarField> heu
|
||||||
(
|
(
|
||||||
|
const scalarField& p,
|
||||||
const scalarField& T,
|
const scalarField& T,
|
||||||
const label patchi
|
const label patchi
|
||||||
) const;
|
) const;
|
||||||
|
|||||||
@ -114,6 +114,7 @@ public:
|
|||||||
//- Unburnt gas enthalpy for cell-set [J/kg]
|
//- Unburnt gas enthalpy for cell-set [J/kg]
|
||||||
virtual tmp<scalarField> heu
|
virtual tmp<scalarField> heu
|
||||||
(
|
(
|
||||||
|
const scalarField& p,
|
||||||
const scalarField& T,
|
const scalarField& T,
|
||||||
const labelList& cells
|
const labelList& cells
|
||||||
) const = 0;
|
) const = 0;
|
||||||
@ -121,6 +122,7 @@ public:
|
|||||||
//- Unburnt gas enthalpy for patch [J/kg]
|
//- Unburnt gas enthalpy for patch [J/kg]
|
||||||
virtual tmp<scalarField> heu
|
virtual tmp<scalarField> heu
|
||||||
(
|
(
|
||||||
|
const scalarField& p,
|
||||||
const scalarField& T,
|
const scalarField& T,
|
||||||
const label patchi
|
const label patchi
|
||||||
) const = 0;
|
) const = 0;
|
||||||
|
|||||||
@ -46,12 +46,17 @@ void Foam::heRhoReactionThermo<MixtureType>::calculate()
|
|||||||
const typename MixtureType::thermoType& mixture =
|
const typename MixtureType::thermoType& mixture =
|
||||||
this->cellMixture(celli);
|
this->cellMixture(celli);
|
||||||
|
|
||||||
TCells[celli] = mixture.THE(hCells[celli], TCells[celli]);
|
TCells[celli] = mixture.THE
|
||||||
|
(
|
||||||
|
hCells[celli],
|
||||||
|
pCells[celli],
|
||||||
|
TCells[celli]
|
||||||
|
);
|
||||||
psiCells[celli] = mixture.psi(pCells[celli], TCells[celli]);
|
psiCells[celli] = mixture.psi(pCells[celli], TCells[celli]);
|
||||||
rhoCells[celli] = mixture.rho(pCells[celli], TCells[celli]);
|
rhoCells[celli] = mixture.rho(pCells[celli], TCells[celli]);
|
||||||
|
|
||||||
muCells[celli] = mixture.mu(TCells[celli]);
|
muCells[celli] = mixture.mu(pCells[celli], TCells[celli]);
|
||||||
alphaCells[celli] = mixture.alphah(TCells[celli]);
|
alphaCells[celli] = mixture.alphah(pCells[celli], TCells[celli]);
|
||||||
}
|
}
|
||||||
|
|
||||||
forAll(this->T_.boundaryField(), patchi)
|
forAll(this->T_.boundaryField(), patchi)
|
||||||
@ -73,12 +78,12 @@ void Foam::heRhoReactionThermo<MixtureType>::calculate()
|
|||||||
const typename MixtureType::thermoType& mixture =
|
const typename MixtureType::thermoType& mixture =
|
||||||
this->patchFaceMixture(patchi, facei);
|
this->patchFaceMixture(patchi, facei);
|
||||||
|
|
||||||
ph[facei] = mixture.HE(pT[facei]);
|
ph[facei] = mixture.HE(pp[facei], pT[facei]);
|
||||||
|
|
||||||
ppsi[facei] = mixture.psi(pp[facei], pT[facei]);
|
ppsi[facei] = mixture.psi(pp[facei], pT[facei]);
|
||||||
prho[facei] = mixture.rho(pp[facei], pT[facei]);
|
prho[facei] = mixture.rho(pp[facei], pT[facei]);
|
||||||
pmu_[facei] = mixture.mu(pT[facei]);
|
pmu_[facei] = mixture.mu(pp[facei], pT[facei]);
|
||||||
palpha_[facei] = mixture.alphah(pT[facei]);
|
palpha_[facei] = mixture.alphah(pp[facei], pT[facei]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -88,12 +93,12 @@ void Foam::heRhoReactionThermo<MixtureType>::calculate()
|
|||||||
const typename MixtureType::thermoType& mixture =
|
const typename MixtureType::thermoType& mixture =
|
||||||
this->patchFaceMixture(patchi, facei);
|
this->patchFaceMixture(patchi, facei);
|
||||||
|
|
||||||
pT[facei] = mixture.THE(ph[facei], pT[facei]);
|
pT[facei] = mixture.THE(ph[facei], pp[facei], pT[facei]);
|
||||||
|
|
||||||
ppsi[facei] = mixture.psi(pp[facei], pT[facei]);
|
ppsi[facei] = mixture.psi(pp[facei], pT[facei]);
|
||||||
prho[facei] = mixture.rho(pp[facei], pT[facei]);
|
prho[facei] = mixture.rho(pp[facei], pT[facei]);
|
||||||
pmu_[facei] = mixture.mu(pT[facei]);
|
pmu_[facei] = mixture.mu(pp[facei], pT[facei]);
|
||||||
palpha_[facei] = mixture.alphah(pT[facei]);
|
palpha_[facei] = mixture.alphah(pp[facei], pT[facei]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -737,6 +737,7 @@ template<class CompType, class SolidThermo,class GasThermo>
|
|||||||
Foam::tmp<Foam::volScalarField>
|
Foam::tmp<Foam::volScalarField>
|
||||||
Foam::ODESolidChemistryModel<CompType, SolidThermo, GasThermo>::gasHs
|
Foam::ODESolidChemistryModel<CompType, SolidThermo, GasThermo>::gasHs
|
||||||
(
|
(
|
||||||
|
const volScalarField& p,
|
||||||
const volScalarField& T,
|
const volScalarField& T,
|
||||||
const label index
|
const label index
|
||||||
) const
|
) const
|
||||||
@ -766,7 +767,7 @@ Foam::ODESolidChemistryModel<CompType, SolidThermo, GasThermo>::gasHs
|
|||||||
|
|
||||||
forAll(gasHs, cellI)
|
forAll(gasHs, cellI)
|
||||||
{
|
{
|
||||||
gasHs[cellI] = mixture.Hs(T[cellI]);
|
gasHs[cellI] = mixture.Hs(p[cellI], T[cellI]);
|
||||||
}
|
}
|
||||||
|
|
||||||
return tHs;
|
return tHs;
|
||||||
|
|||||||
@ -220,6 +220,7 @@ public:
|
|||||||
//- Return sensible enthalpy for gas i [J/Kg]
|
//- Return sensible enthalpy for gas i [J/Kg]
|
||||||
virtual tmp<volScalarField> gasHs
|
virtual tmp<volScalarField> gasHs
|
||||||
(
|
(
|
||||||
|
const volScalarField& p,
|
||||||
const volScalarField& T,
|
const volScalarField& T,
|
||||||
const label i
|
const label i
|
||||||
) const;
|
) const;
|
||||||
|
|||||||
@ -138,6 +138,7 @@ public:
|
|||||||
//- Return sensible enthalpy for gas i [J/Kg]
|
//- Return sensible enthalpy for gas i [J/Kg]
|
||||||
virtual tmp<volScalarField> gasHs
|
virtual tmp<volScalarField> gasHs
|
||||||
(
|
(
|
||||||
|
const volScalarField& p,
|
||||||
const volScalarField& T,
|
const volScalarField& T,
|
||||||
const label i
|
const label i
|
||||||
) const = 0;
|
) const = 0;
|
||||||
|
|||||||
@ -100,7 +100,7 @@ Foam::scalar Foam::ReversibleReaction<ReactionThermo, ReactionRate>::kr
|
|||||||
const scalarField& c
|
const scalarField& c
|
||||||
) const
|
) const
|
||||||
{
|
{
|
||||||
return kfwd/this->Kc(T);
|
return kfwd/this->Kc(p, T);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -65,35 +65,60 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Absolute enthalpy [J/kmol]
|
// Absolute enthalpy [J/kmol]
|
||||||
scalar he(const Thermo& thermo, const scalar T) const
|
scalar he
|
||||||
|
(
|
||||||
|
const Thermo& thermo,
|
||||||
|
const scalar p,
|
||||||
|
const scalar T
|
||||||
|
) const
|
||||||
{
|
{
|
||||||
return thermo.ha(T);
|
return thermo.ha(p, T);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Heat capacity at constant pressure [J/(kmol K)]
|
// Heat capacity at constant pressure [J/(kmol K)]
|
||||||
scalar cpv(const Thermo& thermo, const scalar T) const
|
scalar cpv
|
||||||
|
(
|
||||||
|
const Thermo& thermo,
|
||||||
|
const scalar p,
|
||||||
|
const scalar T
|
||||||
|
) const
|
||||||
{
|
{
|
||||||
return thermo.cp(T);
|
return thermo.cp(p, T);
|
||||||
}
|
}
|
||||||
|
|
||||||
//- cp/cp []
|
//- cp/cp []
|
||||||
scalar cpBycpv(const Thermo& thermo, const scalar T) const
|
scalar cpBycpv
|
||||||
|
(
|
||||||
|
const Thermo& thermo,
|
||||||
|
const scalar p,
|
||||||
|
const scalar T
|
||||||
|
) const
|
||||||
{
|
{
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Absolute enthalpy [J/kg]
|
// Absolute enthalpy [J/kg]
|
||||||
scalar HE(const Thermo& thermo, const scalar T) const
|
scalar HE
|
||||||
|
(
|
||||||
|
const Thermo& thermo,
|
||||||
|
const scalar p,
|
||||||
|
const scalar T
|
||||||
|
) const
|
||||||
{
|
{
|
||||||
return thermo.Ha(T);
|
return thermo.Ha(p, T);
|
||||||
}
|
}
|
||||||
|
|
||||||
//- Temperature from absolute enthalpy
|
//- Temperature from absolute enthalpy
|
||||||
// given an initial temperature T0
|
// given an initial temperature T0
|
||||||
scalar THE(const Thermo& thermo, const scalar h, const scalar T0)
|
scalar THE
|
||||||
const
|
(
|
||||||
|
const Thermo& thermo,
|
||||||
|
const scalar h,
|
||||||
|
const scalar p,
|
||||||
|
const scalar T0
|
||||||
|
) const
|
||||||
{
|
{
|
||||||
return thermo.THa(h, T0);
|
return thermo.THa(h, p, T0);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@ -141,19 +141,19 @@ public:
|
|||||||
// Fundamental properties
|
// Fundamental properties
|
||||||
|
|
||||||
//- Heat capacity at constant pressure [J/(kmol K)]
|
//- Heat capacity at constant pressure [J/(kmol K)]
|
||||||
inline scalar cp(const scalar T) const;
|
inline scalar cp(const scalar p, const scalar T) const;
|
||||||
|
|
||||||
//- Absolute Enthalpy [J/kmol]
|
//- Absolute Enthalpy [J/kmol]
|
||||||
inline scalar ha(const scalar T) const;
|
inline scalar ha(const scalar p, const scalar T) const;
|
||||||
|
|
||||||
//- Sensible Enthalpy [J/kmol]
|
//- Sensible Enthalpy [J/kmol]
|
||||||
inline scalar hs(const scalar T) const;
|
inline scalar hs(const scalar p, const scalar T) const;
|
||||||
|
|
||||||
//- Chemical enthalpy [J/kmol]
|
//- Chemical enthalpy [J/kmol]
|
||||||
inline scalar hc() const;
|
inline scalar hc() const;
|
||||||
|
|
||||||
//- Entropy [J/(kmol K)]
|
//- Entropy [J/(kmol K)]
|
||||||
inline scalar s(const scalar T) const;
|
inline scalar s(const scalar p, const scalar T) const;
|
||||||
|
|
||||||
|
|
||||||
// I-O
|
// I-O
|
||||||
|
|||||||
@ -102,7 +102,8 @@ inline Foam::scalar Foam::eConstThermo<EquationOfState>::limit
|
|||||||
template<class EquationOfState>
|
template<class EquationOfState>
|
||||||
inline Foam::scalar Foam::eConstThermo<EquationOfState>::cp
|
inline Foam::scalar Foam::eConstThermo<EquationOfState>::cp
|
||||||
(
|
(
|
||||||
const scalar
|
const scalar p,
|
||||||
|
const scalar T
|
||||||
) const
|
) const
|
||||||
{
|
{
|
||||||
return Cv_*this->W() + specie::RR;
|
return Cv_*this->W() + specie::RR;
|
||||||
@ -112,20 +113,22 @@ inline Foam::scalar Foam::eConstThermo<EquationOfState>::cp
|
|||||||
template<class EquationOfState>
|
template<class EquationOfState>
|
||||||
inline Foam::scalar Foam::eConstThermo<EquationOfState>::ha
|
inline Foam::scalar Foam::eConstThermo<EquationOfState>::ha
|
||||||
(
|
(
|
||||||
|
const scalar p,
|
||||||
const scalar T
|
const scalar T
|
||||||
) const
|
) const
|
||||||
{
|
{
|
||||||
return cp(T)*T + Hf_*this->W();
|
return cp(p, T)*T + Hf_*this->W();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
template<class EquationOfState>
|
template<class EquationOfState>
|
||||||
inline Foam::scalar Foam::eConstThermo<EquationOfState>::hs
|
inline Foam::scalar Foam::eConstThermo<EquationOfState>::hs
|
||||||
(
|
(
|
||||||
|
const scalar p,
|
||||||
const scalar T
|
const scalar T
|
||||||
) const
|
) const
|
||||||
{
|
{
|
||||||
return cp(T)*T;
|
return cp(p, T)*T;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -139,12 +142,14 @@ inline Foam::scalar Foam::eConstThermo<EquationOfState>::hc() const
|
|||||||
template<class EquationOfState>
|
template<class EquationOfState>
|
||||||
inline Foam::scalar Foam::eConstThermo<EquationOfState>::s
|
inline Foam::scalar Foam::eConstThermo<EquationOfState>::s
|
||||||
(
|
(
|
||||||
|
const scalar p,
|
||||||
const scalar T
|
const scalar T
|
||||||
) const
|
) const
|
||||||
{
|
{
|
||||||
notImplemented
|
notImplemented
|
||||||
(
|
(
|
||||||
"scalar eConstThermo<EquationOfState>::s(const scalar) const"
|
"scalar eConstThermo<EquationOfState>::"
|
||||||
|
"s(const scalar p, const scalar) const"
|
||||||
);
|
);
|
||||||
return T;
|
return T;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -139,19 +139,19 @@ public:
|
|||||||
// Fundamental properties
|
// Fundamental properties
|
||||||
|
|
||||||
//- Heat capacity at constant pressure [J/(kmol K)]
|
//- Heat capacity at constant pressure [J/(kmol K)]
|
||||||
inline scalar cp(const scalar T) const;
|
inline scalar cp(const scalar p, const scalar T) const;
|
||||||
|
|
||||||
//- Absolute Enthalpy [J/kmol]
|
//- Absolute Enthalpy [J/kmol]
|
||||||
inline scalar ha(const scalar T) const;
|
inline scalar ha(const scalar p, const scalar T) const;
|
||||||
|
|
||||||
//- Sensible enthalpy [J/kmol]
|
//- Sensible enthalpy [J/kmol]
|
||||||
inline scalar hs(const scalar T) const;
|
inline scalar hs(const scalar p, const scalar T) const;
|
||||||
|
|
||||||
//- Chemical enthalpy [J/kmol]
|
//- Chemical enthalpy [J/kmol]
|
||||||
inline scalar hc() const;
|
inline scalar hc() const;
|
||||||
|
|
||||||
//- Entropy [J/(kmol K)]
|
//- Entropy [J/(kmol K)]
|
||||||
inline scalar s(const scalar T) const;
|
inline scalar s(const scalar p, const scalar T) const;
|
||||||
|
|
||||||
|
|
||||||
// I-O
|
// I-O
|
||||||
|
|||||||
@ -102,7 +102,8 @@ inline Foam::scalar Foam::hConstThermo<EquationOfState>::limit
|
|||||||
template<class equationOfState>
|
template<class equationOfState>
|
||||||
inline Foam::scalar Foam::hConstThermo<equationOfState>::cp
|
inline Foam::scalar Foam::hConstThermo<equationOfState>::cp
|
||||||
(
|
(
|
||||||
const scalar
|
const scalar p,
|
||||||
|
const scalar T
|
||||||
) const
|
) const
|
||||||
{
|
{
|
||||||
return Cp_*this->W();
|
return Cp_*this->W();
|
||||||
@ -112,7 +113,7 @@ inline Foam::scalar Foam::hConstThermo<equationOfState>::cp
|
|||||||
template<class equationOfState>
|
template<class equationOfState>
|
||||||
inline Foam::scalar Foam::hConstThermo<equationOfState>::ha
|
inline Foam::scalar Foam::hConstThermo<equationOfState>::ha
|
||||||
(
|
(
|
||||||
const scalar T
|
const scalar p, const scalar T
|
||||||
) const
|
) const
|
||||||
{
|
{
|
||||||
return (Cp_*T + Hf_)*this->W();
|
return (Cp_*T + Hf_)*this->W();
|
||||||
@ -122,7 +123,7 @@ inline Foam::scalar Foam::hConstThermo<equationOfState>::ha
|
|||||||
template<class equationOfState>
|
template<class equationOfState>
|
||||||
inline Foam::scalar Foam::hConstThermo<equationOfState>::hs
|
inline Foam::scalar Foam::hConstThermo<equationOfState>::hs
|
||||||
(
|
(
|
||||||
const scalar T
|
const scalar p, const scalar T
|
||||||
) const
|
) const
|
||||||
{
|
{
|
||||||
return Cp_*T*this->W();
|
return Cp_*T*this->W();
|
||||||
@ -139,12 +140,13 @@ inline Foam::scalar Foam::hConstThermo<equationOfState>::hc() const
|
|||||||
template<class equationOfState>
|
template<class equationOfState>
|
||||||
inline Foam::scalar Foam::hConstThermo<equationOfState>::s
|
inline Foam::scalar Foam::hConstThermo<equationOfState>::s
|
||||||
(
|
(
|
||||||
const scalar T
|
const scalar p, const scalar T
|
||||||
) const
|
) const
|
||||||
{
|
{
|
||||||
notImplemented
|
notImplemented
|
||||||
(
|
(
|
||||||
"scalar hConstThermo<equationOfState>::s(const scalar T) const"
|
"scalar hConstThermo<equationOfState>::"
|
||||||
|
"s(const scalar p, const scalar T) const"
|
||||||
);
|
);
|
||||||
return T;
|
return T;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -152,24 +152,24 @@ public:
|
|||||||
// Member Functions
|
// Member Functions
|
||||||
|
|
||||||
//- Limit the temperature to be in the range Tlow_ to Thigh_
|
//- Limit the temperature to be in the range Tlow_ to Thigh_
|
||||||
inline scalar limit(const scalar T) const;
|
inline scalar limit(const scalar) const;
|
||||||
|
|
||||||
// Fundamental properties
|
// Fundamental properties
|
||||||
|
|
||||||
//- Heat capacity at constant pressure [J/(kmol K)]
|
//- Heat capacity at constant pressure [J/(kmol K)]
|
||||||
inline scalar cp(const scalar T) const;
|
inline scalar cp(const scalar p, const scalar T) const;
|
||||||
|
|
||||||
//- Absolute Enthalpy [J/kmol]
|
//- Absolute Enthalpy [J/kmol]
|
||||||
inline scalar ha(const scalar T) const;
|
inline scalar ha(const scalar p, const scalar T) const;
|
||||||
|
|
||||||
//- Sensible enthalpy [J/kmol]
|
//- Sensible enthalpy [J/kmol]
|
||||||
inline scalar hs(const scalar T) const;
|
inline scalar hs(const scalar p, const scalar T) const;
|
||||||
|
|
||||||
//- Chemical enthalpy [J/kmol]
|
//- Chemical enthalpy [J/kmol]
|
||||||
inline scalar hc() const;
|
inline scalar hc() const;
|
||||||
|
|
||||||
//- Entropy [J/(kmol K)]
|
//- Entropy [J/(kmol K)]
|
||||||
inline scalar s(const scalar T) const;
|
inline scalar s(const scalar p, const scalar T) const;
|
||||||
|
|
||||||
|
|
||||||
// I-O
|
// I-O
|
||||||
|
|||||||
@ -95,7 +95,7 @@ inline Foam::scalar Foam::hPolynomialThermo<EquationOfState, PolySize>::limit
|
|||||||
template<class EquationOfState, int PolySize>
|
template<class EquationOfState, int PolySize>
|
||||||
inline Foam::scalar Foam::hPolynomialThermo<EquationOfState, PolySize>::cp
|
inline Foam::scalar Foam::hPolynomialThermo<EquationOfState, PolySize>::cp
|
||||||
(
|
(
|
||||||
const scalar T
|
const scalar p, const scalar T
|
||||||
) const
|
) const
|
||||||
{
|
{
|
||||||
return CpCoeffs_.value(T);
|
return CpCoeffs_.value(T);
|
||||||
@ -105,7 +105,7 @@ inline Foam::scalar Foam::hPolynomialThermo<EquationOfState, PolySize>::cp
|
|||||||
template<class EquationOfState, int PolySize>
|
template<class EquationOfState, int PolySize>
|
||||||
inline Foam::scalar Foam::hPolynomialThermo<EquationOfState, PolySize>::ha
|
inline Foam::scalar Foam::hPolynomialThermo<EquationOfState, PolySize>::ha
|
||||||
(
|
(
|
||||||
const scalar T
|
const scalar p, const scalar T
|
||||||
) const
|
) const
|
||||||
{
|
{
|
||||||
return hCoeffs_.value(T);
|
return hCoeffs_.value(T);
|
||||||
@ -115,10 +115,10 @@ inline Foam::scalar Foam::hPolynomialThermo<EquationOfState, PolySize>::ha
|
|||||||
template<class EquationOfState, int PolySize>
|
template<class EquationOfState, int PolySize>
|
||||||
inline Foam::scalar Foam::hPolynomialThermo<EquationOfState, PolySize>::hs
|
inline Foam::scalar Foam::hPolynomialThermo<EquationOfState, PolySize>::hs
|
||||||
(
|
(
|
||||||
const scalar T
|
const scalar p, const scalar T
|
||||||
) const
|
) const
|
||||||
{
|
{
|
||||||
return ha(T) - hc();
|
return ha(p, T) - hc();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -133,6 +133,7 @@ const
|
|||||||
template<class EquationOfState, int PolySize>
|
template<class EquationOfState, int PolySize>
|
||||||
inline Foam::scalar Foam::hPolynomialThermo<EquationOfState, PolySize>::s
|
inline Foam::scalar Foam::hPolynomialThermo<EquationOfState, PolySize>::s
|
||||||
(
|
(
|
||||||
|
const scalar p,
|
||||||
const scalar T
|
const scalar T
|
||||||
) const
|
) const
|
||||||
{
|
{
|
||||||
|
|||||||
@ -175,19 +175,19 @@ public:
|
|||||||
// Fundamental properties
|
// Fundamental properties
|
||||||
|
|
||||||
//- Heat capacity at constant pressure [J/(kmol K)]
|
//- Heat capacity at constant pressure [J/(kmol K)]
|
||||||
inline scalar cp(const scalar T) const;
|
inline scalar cp(const scalar p, const scalar T) const;
|
||||||
|
|
||||||
//- Absolute Enthalpy [J/kmol]
|
//- Absolute Enthalpy [J/kmol]
|
||||||
inline scalar ha(const scalar T) const;
|
inline scalar ha(const scalar p, const scalar T) const;
|
||||||
|
|
||||||
//- Sensible enthalpy [J/kmol]
|
//- Sensible enthalpy [J/kmol]
|
||||||
inline scalar hs(const scalar T) const;
|
inline scalar hs(const scalar p, const scalar T) const;
|
||||||
|
|
||||||
//- Chemical enthalpy [J/kmol]
|
//- Chemical enthalpy [J/kmol]
|
||||||
inline scalar hc() const;
|
inline scalar hc() const;
|
||||||
|
|
||||||
//- Entropy [J/(kmol K)]
|
//- Entropy [J/(kmol K)]
|
||||||
inline scalar s(const scalar T) const;
|
inline scalar s(const scalar p, const scalar T) const;
|
||||||
|
|
||||||
|
|
||||||
// I-O
|
// I-O
|
||||||
|
|||||||
@ -159,6 +159,7 @@ Foam::janafThermo<EquationOfState>::lowCpCoeffs() const
|
|||||||
template<class EquationOfState>
|
template<class EquationOfState>
|
||||||
inline Foam::scalar Foam::janafThermo<EquationOfState>::cp
|
inline Foam::scalar Foam::janafThermo<EquationOfState>::cp
|
||||||
(
|
(
|
||||||
|
const scalar p,
|
||||||
const scalar T
|
const scalar T
|
||||||
) const
|
) const
|
||||||
{
|
{
|
||||||
@ -170,6 +171,7 @@ inline Foam::scalar Foam::janafThermo<EquationOfState>::cp
|
|||||||
template<class EquationOfState>
|
template<class EquationOfState>
|
||||||
inline Foam::scalar Foam::janafThermo<EquationOfState>::ha
|
inline Foam::scalar Foam::janafThermo<EquationOfState>::ha
|
||||||
(
|
(
|
||||||
|
const scalar p,
|
||||||
const scalar T
|
const scalar T
|
||||||
) const
|
) const
|
||||||
{
|
{
|
||||||
@ -185,10 +187,11 @@ inline Foam::scalar Foam::janafThermo<EquationOfState>::ha
|
|||||||
template<class EquationOfState>
|
template<class EquationOfState>
|
||||||
inline Foam::scalar Foam::janafThermo<EquationOfState>::hs
|
inline Foam::scalar Foam::janafThermo<EquationOfState>::hs
|
||||||
(
|
(
|
||||||
|
const scalar p,
|
||||||
const scalar T
|
const scalar T
|
||||||
) const
|
) const
|
||||||
{
|
{
|
||||||
return ha(T) - hc();
|
return ha(p, T) - hc();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -210,6 +213,7 @@ inline Foam::scalar Foam::janafThermo<EquationOfState>::hc() const
|
|||||||
template<class EquationOfState>
|
template<class EquationOfState>
|
||||||
inline Foam::scalar Foam::janafThermo<EquationOfState>::s
|
inline Foam::scalar Foam::janafThermo<EquationOfState>::s
|
||||||
(
|
(
|
||||||
|
const scalar p,
|
||||||
const scalar T
|
const scalar T
|
||||||
) const
|
) const
|
||||||
{
|
{
|
||||||
|
|||||||
@ -65,35 +65,60 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Sensible enthalpy [J/kmol]
|
// Sensible enthalpy [J/kmol]
|
||||||
scalar he(const Thermo& thermo, const scalar T) const
|
scalar he
|
||||||
|
(
|
||||||
|
const Thermo& thermo,
|
||||||
|
const scalar p,
|
||||||
|
const scalar T
|
||||||
|
) const
|
||||||
{
|
{
|
||||||
return thermo.hs(T);
|
return thermo.hs(p, T);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Heat capacity at constant pressure [J/(kmol K)]
|
// Heat capacity at constant pressure [J/(kmol K)]
|
||||||
scalar cpv(const Thermo& thermo, const scalar T) const
|
scalar cpv
|
||||||
|
(
|
||||||
|
const Thermo& thermo,
|
||||||
|
const scalar p,
|
||||||
|
const scalar T
|
||||||
|
) const
|
||||||
{
|
{
|
||||||
return thermo.cp(T);
|
return thermo.cp(p, T);
|
||||||
}
|
}
|
||||||
|
|
||||||
//- cp/cp []
|
//- cp/cp []
|
||||||
scalar cpBycpv(const Thermo& thermo, const scalar T) const
|
scalar cpBycpv
|
||||||
|
(
|
||||||
|
const Thermo& thermo,
|
||||||
|
const scalar p,
|
||||||
|
const scalar T
|
||||||
|
) const
|
||||||
{
|
{
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Sensible enthalpy [J/kg]
|
// Sensible enthalpy [J/kg]
|
||||||
scalar HE(const Thermo& thermo, const scalar T) const
|
scalar HE
|
||||||
|
(
|
||||||
|
const Thermo& thermo,
|
||||||
|
const scalar p,
|
||||||
|
const scalar T
|
||||||
|
) const
|
||||||
{
|
{
|
||||||
return thermo.Hs(T);
|
return thermo.Hs(p, T);
|
||||||
}
|
}
|
||||||
|
|
||||||
//- Temperature from sensible enthalpy
|
//- Temperature from sensible enthalpy
|
||||||
// given an initial temperature T0
|
// given an initial temperature T0
|
||||||
scalar THE(const Thermo& thermo, const scalar h, const scalar T0)
|
scalar THE
|
||||||
const
|
(
|
||||||
|
const Thermo& thermo,
|
||||||
|
const scalar h,
|
||||||
|
const scalar p,
|
||||||
|
const scalar T0
|
||||||
|
) const
|
||||||
{
|
{
|
||||||
return thermo.THs(h, T0);
|
return thermo.THs(h, p, T0);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@ -65,35 +65,59 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
//- Sensible Internal energy [J/kmol]
|
//- Sensible Internal energy [J/kmol]
|
||||||
scalar he(const Thermo& thermo, const scalar T) const
|
scalar he
|
||||||
|
(
|
||||||
|
const Thermo& thermo,
|
||||||
|
const scalar p,
|
||||||
|
const scalar T) const
|
||||||
{
|
{
|
||||||
return thermo.es(T);
|
return thermo.es(p, T);
|
||||||
}
|
}
|
||||||
|
|
||||||
//- Heat capacity at constant volume [J/(kmol K)]
|
//- Heat capacity at constant volume [J/(kmol K)]
|
||||||
scalar cpv(const Thermo& thermo, const scalar T) const
|
scalar cpv
|
||||||
|
(
|
||||||
|
const Thermo& thermo,
|
||||||
|
const scalar p,
|
||||||
|
const scalar T
|
||||||
|
) const
|
||||||
{
|
{
|
||||||
return thermo.cv(T);
|
return thermo.cv(p, T);
|
||||||
}
|
}
|
||||||
|
|
||||||
//- cp/cv []
|
//- cp/cv []
|
||||||
scalar cpBycpv(const Thermo& thermo, const scalar T) const
|
scalar cpBycpv
|
||||||
|
(
|
||||||
|
const Thermo& thermo,
|
||||||
|
const scalar p,
|
||||||
|
const scalar T
|
||||||
|
) const
|
||||||
{
|
{
|
||||||
return thermo.gamma(T);
|
return thermo.gamma(p, T);
|
||||||
}
|
}
|
||||||
|
|
||||||
//- Sensible enthalpy [J/kg]
|
//- Sensible enthalpy [J/kg]
|
||||||
scalar HE(const Thermo& thermo, const scalar T) const
|
scalar HE
|
||||||
|
(
|
||||||
|
const Thermo& thermo,
|
||||||
|
const scalar p,
|
||||||
|
const scalar T
|
||||||
|
) const
|
||||||
{
|
{
|
||||||
return thermo.Es(T);
|
return thermo.Es(p, T);
|
||||||
}
|
}
|
||||||
|
|
||||||
//- Temperature from sensible internal energy
|
//- Temperature from sensible internal energy
|
||||||
// given an initial temperature T0
|
// given an initial temperature T0
|
||||||
scalar THE(const Thermo& thermo, const scalar e, const scalar T0)
|
scalar THE
|
||||||
const
|
(
|
||||||
|
const Thermo& thermo,
|
||||||
|
const scalar e,
|
||||||
|
const scalar p,
|
||||||
|
const scalar T0
|
||||||
|
) const
|
||||||
{
|
{
|
||||||
return thermo.TEs(e, T0);
|
return thermo.TEs(e, p, T0);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@ -105,13 +105,15 @@ class specieThermo
|
|||||||
// Private Member Functions
|
// Private Member Functions
|
||||||
|
|
||||||
//- Return the temperature corresponding to the value of the
|
//- Return the temperature corresponding to the value of the
|
||||||
// thermodynamic property f, given the function f = F(T) and dF(T)/dT
|
// thermodynamic property f, given the function f = F(p, T)
|
||||||
|
// and dF(p, T)/dT
|
||||||
inline scalar T
|
inline scalar T
|
||||||
(
|
(
|
||||||
scalar f,
|
scalar f,
|
||||||
|
scalar p,
|
||||||
scalar T0,
|
scalar T0,
|
||||||
scalar (specieThermo::*F)(const scalar) const,
|
scalar (specieThermo::*F)(const scalar, const scalar) const,
|
||||||
scalar (specieThermo::*dFdT)(const scalar) const,
|
scalar (specieThermo::*dFdT)(const scalar, const scalar) const,
|
||||||
scalar (specieThermo::*limit)(const scalar) const
|
scalar (specieThermo::*limit)(const scalar) const
|
||||||
) const;
|
) const;
|
||||||
|
|
||||||
@ -163,108 +165,112 @@ public:
|
|||||||
static inline word heName();
|
static inline word heName();
|
||||||
|
|
||||||
//- Enthalpy/Internal energy [J/kmol]
|
//- Enthalpy/Internal energy [J/kmol]
|
||||||
inline scalar he(const scalar T) const;
|
inline scalar he(const scalar p, const scalar T) const;
|
||||||
|
|
||||||
//- Heat capacity at constant volume [J/(kmol K)]
|
//- Heat capacity at constant volume [J/(kmol K)]
|
||||||
inline scalar cv(const scalar T) const;
|
inline scalar cv(const scalar p, const scalar T) const;
|
||||||
|
|
||||||
//- Heat capacity at constant pressure/volume [J/(kmol K)]
|
//- Heat capacity at constant pressure/volume [J/(kmol K)]
|
||||||
inline scalar cpv(const scalar T) const;
|
inline scalar cpv(const scalar p, const scalar T) const;
|
||||||
|
|
||||||
//- gamma = cp/cv []
|
//- gamma = cp/cv []
|
||||||
inline scalar gamma(const scalar T) const;
|
inline scalar gamma(const scalar p, const scalar T) const;
|
||||||
|
|
||||||
//- Ratio of heat capacity at constant pressure to that at
|
//- Ratio of heat capacity at constant pressure to that at
|
||||||
// constant pressure/volume []
|
// constant pressure/volume []
|
||||||
inline scalar cpBycpv(const scalar T) const;
|
inline scalar cpBycpv(const scalar p, const scalar T) const;
|
||||||
|
|
||||||
//- Sensible internal energy [J/kmol]
|
//- Sensible internal energy [J/kmol]
|
||||||
inline scalar es(const scalar T) const;
|
inline scalar es(const scalar p, const scalar T) const;
|
||||||
|
|
||||||
//- Absolute internal energy [J/kmol]
|
//- Absolute internal energy [J/kmol]
|
||||||
inline scalar ea(const scalar T) const;
|
inline scalar ea(const scalar p, const scalar T) const;
|
||||||
|
|
||||||
//- Gibbs free energy [J/kmol]
|
//- Gibbs free energy [J/kmol]
|
||||||
inline scalar g(const scalar T) const;
|
inline scalar g(const scalar p, const scalar T) const;
|
||||||
|
|
||||||
//- Helmholtz free energy [J/kmol]
|
//- Helmholtz free energy [J/kmol]
|
||||||
inline scalar a(const scalar T) const;
|
inline scalar a(const scalar p, const scalar T) const;
|
||||||
|
|
||||||
|
|
||||||
// Mass specific properties
|
// Mass specific properties
|
||||||
|
|
||||||
//- Heat capacity at constant pressure [J/(kg K)]
|
//- Heat capacity at constant pressure [J/(kg K)]
|
||||||
inline scalar Cp(const scalar T) const;
|
inline scalar Cp(const scalar p, const scalar T) const;
|
||||||
|
|
||||||
//- Heat capacity at constant volume [J/(kg K)]
|
//- Heat capacity at constant volume [J/(kg K)]
|
||||||
inline scalar Cv(const scalar T) const;
|
inline scalar Cv(const scalar p, const scalar T) const;
|
||||||
|
|
||||||
//- Heat capacity at constant pressure/volume [J/(kg K)]
|
//- Heat capacity at constant pressure/volume [J/(kg K)]
|
||||||
inline scalar Cpv(const scalar T) const;
|
inline scalar Cpv(const scalar p, const scalar T) const;
|
||||||
|
|
||||||
//- Enthalpy/Internal energy [J/kg]
|
//- Enthalpy/Internal energy [J/kg]
|
||||||
inline scalar HE(const scalar T) const;
|
inline scalar HE(const scalar p, const scalar T) const;
|
||||||
|
|
||||||
//- Enthalpy [J/kg]
|
//- Enthalpy [J/kg]
|
||||||
inline scalar H(const scalar T) const;
|
inline scalar H(const scalar p, const scalar T) const;
|
||||||
|
|
||||||
//- Sensible enthalpy [J/kg]
|
//- Sensible enthalpy [J/kg]
|
||||||
inline scalar Hs(const scalar T) const;
|
inline scalar Hs(const scalar p, const scalar T) const;
|
||||||
|
|
||||||
//- Chemical enthalpy [J/kg]
|
//- Chemical enthalpy [J/kg]
|
||||||
inline scalar Hc() const;
|
inline scalar Hc() const;
|
||||||
|
|
||||||
//- Absolute Enthalpy [J/kg]
|
//- Absolute Enthalpy [J/kg]
|
||||||
inline scalar Ha(const scalar T) const;
|
inline scalar Ha(const scalar p, const scalar T) const;
|
||||||
|
|
||||||
//- Entropy [J/(kg K)]
|
//- Entropy [J/(kg K)]
|
||||||
inline scalar S(const scalar T) const;
|
inline scalar S(const scalar p, const scalar T) const;
|
||||||
|
|
||||||
//- Internal energy [J/kg]
|
//- Internal energy [J/kg]
|
||||||
inline scalar E(const scalar T) const;
|
inline scalar E(const scalar p, const scalar T) const;
|
||||||
|
|
||||||
//- Sensible internal energy [J/kg]
|
//- Sensible internal energy [J/kg]
|
||||||
inline scalar Es(const scalar T) const;
|
inline scalar Es(const scalar p, const scalar T) const;
|
||||||
|
|
||||||
//- Absolute internal energy [J/kg]
|
//- Absolute internal energy [J/kg]
|
||||||
inline scalar Ea(const scalar T) const;
|
inline scalar Ea(const scalar p, const scalar T) const;
|
||||||
|
|
||||||
//- Gibbs free energy [J/kg]
|
//- Gibbs free energy [J/kg]
|
||||||
inline scalar G(const scalar T) const;
|
inline scalar G(const scalar p, const scalar T) const;
|
||||||
|
|
||||||
//- Helmholtz free energy [J/kg]
|
//- Helmholtz free energy [J/kg]
|
||||||
inline scalar A(const scalar T) const;
|
inline scalar A(const scalar p, const scalar T) const;
|
||||||
|
|
||||||
|
|
||||||
// Equilibrium reaction thermodynamics
|
// Equilibrium reaction thermodynamics
|
||||||
|
|
||||||
//- Equilibrium constant [] i.t.o fugacities
|
//- Equilibrium constant [] i.t.o fugacities
|
||||||
// = PIi(fi/Pstd)^nui
|
// = PIi(fi/Pstd)^nui
|
||||||
inline scalar K(const scalar T) const;
|
inline scalar K(const scalar p, const scalar T) const;
|
||||||
|
|
||||||
//- Equilibrium constant [] i.t.o. partial pressures
|
//- Equilibrium constant [] i.t.o. partial pressures
|
||||||
// = PIi(pi/Pstd)^nui
|
// = PIi(pi/Pstd)^nui
|
||||||
// For low pressures (where the gas mixture is near perfect) Kp = K
|
// For low pressures (where the gas mixture is near perfect) Kp = K
|
||||||
inline scalar Kp(const scalar T) const;
|
inline scalar Kp(const scalar p, const scalar T) const;
|
||||||
|
|
||||||
//- Equilibrium constant i.t.o. molar concentration
|
//- Equilibrium constant i.t.o. molar concentration
|
||||||
// = PIi(ci/cstd)^nui
|
// = PIi(ci/cstd)^nui
|
||||||
// For low pressures (where the gas mixture is near perfect)
|
// For low pressures (where the gas mixture is near perfect)
|
||||||
// Kc = Kp(pstd/(RR*T))^nu
|
// Kc = Kp(pstd/(RR*T))^nu
|
||||||
inline scalar Kc(const scalar T) const;
|
inline scalar Kc(const scalar p, const scalar T) const;
|
||||||
|
|
||||||
//- Equilibrium constant [] i.t.o. mole-fractions
|
//- Equilibrium constant [] i.t.o. mole-fractions
|
||||||
// For low pressures (where the gas mixture is near perfect)
|
// For low pressures (where the gas mixture is near perfect)
|
||||||
// Kx = Kp(pstd/p)^nui
|
// Kx = Kp(pstd/p)^nui
|
||||||
inline scalar Kx(const scalar T, const scalar p) const;
|
inline scalar Kx
|
||||||
|
(
|
||||||
|
const scalar p,
|
||||||
|
const scalar T
|
||||||
|
) const;
|
||||||
|
|
||||||
//- Equilibrium constant [] i.t.o. number of moles
|
//- Equilibrium constant [] i.t.o. number of moles
|
||||||
// For low pressures (where the gas mixture is near perfect)
|
// For low pressures (where the gas mixture is near perfect)
|
||||||
// Kn = Kp(n*pstd/p)^nui where n = number of moles in mixture
|
// Kn = Kp(n*pstd/p)^nui where n = number of moles in mixture
|
||||||
inline scalar Kn
|
inline scalar Kn
|
||||||
(
|
(
|
||||||
const scalar T,
|
|
||||||
const scalar p,
|
const scalar p,
|
||||||
|
const scalar T,
|
||||||
const scalar n
|
const scalar n
|
||||||
) const;
|
) const;
|
||||||
|
|
||||||
@ -273,22 +279,47 @@ public:
|
|||||||
|
|
||||||
//- Temperature from enthalpy or internal energy
|
//- Temperature from enthalpy or internal energy
|
||||||
// given an initial temperature T0
|
// given an initial temperature T0
|
||||||
inline scalar THE(const scalar H, const scalar T0) const;
|
inline scalar THE
|
||||||
|
(
|
||||||
|
const scalar H,
|
||||||
|
const scalar p,
|
||||||
|
const scalar T0
|
||||||
|
) const;
|
||||||
|
|
||||||
//- Temperature from sensible enthalpy given an initial T0
|
//- Temperature from sensible enthalpy given an initial T0
|
||||||
inline scalar THs(const scalar Hs, const scalar T0) const;
|
inline scalar THs
|
||||||
|
(
|
||||||
|
const scalar Hs,
|
||||||
|
const scalar p,
|
||||||
|
const scalar T0
|
||||||
|
) const;
|
||||||
|
|
||||||
//- Temperature from absolute enthalpy
|
//- Temperature from absolute enthalpy
|
||||||
// given an initial temperature T0
|
// given an initial temperature T0
|
||||||
inline scalar THa(const scalar H, const scalar T0) const;
|
inline scalar THa
|
||||||
|
(
|
||||||
|
const scalar H,
|
||||||
|
const scalar p,
|
||||||
|
const scalar T0
|
||||||
|
) const;
|
||||||
|
|
||||||
//- Temperature from sensible internal energy
|
//- Temperature from sensible internal energy
|
||||||
// given an initial temperature T0
|
// given an initial temperature T0
|
||||||
inline scalar TEs(const scalar E, const scalar T0) const;
|
inline scalar TEs
|
||||||
|
(
|
||||||
|
const scalar E,
|
||||||
|
const scalar p,
|
||||||
|
const scalar T0
|
||||||
|
) const;
|
||||||
|
|
||||||
//- Temperature from absolute internal energy
|
//- Temperature from absolute internal energy
|
||||||
// given an initial temperature T0
|
// given an initial temperature T0
|
||||||
inline scalar TEa(const scalar E, const scalar T0) const;
|
inline scalar TEa
|
||||||
|
(
|
||||||
|
const scalar E,
|
||||||
|
const scalar p,
|
||||||
|
const scalar T0
|
||||||
|
) const;
|
||||||
|
|
||||||
|
|
||||||
// I-O
|
// I-O
|
||||||
|
|||||||
@ -41,9 +41,11 @@ template<class Thermo, template<class> class Type>
|
|||||||
inline Foam::scalar Foam::specieThermo<Thermo, Type>::T
|
inline Foam::scalar Foam::specieThermo<Thermo, Type>::T
|
||||||
(
|
(
|
||||||
scalar f,
|
scalar f,
|
||||||
|
scalar p,
|
||||||
scalar T0,
|
scalar T0,
|
||||||
scalar (specieThermo<Thermo, Type>::*F)(const scalar) const,
|
scalar (specieThermo<Thermo, Type>::*F)(const scalar, const scalar) const,
|
||||||
scalar (specieThermo<Thermo, Type>::*dFdT)(const scalar) const,
|
scalar (specieThermo<Thermo, Type>::*dFdT)(const scalar, const scalar)
|
||||||
|
const,
|
||||||
scalar (specieThermo<Thermo, Type>::*limit)(const scalar) const
|
scalar (specieThermo<Thermo, Type>::*limit)(const scalar) const
|
||||||
) const
|
) const
|
||||||
{
|
{
|
||||||
@ -56,7 +58,8 @@ inline Foam::scalar Foam::specieThermo<Thermo, Type>::T
|
|||||||
{
|
{
|
||||||
Test = Tnew;
|
Test = Tnew;
|
||||||
Tnew =
|
Tnew =
|
||||||
(this->*limit)(Test - ((this->*F)(Test) - f)/(this->*dFdT)(Test));
|
(this->*limit)
|
||||||
|
(Test - ((this->*F)(p, Test) - f)/(this->*dFdT)(p, Test));
|
||||||
|
|
||||||
if (iter++ > maxIter_)
|
if (iter++ > maxIter_)
|
||||||
{
|
{
|
||||||
@ -103,122 +106,122 @@ Foam::specieThermo<Thermo, Type>::heName()
|
|||||||
|
|
||||||
template<class Thermo, template<class> class Type>
|
template<class Thermo, template<class> class Type>
|
||||||
inline Foam::scalar
|
inline Foam::scalar
|
||||||
Foam::specieThermo<Thermo, Type>::he(const scalar T) const
|
Foam::specieThermo<Thermo, Type>::he(const scalar p, const scalar T) const
|
||||||
{
|
{
|
||||||
return Type<specieThermo<Thermo, Type> >::he(*this, T);
|
return Type<specieThermo<Thermo, Type> >::he(*this, p, T);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
template<class Thermo, template<class> class Type>
|
template<class Thermo, template<class> class Type>
|
||||||
inline Foam::scalar
|
inline Foam::scalar
|
||||||
Foam::specieThermo<Thermo, Type>::cv(const scalar T) const
|
Foam::specieThermo<Thermo, Type>::cv(const scalar p, const scalar T) const
|
||||||
{
|
{
|
||||||
return this->cp(T) - this->RR;
|
return this->cp(p, T) - this->RR;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
template<class Thermo, template<class> class Type>
|
template<class Thermo, template<class> class Type>
|
||||||
inline Foam::scalar
|
inline Foam::scalar
|
||||||
Foam::specieThermo<Thermo, Type>::cpv(const scalar T) const
|
Foam::specieThermo<Thermo, Type>::cpv(const scalar p, const scalar T) const
|
||||||
{
|
{
|
||||||
return Type<specieThermo<Thermo, Type> >::cpv(*this, T);
|
return Type<specieThermo<Thermo, Type> >::cpv(*this, p, T);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
template<class Thermo, template<class> class Type>
|
template<class Thermo, template<class> class Type>
|
||||||
inline Foam::scalar
|
inline Foam::scalar
|
||||||
Foam::specieThermo<Thermo, Type>::gamma(const scalar T) const
|
Foam::specieThermo<Thermo, Type>::gamma(const scalar p, const scalar T) const
|
||||||
{
|
{
|
||||||
scalar CP = this->cp(T);
|
scalar CP = this->cp(p, T);
|
||||||
return CP/(CP - this->RR);
|
return CP/(CP - this->RR);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
template<class Thermo, template<class> class Type>
|
template<class Thermo, template<class> class Type>
|
||||||
inline Foam::scalar
|
inline Foam::scalar
|
||||||
Foam::specieThermo<Thermo, Type>::cpBycpv(const scalar T) const
|
Foam::specieThermo<Thermo, Type>::cpBycpv(const scalar p, const scalar T) const
|
||||||
{
|
{
|
||||||
return Type<specieThermo<Thermo, Type> >::cpBycpv(*this, T);
|
return Type<specieThermo<Thermo, Type> >::cpBycpv(*this, p, T);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
template<class Thermo, template<class> class Type>
|
template<class Thermo, template<class> class Type>
|
||||||
inline Foam::scalar
|
inline Foam::scalar
|
||||||
Foam::specieThermo<Thermo, Type>::es(const scalar T) const
|
Foam::specieThermo<Thermo, Type>::es(const scalar p, const scalar T) const
|
||||||
{
|
{
|
||||||
return this->hs(T) - this->RR*(T - this->Tstd);
|
return this->hs(p, T) - this->RR*(T - this->Tstd);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
template<class Thermo, template<class> class Type>
|
template<class Thermo, template<class> class Type>
|
||||||
inline Foam::scalar
|
inline Foam::scalar
|
||||||
Foam::specieThermo<Thermo, Type>::ea(const scalar T) const
|
Foam::specieThermo<Thermo, Type>::ea(const scalar p, const scalar T) const
|
||||||
{
|
{
|
||||||
return this->ha(T) - this->RR*(T - this->Tstd);
|
return this->ha(p, T) - this->RR*(T - this->Tstd);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
template<class Thermo, template<class> class Type>
|
template<class Thermo, template<class> class Type>
|
||||||
inline Foam::scalar
|
inline Foam::scalar
|
||||||
Foam::specieThermo<Thermo, Type>::g(const scalar T) const
|
Foam::specieThermo<Thermo, Type>::g(const scalar p, const scalar T) const
|
||||||
{
|
{
|
||||||
return this->ha(T) - T*this->s(T);
|
return this->ha(p, T) - T*this->s(p, T);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
template<class Thermo, template<class> class Type>
|
template<class Thermo, template<class> class Type>
|
||||||
inline Foam::scalar
|
inline Foam::scalar
|
||||||
Foam::specieThermo<Thermo, Type>::a(const scalar T) const
|
Foam::specieThermo<Thermo, Type>::a(const scalar p, const scalar T) const
|
||||||
{
|
{
|
||||||
return this->ea(T) - T*this->s(T);
|
return this->ea(p, T) - T*this->s(p, T);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
template<class Thermo, template<class> class Type>
|
template<class Thermo, template<class> class Type>
|
||||||
inline Foam::scalar
|
inline Foam::scalar
|
||||||
Foam::specieThermo<Thermo, Type>::Cpv(const scalar T) const
|
Foam::specieThermo<Thermo, Type>::Cpv(const scalar p, const scalar T) const
|
||||||
{
|
{
|
||||||
return this->cpv(T)/this->W();
|
return this->cpv(p, T)/this->W();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
template<class Thermo, template<class> class Type>
|
template<class Thermo, template<class> class Type>
|
||||||
inline Foam::scalar
|
inline Foam::scalar
|
||||||
Foam::specieThermo<Thermo, Type>::Cp(const scalar T) const
|
Foam::specieThermo<Thermo, Type>::Cp(const scalar p, const scalar T) const
|
||||||
{
|
{
|
||||||
return this->cp(T)/this->W();
|
return this->cp(p, T)/this->W();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
template<class Thermo, template<class> class Type>
|
template<class Thermo, template<class> class Type>
|
||||||
inline Foam::scalar
|
inline Foam::scalar
|
||||||
Foam::specieThermo<Thermo, Type>::Cv(const scalar T) const
|
Foam::specieThermo<Thermo, Type>::Cv(const scalar p, const scalar T) const
|
||||||
{
|
{
|
||||||
return this->cv(T)/this->W();
|
return this->cv(p, T)/this->W();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
template<class Thermo, template<class> class Type>
|
template<class Thermo, template<class> class Type>
|
||||||
inline Foam::scalar
|
inline Foam::scalar
|
||||||
Foam::specieThermo<Thermo, Type>::HE(const scalar T) const
|
Foam::specieThermo<Thermo, Type>::HE(const scalar p, const scalar T) const
|
||||||
{
|
{
|
||||||
return Type<specieThermo<Thermo, Type> >::HE(*this, T);
|
return Type<specieThermo<Thermo, Type> >::HE(*this, p, T);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
template<class Thermo, template<class> class Type>
|
template<class Thermo, template<class> class Type>
|
||||||
inline Foam::scalar
|
inline Foam::scalar
|
||||||
Foam::specieThermo<Thermo, Type>::H(const scalar T) const
|
Foam::specieThermo<Thermo, Type>::H(const scalar p, const scalar T) const
|
||||||
{
|
{
|
||||||
return this->h(T)/this->W();
|
return this->h(p, T)/this->W();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
template<class Thermo, template<class> class Type>
|
template<class Thermo, template<class> class Type>
|
||||||
inline Foam::scalar
|
inline Foam::scalar
|
||||||
Foam::specieThermo<Thermo, Type>::Hs(const scalar T) const
|
Foam::specieThermo<Thermo, Type>::Hs(const scalar p, const scalar T) const
|
||||||
{
|
{
|
||||||
return this->hs(T)/this->W();
|
return this->hs(p, T)/this->W();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -232,64 +235,64 @@ Foam::specieThermo<Thermo, Type>::Hc() const
|
|||||||
|
|
||||||
template<class Thermo, template<class> class Type>
|
template<class Thermo, template<class> class Type>
|
||||||
inline Foam::scalar
|
inline Foam::scalar
|
||||||
Foam::specieThermo<Thermo, Type>::Ha(const scalar T) const
|
Foam::specieThermo<Thermo, Type>::Ha(const scalar p, const scalar T) const
|
||||||
{
|
{
|
||||||
return this->ha(T)/this->W();
|
return this->ha(p, T)/this->W();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
template<class Thermo, template<class> class Type>
|
template<class Thermo, template<class> class Type>
|
||||||
inline Foam::scalar
|
inline Foam::scalar
|
||||||
Foam::specieThermo<Thermo, Type>::S(const scalar T) const
|
Foam::specieThermo<Thermo, Type>::S(const scalar p, const scalar T) const
|
||||||
{
|
{
|
||||||
return this->s(T)/this->W();
|
return this->s(p, T)/this->W();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
template<class Thermo, template<class> class Type>
|
template<class Thermo, template<class> class Type>
|
||||||
inline Foam::scalar
|
inline Foam::scalar
|
||||||
Foam::specieThermo<Thermo, Type>::E(const scalar T) const
|
Foam::specieThermo<Thermo, Type>::E(const scalar p, const scalar T) const
|
||||||
{
|
{
|
||||||
return this->e(T)/this->W();
|
return this->e(p, T)/this->W();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
template<class Thermo, template<class> class Type>
|
template<class Thermo, template<class> class Type>
|
||||||
inline Foam::scalar
|
inline Foam::scalar
|
||||||
Foam::specieThermo<Thermo, Type>::Es(const scalar T) const
|
Foam::specieThermo<Thermo, Type>::Es(const scalar p, const scalar T) const
|
||||||
{
|
{
|
||||||
return this->es(T)/this->W();
|
return this->es(p, T)/this->W();
|
||||||
}
|
}
|
||||||
|
|
||||||
template<class Thermo, template<class> class Type>
|
template<class Thermo, template<class> class Type>
|
||||||
inline Foam::scalar
|
inline Foam::scalar
|
||||||
Foam::specieThermo<Thermo, Type>::Ea(const scalar T) const
|
Foam::specieThermo<Thermo, Type>::Ea(const scalar p, const scalar T) const
|
||||||
{
|
{
|
||||||
return this->ea(T)/this->W();
|
return this->ea(p, T)/this->W();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
template<class Thermo, template<class> class Type>
|
template<class Thermo, template<class> class Type>
|
||||||
inline Foam::scalar
|
inline Foam::scalar
|
||||||
Foam::specieThermo<Thermo, Type>::G(const scalar T) const
|
Foam::specieThermo<Thermo, Type>::G(const scalar p, const scalar T) const
|
||||||
{
|
{
|
||||||
return this->g(T)/this->W();
|
return this->g(p, T)/this->W();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
template<class Thermo, template<class> class Type>
|
template<class Thermo, template<class> class Type>
|
||||||
inline Foam::scalar
|
inline Foam::scalar
|
||||||
Foam::specieThermo<Thermo, Type>::A(const scalar T) const
|
Foam::specieThermo<Thermo, Type>::A(const scalar p, const scalar T) const
|
||||||
{
|
{
|
||||||
return this->a(T)/this->W();
|
return this->a(p, T)/this->W();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
template<class Thermo, template<class> class Type>
|
template<class Thermo, template<class> class Type>
|
||||||
inline Foam::scalar
|
inline Foam::scalar
|
||||||
Foam::specieThermo<Thermo, Type>::K(const scalar T) const
|
Foam::specieThermo<Thermo, Type>::K(const scalar p, const scalar T) const
|
||||||
{
|
{
|
||||||
scalar arg = -this->nMoles()*this->g(T)/(this->RR*T);
|
scalar arg = -this->nMoles()*this->g(p, T)/(this->RR*T);
|
||||||
|
|
||||||
if (arg < 600.0)
|
if (arg < 600.0)
|
||||||
{
|
{
|
||||||
@ -304,23 +307,23 @@ Foam::specieThermo<Thermo, Type>::K(const scalar T) const
|
|||||||
|
|
||||||
template<class Thermo, template<class> class Type>
|
template<class Thermo, template<class> class Type>
|
||||||
inline Foam::scalar
|
inline Foam::scalar
|
||||||
Foam::specieThermo<Thermo, Type>::Kp(const scalar T) const
|
Foam::specieThermo<Thermo, Type>::Kp(const scalar p, const scalar T) const
|
||||||
{
|
{
|
||||||
return K(T);
|
return K(p, T);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
template<class Thermo, template<class> class Type>
|
template<class Thermo, template<class> class Type>
|
||||||
inline Foam::scalar
|
inline Foam::scalar
|
||||||
Foam::specieThermo<Thermo, Type>::Kc(const scalar T) const
|
Foam::specieThermo<Thermo, Type>::Kc(const scalar p, const scalar T) const
|
||||||
{
|
{
|
||||||
if (equal(this->nMoles(), SMALL))
|
if (equal(this->nMoles(), SMALL))
|
||||||
{
|
{
|
||||||
return Kp(T);
|
return Kp(p, T);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return Kp(T)*pow(this->Pstd/(this->RR*T), this->nMoles());
|
return Kp(p, T)*pow(this->Pstd/(this->RR*T), this->nMoles());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -328,17 +331,17 @@ Foam::specieThermo<Thermo, Type>::Kc(const scalar T) const
|
|||||||
template<class Thermo, template<class> class Type>
|
template<class Thermo, template<class> class Type>
|
||||||
inline Foam::scalar Foam::specieThermo<Thermo, Type>::Kx
|
inline Foam::scalar Foam::specieThermo<Thermo, Type>::Kx
|
||||||
(
|
(
|
||||||
const scalar T,
|
const scalar p,
|
||||||
const scalar p
|
const scalar T
|
||||||
) const
|
) const
|
||||||
{
|
{
|
||||||
if (equal(this->nMoles(), SMALL))
|
if (equal(this->nMoles(), SMALL))
|
||||||
{
|
{
|
||||||
return Kp(T);
|
return Kp(p, T);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return Kp(T)*pow(this->Pstd/p, this->nMoles());
|
return Kp(p, T)*pow(this->Pstd/p, this->nMoles());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -346,18 +349,18 @@ inline Foam::scalar Foam::specieThermo<Thermo, Type>::Kx
|
|||||||
template<class Thermo, template<class> class Type>
|
template<class Thermo, template<class> class Type>
|
||||||
inline Foam::scalar Foam::specieThermo<Thermo, Type>::Kn
|
inline Foam::scalar Foam::specieThermo<Thermo, Type>::Kn
|
||||||
(
|
(
|
||||||
const scalar T,
|
|
||||||
const scalar p,
|
const scalar p,
|
||||||
|
const scalar T,
|
||||||
const scalar n
|
const scalar n
|
||||||
) const
|
) const
|
||||||
{
|
{
|
||||||
if (equal(this->nMoles(), SMALL))
|
if (equal(this->nMoles(), SMALL))
|
||||||
{
|
{
|
||||||
return Kp(T);
|
return Kp(p, T);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return Kp(T)*pow(n*this->Pstd/p, this->nMoles());
|
return Kp(p, T)*pow(n*this->Pstd/p, this->nMoles());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -366,10 +369,11 @@ template<class Thermo, template<class> class Type>
|
|||||||
inline Foam::scalar Foam::specieThermo<Thermo, Type>::THE
|
inline Foam::scalar Foam::specieThermo<Thermo, Type>::THE
|
||||||
(
|
(
|
||||||
const scalar he,
|
const scalar he,
|
||||||
|
const scalar p,
|
||||||
const scalar T0
|
const scalar T0
|
||||||
) const
|
) const
|
||||||
{
|
{
|
||||||
return Type<specieThermo<Thermo, Type> >::THE(*this, he, T0);
|
return Type<specieThermo<Thermo, Type> >::THE(*this, he, p, T0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -377,12 +381,14 @@ template<class Thermo, template<class> class Type>
|
|||||||
inline Foam::scalar Foam::specieThermo<Thermo, Type>::THs
|
inline Foam::scalar Foam::specieThermo<Thermo, Type>::THs
|
||||||
(
|
(
|
||||||
const scalar hs,
|
const scalar hs,
|
||||||
|
const scalar p,
|
||||||
const scalar T0
|
const scalar T0
|
||||||
) const
|
) const
|
||||||
{
|
{
|
||||||
return T
|
return T
|
||||||
(
|
(
|
||||||
hs,
|
hs,
|
||||||
|
p,
|
||||||
T0,
|
T0,
|
||||||
&specieThermo<Thermo, Type>::Hs,
|
&specieThermo<Thermo, Type>::Hs,
|
||||||
&specieThermo<Thermo, Type>::Cp,
|
&specieThermo<Thermo, Type>::Cp,
|
||||||
@ -395,12 +401,14 @@ template<class Thermo, template<class> class Type>
|
|||||||
inline Foam::scalar Foam::specieThermo<Thermo, Type>::THa
|
inline Foam::scalar Foam::specieThermo<Thermo, Type>::THa
|
||||||
(
|
(
|
||||||
const scalar ht,
|
const scalar ht,
|
||||||
|
const scalar p,
|
||||||
const scalar T0
|
const scalar T0
|
||||||
) const
|
) const
|
||||||
{
|
{
|
||||||
return T
|
return T
|
||||||
(
|
(
|
||||||
ht,
|
ht,
|
||||||
|
p,
|
||||||
T0,
|
T0,
|
||||||
&specieThermo<Thermo, Type>::Ha,
|
&specieThermo<Thermo, Type>::Ha,
|
||||||
&specieThermo<Thermo, Type>::Cp,
|
&specieThermo<Thermo, Type>::Cp,
|
||||||
@ -413,12 +421,14 @@ template<class Thermo, template<class> class Type>
|
|||||||
inline Foam::scalar Foam::specieThermo<Thermo, Type>::TEs
|
inline Foam::scalar Foam::specieThermo<Thermo, Type>::TEs
|
||||||
(
|
(
|
||||||
const scalar es,
|
const scalar es,
|
||||||
|
const scalar p,
|
||||||
const scalar T0
|
const scalar T0
|
||||||
) const
|
) const
|
||||||
{
|
{
|
||||||
return T
|
return T
|
||||||
(
|
(
|
||||||
es,
|
es,
|
||||||
|
p,
|
||||||
T0,
|
T0,
|
||||||
&specieThermo<Thermo, Type>::Es,
|
&specieThermo<Thermo, Type>::Es,
|
||||||
&specieThermo<Thermo, Type>::Cv,
|
&specieThermo<Thermo, Type>::Cv,
|
||||||
@ -431,12 +441,14 @@ template<class Thermo, template<class> class Type>
|
|||||||
inline Foam::scalar Foam::specieThermo<Thermo, Type>::TEa
|
inline Foam::scalar Foam::specieThermo<Thermo, Type>::TEa
|
||||||
(
|
(
|
||||||
const scalar e,
|
const scalar e,
|
||||||
|
const scalar p,
|
||||||
const scalar T0
|
const scalar T0
|
||||||
) const
|
) const
|
||||||
{
|
{
|
||||||
return T
|
return T
|
||||||
(
|
(
|
||||||
ea,
|
ea,
|
||||||
|
p,
|
||||||
T0,
|
T0,
|
||||||
&specieThermo<Thermo, Type>::Ea,
|
&specieThermo<Thermo, Type>::Ea,
|
||||||
&specieThermo<Thermo, Type>::Cv,
|
&specieThermo<Thermo, Type>::Cv,
|
||||||
|
|||||||
@ -129,16 +129,16 @@ public:
|
|||||||
// Member functions
|
// Member functions
|
||||||
|
|
||||||
//- Dynamic viscosity [kg/ms]
|
//- Dynamic viscosity [kg/ms]
|
||||||
inline scalar mu(const scalar T) const;
|
inline scalar mu(const scalar p, const scalar T) const;
|
||||||
|
|
||||||
//- Thermal conductivity [W/mK]
|
//- Thermal conductivity [W/mK]
|
||||||
inline scalar kappa(const scalar T) const;
|
inline scalar kappa(const scalar p, const scalar T) const;
|
||||||
|
|
||||||
//- Thermal diffusivity of enthalpy [kg/ms]
|
//- Thermal diffusivity of enthalpy [kg/ms]
|
||||||
inline scalar alphah(const scalar T) const;
|
inline scalar alphah(const scalar p, const scalar T) const;
|
||||||
|
|
||||||
// Species diffusivity
|
// Species diffusivity
|
||||||
//inline scalar D(const scalar T) const;
|
//inline scalar D(const scalar p, const scalar T) const;
|
||||||
|
|
||||||
//- Write to Ostream
|
//- Write to Ostream
|
||||||
void write(Ostream& os) const;
|
void write(Ostream& os) const;
|
||||||
|
|||||||
@ -55,23 +55,35 @@ inline Foam::constTransport<Thermo>::constTransport
|
|||||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||||
|
|
||||||
template<class Thermo>
|
template<class Thermo>
|
||||||
inline Foam::scalar Foam::constTransport<Thermo>::mu(const scalar) const
|
inline Foam::scalar Foam::constTransport<Thermo>::mu
|
||||||
|
(
|
||||||
|
const scalar p,
|
||||||
|
const scalar T
|
||||||
|
) const
|
||||||
{
|
{
|
||||||
return mu_;
|
return mu_;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
template<class Thermo>
|
template<class Thermo>
|
||||||
inline Foam::scalar Foam::constTransport<Thermo>::kappa(const scalar T) const
|
inline Foam::scalar Foam::constTransport<Thermo>::kappa
|
||||||
|
(
|
||||||
|
const scalar p,
|
||||||
|
const scalar T
|
||||||
|
) const
|
||||||
{
|
{
|
||||||
return this->Cp(T)*mu(T)*rPr_;
|
return this->Cp(p, T)*mu(p, T)*rPr_;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
template<class Thermo>
|
template<class Thermo>
|
||||||
inline Foam::scalar Foam::constTransport<Thermo>::alphah(const scalar T) const
|
inline Foam::scalar Foam::constTransport<Thermo>::alphah
|
||||||
|
(
|
||||||
|
const scalar p,
|
||||||
|
const scalar T
|
||||||
|
) const
|
||||||
{
|
{
|
||||||
return mu(T)*rPr_;
|
return mu(p, T)*rPr_;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -143,16 +143,16 @@ public:
|
|||||||
// Member functions
|
// Member functions
|
||||||
|
|
||||||
//- Dynamic viscosity [kg/ms]
|
//- Dynamic viscosity [kg/ms]
|
||||||
inline scalar mu(const scalar T) const;
|
inline scalar mu(const scalar p, const scalar T) const;
|
||||||
|
|
||||||
//- Thermal conductivity [W/mK]
|
//- Thermal conductivity [W/mK]
|
||||||
inline scalar kappa(const scalar T) const;
|
inline scalar kappa(const scalar p, const scalar T) const;
|
||||||
|
|
||||||
//- Thermal diffusivity of enthalpy [kg/ms]
|
//- Thermal diffusivity of enthalpy [kg/ms]
|
||||||
inline scalar alphah(const scalar T) const;
|
inline scalar alphah(const scalar p, const scalar T) const;
|
||||||
|
|
||||||
// Species diffusivity
|
// Species diffusivity
|
||||||
//inline scalar D(const scalar T) const;
|
//inline scalar D(const scalar p, const scalar T) const;
|
||||||
|
|
||||||
//- Write to Ostream
|
//- Write to Ostream
|
||||||
void write(Ostream& os) const;
|
void write(Ostream& os) const;
|
||||||
|
|||||||
@ -104,6 +104,7 @@ Foam::polynomialTransport<Thermo, PolySize>::New(const dictionary& dict)
|
|||||||
template<class Thermo, int PolySize>
|
template<class Thermo, int PolySize>
|
||||||
inline Foam::scalar Foam::polynomialTransport<Thermo, PolySize>::mu
|
inline Foam::scalar Foam::polynomialTransport<Thermo, PolySize>::mu
|
||||||
(
|
(
|
||||||
|
const scalar p,
|
||||||
const scalar T
|
const scalar T
|
||||||
) const
|
) const
|
||||||
{
|
{
|
||||||
@ -114,6 +115,7 @@ inline Foam::scalar Foam::polynomialTransport<Thermo, PolySize>::mu
|
|||||||
template<class Thermo, int PolySize>
|
template<class Thermo, int PolySize>
|
||||||
inline Foam::scalar Foam::polynomialTransport<Thermo, PolySize>::kappa
|
inline Foam::scalar Foam::polynomialTransport<Thermo, PolySize>::kappa
|
||||||
(
|
(
|
||||||
|
const scalar p,
|
||||||
const scalar T
|
const scalar T
|
||||||
) const
|
) const
|
||||||
{
|
{
|
||||||
@ -124,10 +126,10 @@ inline Foam::scalar Foam::polynomialTransport<Thermo, PolySize>::kappa
|
|||||||
template<class Thermo, int PolySize>
|
template<class Thermo, int PolySize>
|
||||||
inline Foam::scalar Foam::polynomialTransport<Thermo, PolySize>::alphah
|
inline Foam::scalar Foam::polynomialTransport<Thermo, PolySize>::alphah
|
||||||
(
|
(
|
||||||
const scalar T
|
const scalar p, const scalar T
|
||||||
) const
|
) const
|
||||||
{
|
{
|
||||||
return kappa(T)/this->Cp(T);
|
return kappa(p, T)/this->Cp(p, T);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -157,16 +157,16 @@ public:
|
|||||||
// Member functions
|
// Member functions
|
||||||
|
|
||||||
//- Dynamic viscosity [kg/ms]
|
//- Dynamic viscosity [kg/ms]
|
||||||
inline scalar mu(const scalar T) const;
|
inline scalar mu(const scalar p, const scalar T) const;
|
||||||
|
|
||||||
//- Thermal conductivity [W/mK]
|
//- Thermal conductivity [W/mK]
|
||||||
inline scalar kappa(const scalar T) const;
|
inline scalar kappa(const scalar p, const scalar T) const;
|
||||||
|
|
||||||
//- Thermal diffusivity of enthalpy [kg/ms]
|
//- Thermal diffusivity of enthalpy [kg/ms]
|
||||||
inline scalar alphah(const scalar T) const;
|
inline scalar alphah(const scalar p, const scalar T) const;
|
||||||
|
|
||||||
// Species diffusivity
|
// Species diffusivity
|
||||||
//inline scalar D(const scalar T) const;
|
//inline scalar D(const scalar p, const scalar T) const;
|
||||||
|
|
||||||
//- Write to Ostream
|
//- Write to Ostream
|
||||||
void write(Ostream& os) const;
|
void write(Ostream& os) const;
|
||||||
|
|||||||
@ -129,7 +129,11 @@ Foam::sutherlandTransport<Thermo>::New
|
|||||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||||
|
|
||||||
template<class Thermo>
|
template<class Thermo>
|
||||||
inline Foam::scalar Foam::sutherlandTransport<Thermo>::mu(const scalar T) const
|
inline Foam::scalar Foam::sutherlandTransport<Thermo>::mu
|
||||||
|
(
|
||||||
|
const scalar p,
|
||||||
|
const scalar T
|
||||||
|
) const
|
||||||
{
|
{
|
||||||
return As_*::sqrt(T)/(1.0 + Ts_/T);
|
return As_*::sqrt(T)/(1.0 + Ts_/T);
|
||||||
}
|
}
|
||||||
@ -138,22 +142,23 @@ inline Foam::scalar Foam::sutherlandTransport<Thermo>::mu(const scalar T) const
|
|||||||
template<class Thermo>
|
template<class Thermo>
|
||||||
inline Foam::scalar Foam::sutherlandTransport<Thermo>::kappa
|
inline Foam::scalar Foam::sutherlandTransport<Thermo>::kappa
|
||||||
(
|
(
|
||||||
const scalar T
|
const scalar p, const scalar T
|
||||||
) const
|
) const
|
||||||
{
|
{
|
||||||
scalar Cv_ = this->Cv(T);
|
scalar Cv_ = this->Cv(p, T);
|
||||||
return mu(T)*Cv_*(1.32 + 1.77*this->R()/Cv_);
|
return mu(p, T)*Cv_*(1.32 + 1.77*this->R()/Cv_);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
template<class Thermo>
|
template<class Thermo>
|
||||||
inline Foam::scalar Foam::sutherlandTransport<Thermo>::alphah
|
inline Foam::scalar Foam::sutherlandTransport<Thermo>::alphah
|
||||||
(
|
(
|
||||||
|
const scalar p,
|
||||||
const scalar T
|
const scalar T
|
||||||
) const
|
) const
|
||||||
{
|
{
|
||||||
|
|
||||||
return kappa(T)/this->Cp(T);
|
return kappa(p, T)/this->Cp(p, T);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -83,7 +83,7 @@ void Foam::porousMedia::fixedTemperature::addEnthalpySource
|
|||||||
forAll(zones, zoneI)
|
forAll(zones, zoneI)
|
||||||
{
|
{
|
||||||
const labelList& cells = mesh.cellZones()[zones[zoneI]];
|
const labelList& cells = mesh.cellZones()[zones[zoneI]];
|
||||||
hEqn.setValues(cells, thermo.he(T, cells));
|
hEqn.setValues(cells, thermo.he(thermo.p(), T, cells));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -114,7 +114,8 @@ void htcConvFvPatchScalarField::updateCoeffs()
|
|||||||
const vectorField& Uc = rasModel.U();
|
const vectorField& Uc = rasModel.U();
|
||||||
const vectorField& Uw = rasModel.U().boundaryField()[patchI];
|
const vectorField& Uw = rasModel.U().boundaryField()[patchI];
|
||||||
const scalarField& Tw = rasModel.thermo().T().boundaryField()[patchI];
|
const scalarField& Tw = rasModel.thermo().T().boundaryField()[patchI];
|
||||||
const scalarField Cpw(rasModel.thermo().Cp(Tw, patchI));
|
const scalarField& pw = rasModel.thermo().p().boundaryField()[patchI];
|
||||||
|
const scalarField Cpw(rasModel.thermo().Cp(pw, Tw, patchI));
|
||||||
|
|
||||||
const scalarField kappaw(Cpw*alphaEffw);
|
const scalarField kappaw(Cpw*alphaEffw);
|
||||||
const scalarField Pr(muw*Cpw/kappaw);
|
const scalarField Pr(muw*Cpw/kappaw);
|
||||||
|
|||||||
@ -208,7 +208,6 @@ void temperatureThermoBaffle1DFvPatchScalarField<solidType>::updateCoeffs()
|
|||||||
|
|
||||||
if (baffleActivated_)
|
if (baffleActivated_)
|
||||||
{
|
{
|
||||||
|
|
||||||
const fvPatch& nbrPatch =
|
const fvPatch& nbrPatch =
|
||||||
patch().boundaryMesh()[mpp.samplePolyPatch().index()];
|
patch().boundaryMesh()[mpp.samplePolyPatch().index()];
|
||||||
|
|
||||||
@ -230,9 +229,11 @@ void temperatureThermoBaffle1DFvPatchScalarField<solidType>::updateCoeffs()
|
|||||||
const scalarField& Tp =
|
const scalarField& Tp =
|
||||||
patch().template lookupPatchField<volScalarField, scalar>(TName_);
|
patch().template lookupPatchField<volScalarField, scalar>(TName_);
|
||||||
|
|
||||||
|
const scalarField& pp = model.thermo().p().boundaryField()[patchI];
|
||||||
|
|
||||||
tmp<scalarField> Ti = patchInternalField();
|
tmp<scalarField> Ti = patchInternalField();
|
||||||
|
|
||||||
const scalarField Cpw(model.thermo().Cp(Ti, patchI));
|
const scalarField Cpw(model.thermo().Cp(pp, Ti, patchI));
|
||||||
|
|
||||||
scalarField myh(patch().deltaCoeffs()*alphaw*Cpw);
|
scalarField myh(patch().deltaCoeffs()*alphaw*Cpw);
|
||||||
|
|
||||||
@ -247,6 +248,9 @@ void temperatureThermoBaffle1DFvPatchScalarField<solidType>::updateCoeffs()
|
|||||||
const fvPatchScalarField& nbrHw =
|
const fvPatchScalarField& nbrHw =
|
||||||
model.thermo().he().boundaryField()[nbrPatchI];
|
model.thermo().he().boundaryField()[nbrPatchI];
|
||||||
|
|
||||||
|
const scalarField& nbrHwPp =
|
||||||
|
model.thermo().p().boundaryField()[nbrPatchI];
|
||||||
|
|
||||||
scalarField nbrQDot
|
scalarField nbrQDot
|
||||||
(
|
(
|
||||||
model.alphaEff()().boundaryField()[nbrPatchI]*nbrHw.snGrad()
|
model.alphaEff()().boundaryField()[nbrPatchI]*nbrHw.snGrad()
|
||||||
@ -271,7 +275,7 @@ void temperatureThermoBaffle1DFvPatchScalarField<solidType>::updateCoeffs()
|
|||||||
|
|
||||||
const scalarField nbrCpw
|
const scalarField nbrCpw
|
||||||
(
|
(
|
||||||
model.thermo().Cp(nbrField.patchInternalField(), nbrPatchI)
|
model.thermo().Cp(nbrHwPp, nbrField.patchInternalField(), nbrPatchI)
|
||||||
);
|
);
|
||||||
|
|
||||||
scalarField nbrh
|
scalarField nbrh
|
||||||
|
|||||||
Reference in New Issue
Block a user