Commit d84fc7ad authored by Henry's avatar Henry
Browse files

fixedTemperatureConstraint,effectivenessHeatExchangerSource: Set the field...

fixedTemperatureConstraint,effectivenessHeatExchangerSource: Set the field name to that of the energy
field from which the temperature is obtained

Removes the need for the 'alwaysApply' hack.
parent 4726029e
......@@ -94,19 +94,20 @@ Foam::fv::fixedTemperatureConstraint::fixedTemperatureConstraint
}
fieldNames_.setSize(1, "energy");
applied_.setSize(1, false);
}
// Set the field name to that of the energy field from which the temperature
// is obtained
const basicThermo& thermo =
mesh_.lookupObject<basicThermo>("thermophysicalProperties");
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
fieldNames_.setSize(1, thermo.he().name());
bool Foam::fv::fixedTemperatureConstraint::alwaysApply() const
{
return true;
applied_.setSize(1, false);
}
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
void Foam::fv::fixedTemperatureConstraint::constrain
(
fvMatrix<scalar>& eqn,
......@@ -116,34 +117,30 @@ void Foam::fv::fixedTemperatureConstraint::constrain
const basicThermo& thermo =
mesh_.lookupObject<basicThermo>("thermophysicalProperties");
if (eqn.psi().name() == thermo.he().name())
switch (mode_)
{
switch (mode_)
case tmUniform:
{
case tmUniform:
{
const scalar t = mesh_.time().value();
scalarField Tuni(cells_.size(), Tuniform_->value(t));
eqn.setValues(cells_, thermo.he(thermo.p(), Tuni, cells_));
break;
}
case tmLookup:
{
const volScalarField& T =
mesh().lookupObject<volScalarField>(TName_);
scalarField Tlkp(T, cells_);
eqn.setValues(cells_, thermo.he(thermo.p(), Tlkp, cells_));
break;
}
default:
{
// error handling done by NamedEnum
}
const scalar t = mesh_.time().value();
scalarField Tuni(cells_.size(), Tuniform_->value(t));
eqn.setValues(cells_, thermo.he(thermo.p(), Tuni, cells_));
break;
}
case tmLookup:
{
const volScalarField& T =
mesh().lookupObject<volScalarField>(TName_);
scalarField Tlkp(T, cells_);
eqn.setValues(cells_, thermo.he(thermo.p(), Tlkp, cells_));
break;
}
default:
{
// error handling done by NamedEnum
}
}
}
......
......@@ -136,13 +136,8 @@ public:
// Member Functions
virtual bool alwaysApply() const;
// Set values directly
//- Scalar
virtual void constrain(fvMatrix<scalar>& eqn, const label fieldI);
//- Constrain energy equation to fix the temperature
virtual void constrain(fvMatrix<scalar>& eqn, const label fieldI);
// IO
......
......@@ -166,7 +166,6 @@ Foam::fv::effectivenessHeatExchangerSource::effectivenessHeatExchangerSource
faceSign_(),
faceZoneArea_(0)
{
if (zoneID_ < 0)
{
FatalErrorIn
......@@ -185,7 +184,14 @@ Foam::fv::effectivenessHeatExchangerSource::effectivenessHeatExchangerSource
<< nl << exit(FatalError);
}
fieldNames_.setSize(1, "energy");
// Set the field name to that of the energy field from which the temperature
// is obtained
const basicThermo& thermo =
mesh_.lookupObject<basicThermo>("thermophysicalProperties");
fieldNames_.setSize(1, thermo.he().name());
applied_.setSize(1, false);
eTable_.reset(new interpolation2DTable<scalar>(coeffs_));
......@@ -196,12 +202,6 @@ Foam::fv::effectivenessHeatExchangerSource::effectivenessHeatExchangerSource
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
bool Foam::fv::effectivenessHeatExchangerSource::alwaysApply() const
{
return true;
}
void Foam::fv::effectivenessHeatExchangerSource::addSup
(
const volScalarField& rho,
......@@ -212,11 +212,6 @@ void Foam::fv::effectivenessHeatExchangerSource::addSup
const basicThermo& thermo =
mesh_.lookupObject<basicThermo>("thermophysicalProperties");
if (eqn.psi().name() != thermo.he().name())
{
return;
}
const surfaceScalarField Cpf(fvc::interpolate(thermo.Cp()));
const surfaceScalarField& phi =
......
......@@ -245,10 +245,7 @@ public:
// Member Functions
virtual bool alwaysApply() const;
// Add explicit and implicit contributions
// Explicit and implicit source
//- Scalar
virtual void addSup
......@@ -265,7 +262,7 @@ public:
}
// Add explicit and implicit contributions to compressible equation
// Explicit and implicit source for compressible equation
//- Scalar
virtual void addSup
......
......@@ -55,13 +55,13 @@ void Foam::fv::solidificationMeltingSource::apply
if (eqn.psi().dimensions() == dimTemperature)
{
// isothermal phase change - only include time derivative
// eqn -= L/Cp*(fvc::ddt(rho, alpha1_) + fvc::div(phi, alpha1_));
// eqn -= L/Cp*(fvc::ddt(rho, alpha1_) + fvc::div(phi, alpha1_));
eqn -= L/Cp*(fvc::ddt(rho, alpha1_));
}
else
{
// isothermal phase change - only include time derivative
// eqn -= L*(fvc::ddt(rho, alpha1_) + fvc::div(phi, alpha1_));
// eqn -= L*(fvc::ddt(rho, alpha1_) + fvc::div(phi, alpha1_));
eqn -= L*(fvc::ddt(rho, alpha1_));
}
}
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment