This information is part of the Modelica Standard Library maintained by the Modelica Association.
actualStream(v) operator is provided for convenience, in order to return the actual value of the stream variable, depending on the actual flow direction. The only argument of this built-in operator needs to be a reference to a stream variable. The operator is vectorizable, in the case of vector arguments. For the following definition it is assumed that an (inside or outside) connector
c contains a stream variable
h_outflow which is associated with a flow variable
m_flow in the same connector
actualStream(port.h_outflow) = if port.m_flow > 0 then inStream(port.h_outflow) else port.h_outflow;
actualStream(v) operator is typically used in two contexts:
der(U) = c.m_flow*actualStream(c.h_outflow); // (1)energy balance equation h_port = actualStream(port.h); // (2)monitoring the enthalpy at a port
In the case of equation (1), although the
actualStream() operator is discontinuous, the product with the flow variable is not, because
actualStream()) is discontinuous when the flow is zero by construction.
Therefore, a tool might infer that the expression is
smooth(0, ...) automatically, and decide whether or not to generate an event.
If a user wants to avoid events entirely, he/she may enclose the right-hand side of (1) with the
Equations like (2) might be used for monitoring purposes (e.g. plots), in order to inspect what the actual enthalpy of the fluid flowing through a port is.
In this case, the user will probably want to see the change due to flow reversal at the exact instant, so an event should be generated.
If the user does not bother, then he/she should enclose the right-hand side of (2) with
Since the output of
actualStream() will be discontinuous, it should not be used by itself to model physical behaviour (e.g., to compute densities used in momentum balances) -
inStream() should be used for this purpose. The operator
actualStream() should be used to model physical behaviour only when multiplied by the corresponding flow variable (like in the above energy balance equation), because this removes the discontinuity.