This model transports fluid between its two ports, without storing mass or energy. It implements a steady-state conservation equation for energy and mass fractions. The model has zero pressure drop between its ports.
Set the parameter use_mWat_flow_in=true
to enable
an input connector for mWat_flow
. Otherwise, the model
uses mWat_flow = 0
.
If the constant simplify_mWat_flow = true
, which is
its default value, then the equation
port_a.m_flow + port_b.m_flow = - mWat_flow;
is simplified as
port_a.m_flow + port_b.m_flow = 0;
This causes an error in the mass balance of about 0.5%, but generally leads to simpler equations because the pressure drop equations are then decoupled from the mass exchange in this component.
To increase the numerical robustness of the model, the constant
prescribedHeatFlowRate
can be set. Use the following
settings:
prescribedHeatFlowRate=true
if the only
means of heat transfer at the heatPort
is a prescribed
heat flow rate that is not a function of the temperature
difference between the medium and an ambient temperature. Examples
include an ideal electrical heater, a pump that rejects heat into
the fluid stream, or a chiller that removes heat based on a
performance curve. If the heatPort
is not connected,
then set prescribedHeatFlowRate=true
as in this case,
heatPort.Q_flow=0
.prescribedHeatFlowRate=false
if there is heat
flow at the heatPort
computed as K *
(T-heatPort.T), for some temperature T and some
conductance K, which may itself be a function of temperature
or mass flow rate.prescribedHeatFlowRate=false
.If prescribedHeatFlow=true
, then energy and mass
balance equations are formulated to guard against numerical
problems near zero flow that can occur if Q_flow
or
m_flow
are the results of an iterative solver.
Input connectors of the model are
Q_flow
, which is the sensible plus latent heat
flow rate added to the medium,mWat_flow
, which is the moisture mass flow rate
added to the medium, andC_flow
, which is the trace substance mass flow
rate added to the medium.The model can only be used as a steady-state model with two fluid ports. For a model with a dynamic balance, and more fluid ports, use Buildings.Fluid.Interfaces.ConservationEquation.
TMax
in assert.getInstanceName()
in asserts to facilitate
debugging.regStep
instead of
spliceFunction
. This is for #247 and
for #300.mFlow_inv_b
. This is for #247.constant sensibleOnly
as this is no longer
used because the model uses use_mWat_flow
.m_flowInv
needs to be computed because the change from January 20 introduced
an error in
Buildings.Fluid.MassExchangers.Examples.ConstantEffectiveness.sensibleOnly
since this is no longer needed to
simplify the equations. This is for #372.use_C_flow
and converted
C_flow
to a conditionally removed connector. This is
for #372.C_flow
to allow for PPM.C_flow
and code for handling trace
substance insertions. November 19, 2015, by Michael Wetter:showDesignFlowDirection
in extends
statement. This is for #349.simplify_mWat_flow
to remove
dependencies of the pressure drop calculation on the moisture
balance.port_a
if
allowFlowReversal=false
and updated documentation. See
issue
281 for a discussion.prescribedHeatFlowRate
to MixingVolume
instances. Renamed use_safeDivision
into
prescribedHeatFlowRate
. See #282 for a
discussion.Q_flow
input.use_safeDivision=false
and
sensibleOnly=true
. This only affects internal
numerical tests, but not any examples in the library as the
constant use_safeDivision
is set to true
by default.hOut
.i_w
.for
loops for species balance and trace
substance balance, as they cause the error Error: Operand
port_a.Xi_outflow[1] to operator inStream is not a stream
variable.
in OpenModelica.COut
, and added min
and max attributes for XiOut
.m_flowInv
to use
port_a.m_flow * ...
if
use_safeDivision=false
. This avoids a division by zero
if port_a.m_flow=0
.Buildings.Fluid.Interfaces
.hOut
, XiOut
and
COut
to no longer declare that it is continuous. The
declaration of continuity, i.e, the smooth(0, if
(port_a.m_flow >= 0) then ...)
declaration, was required
for Dymola 2012 to simulate, but it is no longer needed for Dymola
2012 FD01.hOut
, XiOut
and
COut
to declare that it is not differentiable.m_flow=0
.homotopy
operator.port_b
was multiplied with the mass flow rate at
port_a
. The old implementation led to small errors
that were proportional to the amount of moisture change. For
example, if the moisture added by the component was 0.005
kg/kg
, then the error was 0.5%
. Also, the
results for forward flow and reverse flow differed by this amount.
With the new implementation, the energy and moisture balance is
exact.sensibleOnly
to simplify species
balance equation.