BuildSysPro.IBPSA.Fluid.Storage.StratifiedEnhancedInternalHex

# .BuildSysPro.IBPSA.Fluid.Storage.StratifiedEnhancedInternalHex

A model of a water storage tank with a secondary loop and intenral heat exchanger

## Information

This is a model of a stratified storage tank for thermal energy storage with built-in heat exchanger.

See the IBPSA.Fluid.Storage.UsersGuide for more information.

#### Limitations

The model requires at least 4 fluid segments. Hence, set `nSeg` to 4 or higher.

## Contents

Name | Description
--- | ---
MediumHex | Medium in the heat exchanger

## Revisions

- March 7, 2022, by Michael Wetter:
  Removed `massDynamics` and `massDynamicsHex`.
  This is for #1542.
- June 7, 2018 by Filip Jorissen:
  Copied model from Buildings and update the model accordingly. This is for #314.
- June 23, 2016, by Michael Wetter:
  Corrected computation of the heat exchanger location which was wrong if `hHex_a < hHex_b`, e.g., the port a of the heat exchanger is below the port b. This closes issue 531.
- January 22, 2016, by Michael Wetter:
  Corrected type declaration of pressure difference. This is for #404.
- July 2, 2015, by Michael Wetter:
  Set the default value `energyDynamicsHexSolid=energyDynamicsHex` rather than `energyDynamicsHexSolid=Modelica.Fluid.Types.Dynamics.DynamicFreeInitial` as users are not likely to want different settings.
- July 1, 2015, by Filip Jorissen:
  Added parameter `energyDynamicsHexSolid`. This is for #434.
- March 28, 2015, by Filip Jorissen:
  Propagated `allowFlowReversal` and `m_flow_small`.
- September 2, 2014 by Michael Wetter:
  Replaced the `abs()` function in the assignment of the parameter `nSegHexTan` as the return value of `abs()` is a `Real` which causes a type error during model check.
- August 29, 2014 by Michael Wetter:
  Corrected issue #271 which led to a compilation error if the heat exchanger and the tank had different media.
- April 18, 2014 by Michael Wetter:
  Added missing ceiling function in computation of `botHexSeg`. Without this function, this parameter can take on zero, which is wrong because the Modelica uses one-based arrays. Revised the model as the old version required the porta of the heat exchanger to be located higher than portb. This makes sense if the heat exchanger is used to heat up the tank, but not if it is used to cool down a tank, such as in a cooling plant. The following parameters were changed:
  1. Changed `hexTopHeight` to `hHex_a`.
  2. Changed `hexBotHeight` to `hHex_b`.
  3. Changed `topHexSeg` to `segHex_a`, and made it protected as this is deduced from `hHex_a`.
  4. Changed `botHexSeg` to `segHex_b`, and made it protected as this is deduced from `hHex_b`.
  The names of the following ports have been changed:
  1. Changed `port_a1` to `portHex_a`.
  2. Changed `port_b1` to `portHex_b`.
  The conversion script should update old instances of this model automatically in Dymola for all of the above changes.
- May 10, 2013 by Michael Wetter:
  Removed `m_flow_nominal_tank` which was not used.
- January 29, 2013 by Peter Grant:
  First implementation.

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