Skip to content
Snippets Groups Projects
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
No related branches found
No related tags found
No related merge requests found
......@@ -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_));
}
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment