Annex60.Fluid.MixingVolumes.MixingVolume

# .Annex60.Fluid.MixingVolumes.MixingVolume

Mixing volume with inlet and outlet ports (flow reversal is allowed)

## Information

This model represents an instantaneously mixed volume. Potential and kinetic energy at the port are neglected, and there is no pressure drop at the ports. The volume can exchange heat through its `heatPort`.

The volume can be parameterized as a steady-state model or as dynamic model.

To increase the numerical robustness of the model, the constant `prescribedHeatFlowRate` can be set by the user. This constant only has an effect if the model has exactly two fluid ports connected, and if it is used as a steady-state model. Use the following settings:

- Set `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`.
- Set `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.
  If there is a combination of K * (T-heatPort.T) and a prescribed heat flow rate, for example a solar collector that dissipates heat to the ambient and receives heat from the solar radiation, then set `prescribedHeatFlowRate=false`.

#### Options

The parameter `mSenFac` can be used to increase the thermal mass of this model without increasing its volume. This way, species concentrations are still calculated correctly even though the thermal mass increases. The additional thermal mass is calculated based on the density and the value of the function `HeatCapacityCp` of the medium state `state_default`.
This parameter can for instance be useful in a pipe model when the developer wants to lump the pipe thermal mass to the fluid volume. By default `mSenFac = 1`, hence the mass is unchanged. For higher values of `mSenFac`, the mass will be scaled proportionally.

Set the parameter `use_C_flow = true` to enable an input connector for the trace substance flow rate. This allows to directly add or subtract trace substances such as CO2 to the volume. See Annex60.Fluid.Sensors.Examples.PPM for an example.

#### Implementation

If the model is operated in steady-state and has two fluid ports connected, then the same energy and mass balance implementation is used as in steady-state component models, i.e., the use of `actualStream` is not used for the properties at the port.

The implementation of these balance equations is done in the instances `dynBal` for the dynamic balance and `steBal` for the steady-state balance. Both models use the same input variables:

- The variable `Q_flow` is used to add sensible and latent heat to the fluid. For example, `Q_flow` participates in the steady-state energy balance

          port_b.h_outflow = inStream(port_a.h_outflow) + Q_flow * m_flowInv;

  where `m_flowInv` approximates the expression `1/m_flow`.
- The variable `mXi_flow` is used to add a species mass flow rate to the fluid.

For the rationale of selecting different energy and mass balances, and for the use of `prescribedHeatFlowRate`, see the documentation of Annex60.Fluid.MixingVolumes.BaseClasses.PartialMixingVolume.

For simple models that uses this model, see Annex60.Fluid.HeatExchangers.HeaterCooler_u and Annex60.Fluid.MassExchangers.Humidifier_u.

## Revisions

- April 11, 2016 by Michael Wetter:
  Corrected wrong hyperlink in documentation for issue 450.
- January 19, 2016, by Michael Wetter:
  Updated documentation due to the addition of an input for trace substance in the mixing volume. This is for issue 372.
- January 17, 2016, by Michael Wetter:
  Removed `protected` block `masExc` as this revision introduces a conditional connector for the moisture flow rate in the energy and mass balance models. This change was done to use the same modeling concept for the moisture input as is used for the trace substance input.
- December 2, 2015, by Filip Jorissen:
  Changed code for handling trace substance insertions using input `C_flow`.
- May 1, 2015 by Michael Wetter
  Set `final` keyword for `masExc(final k=0)`. This addresses issue 230.
- February 11, 2014 by Michael Wetter:
  Redesigned implementation of latent and sensible heat flow rates as port of the correction of issue #197.
- February 7, 2012 by Michael Wetter:
  Revised base classes for conservation equations in `Annex60.Fluid.Interfaces`.
- September 17, 2011 by Michael Wetter:
  Removed instance `medium` as this is already used in `dynBal`. Removing the base properties led to 30% faster computing time for a solar thermal system that contains many fluid volumes.
- September 13, 2011 by Michael Wetter:
  Changed in declaration of `medium` the parameter assignment `preferredMediumStates=true` to `preferredMediumStates= not (energyDynamics == Modelica.Fluid.Types.Dynamics.SteadyState)`. Otherwise, for a steady-state model, Dymola 2012 may differentiate the model to obtain `T` as a state. See ticket Dynasim #13596.
- July 26, 2011 by Michael Wetter:
  Revised model to use new declarations from Annex60.Fluid.Interfaces.LumpedVolumeDeclarations.
- July 14, 2011 by Michael Wetter:
  Added start values for mass and internal energy of dynamic balance model.
- May 25, 2011 by Michael Wetter:
  - Changed implementation of balance equation. The new implementation uses a different model if exactly two fluid ports are connected, and in addition, the model is used as a steady-state component. For this model configuration, the same balance equations are used as were used for steady-state component models, i.e., instead of `actualStream(...)`, the `inStream(...)` formulation is used. This changed required the introduction of a new parameter `m_flow_nominal` which is used for smoothing in the steady-state balance equations of the model with two fluid ports.
  - Another revision was the removal of the parameter `use_HeatTransfer` as there is no noticeable overhead in always having the `heatPort` connector present.
- July 30, 2010 by Michael Wetter:
  Added nominal value for `mC` to avoid wrong trajectory when concentration is around 1E-7. See also https://trac.modelica.org/Modelica/ticket/393.
- February 7, 2010 by Michael Wetter:
  Simplified model and its base classes by removing the port data and the vessel area. Eliminated the base class `PartialLumpedVessel`.
- October 12, 2009 by Michael Wetter:
  Changed base class to Annex60.Fluid.MixingVolumes.BaseClasses.ClosedVolume.

Generated at 2026-05-09T18:18:56Z by OpenModelicaOpenModelica 1.26.7 using GenerateDoc.mos