Devices for conveying fluid

Extends from `Modelica.Icons.VariantsPackage`

(Icon for package containing variants).

Name | Description |
---|---|

`BaseClasses` … | Base classes used in the Pipes package (only of interest to build new component models) |

`DynamicPipe` | Dynamic pipe model with storage of mass and energy |

`StaticPipe` | Basic pipe flow model without storage of mass or energy |

Basic pipe flow model without storage of mass or energy

Model of a straight pipe with constant cross section and with steady-state mass, momentum and energy balances, i.e., the model does not store mass or energy. There exist two thermodynamic states, one at each fluid port. The momentum balance is formulated for the two states, taking into account momentum flows, friction and gravity. The same result can be obtained by using DynamicPipe with steady-state dynamic settings. The intended use is to provide simple connections of vessels or other devices with storage, as it is done in:

With the stream connectors the thermodynamic states on the ports are generally defined by models with storage or by sources placed upstream and downstream of the static pipe. Other non storage components in the flow path may yield to state transformation. Note that this generally leads to nonlinear equation systems if multiple static pipes, or other flow models without storage, are directly connected.

Extends from `Modelica.Fluid.Pipes.BaseClasses.PartialStraightPipe`

(Base class for straight pipe models).

Type | Name | Default | Description |
---|---|---|---|

`Boolean` | `allowFlowReversal` | `system.allowFlowReversal` | = true to allow flow reversal, false restricts to design direction (port_a -> port_b) |

`Real` | `nParallel` | `1` | Number of identical parallel pipes |

`Length` | `length` | Length | |

`Boolean` | `isCircular` | `true` | = true if cross sectional area is circular |

`Diameter` | `diameter` | Diameter of circular pipe | |

`Area` | `crossArea` | `0.25 * (Modelica.Constants.pi * diameter * diameter)` | Inner cross section area |

`Length` | `perimeter` | `Modelica.Constants.pi * diameter` | Inner perimeter |

`Height` | `roughness` | `2.5e-5` | Average height of surface asperities (default: smooth steel pipe) |

`Volume` | `V` | `crossArea * length * nParallel` | volume size |

`Length` | `height_ab` | `0` | Height(port_b) - Height(port_a) |

`AbsolutePressure` | `p_a_start` | `system.p_start` | Start value of pressure at port a |

`AbsolutePressure` | `p_b_start` | `p_a_start` | Start value of pressure at port b |

`MassFlowRate` | `m_flow_start` | `system.m_flow_start` | Start value for mass flow rate |

Type | Name | Description |
---|---|---|

`FluidPort_a` | `port_a` | Fluid connector a (positive design flow direction is from port_a to port_b) |

`FluidPort_b` | `port_b` | Fluid connector b (positive design flow direction is from port_a to port_b) |

Dynamic pipe model with storage of mass and energy

Model of a straight pipe with distributed mass, energy and momentum balances. It provides the complete balance equations for one-dimensional fluid flow as formulated in UsersGuide.ComponentDefinition.BalanceEquations.

This generic model offers a large number of combinations of possible parameter settings. In order to reduce model complexity, consider defining and/or using a tailored model for the application at hand, such as HeatExchanger.

DynamicPipe treats the partial differential equations with the finite volume method and a staggered grid scheme for momentum balances. The pipe is split into nNodes equally spaced segments along the flow path. The default value is nNodes=2. This results in two lumped mass and energy balances and one lumped momentum balance across the dynamic pipe.

Note that this generally leads to high-index DAEs for pressure states if dynamic pipes are directly connected to each other, or generally to models with storage exposing a thermodynamic state through the port. This may not be valid if the dynamic pipe is connected to a model with non-differentiable pressure, like a Sources.Boundary_pT with prescribed jumping pressure. The

can be configured as appropriate in such situations, in order to place a momentum balance between a pressure state of the pipe and a non-differentiable boundary condition.**modelStructure**

The default

is **modelStructure**`av_vb`

(see Advanced tab). The simplest possible alternative symmetric configuration, avoiding potential high-index DAEs at the cost of the potential introduction of nonlinear equation systems, is obtained with the setting `nNodes=1, modelStructure=a_v_b`

. Depending on the configured model structure, the first and the last pipe segment, or the flow path length of the first and the last momentum balance, are of half size. See the documentation of the base class Pipes.BaseClasses.PartialTwoPortFlow, also covering asymmetric configurations.

The

component specifies the source term **HeatTransfer**`Qb_flows`

of the energy balance. The default component uses a constant coefficient for the heat transfer between the bulk flow and the segment boundaries exposed through the `heatPorts`

. The `HeatTransfer`

model is replaceable and can be exchanged with any model extended from BaseClasses.HeatTransfer.PartialFlowHeatTransfer.

The intended use is for complex networks of pipes and other flow devices, like valves. See, e.g.,

Extends from `Modelica.Fluid.Pipes.BaseClasses.PartialStraightPipe`

(Base class for straight pipe models) and `Modelica.Fluid.Pipes.BaseClasses.PartialTwoPortFlow`

(Base class for distributed flow models).

Type | Name | Default | Description |
---|---|---|---|

`Boolean` | `allowFlowReversal` | `system.allowFlowReversal` | = true to allow flow reversal, false restricts to design direction (port_a -> port_b) |

`Real` | `nParallel` | `1` | Number of identical parallel pipes |

`Length` | `length` | Length | |

`Boolean` | `isCircular` | `true` | = true if cross sectional area is circular |

`Diameter` | `diameter` | Diameter of circular pipe | |

`Area` | `crossArea` | `0.25 * (Modelica.Constants.pi * diameter * diameter)` | Inner cross section area |

`Length` | `perimeter` | `Modelica.Constants.pi * diameter` | Inner perimeter |

`Height` | `roughness` | `2.5e-5` | Average height of surface asperities (default: smooth steel pipe) |

`Volume` | `V` | `crossArea * length * nParallel` | volume size |

`Length` | `height_ab` | `0` | Height(port_b) - Height(port_a) |

`Integer` | `n` | `nNodes` | Number of discrete volumes |

`Dynamics` | `energyDynamics` | `system.energyDynamics` | Formulation of energy balances |

`Dynamics` | `massDynamics` | `system.massDynamics` | Formulation of mass balances |

`Dynamics` | `substanceDynamics` | `massDynamics` | Formulation of substance balances |

`Dynamics` | `traceDynamics` | `massDynamics` | Formulation of trace substance balances |

`AbsolutePressure` | `p_a_start` | `system.p_start` | Start value of pressure at port a |

`AbsolutePressure` | `p_b_start` | `p_a_start` | Start value of pressure at port b |

`AbsolutePressure` | `ps_start[n]` | `if 1 < n then linspace(p_a_start, p_b_start, n) else {0.5 * (p_a_start + p_b_start)}` | Start value of pressure |

`Boolean` | `use_T_start` | `true` | Use T_start if true, otherwise h_start |

`Temperature` | `T_start` | `if use_T_start then system.T_start else Medium.temperature_phX(0.5 * (p_a_start + p_b_start), h_start, X_start)` | Start value of temperature |

`SpecificEnthalpy` | `h_start` | `if use_T_start then Medium.specificEnthalpy_pTX(0.5 * (p_a_start + p_b_start), T_start, X_start) else Medium.h_default` | Start value of specific enthalpy |

`MassFraction` | `X_start[Medium.nX]` | `Medium.X_default` | Start value of mass fractions m_i/m |

`ExtraProperty` | `C_start[Medium.nC]` | `Medium.C_default` | Start value of trace substances |

`Length` | `lengths[n]` | `fill(length / n, n)` | lengths of flow segments |

`Area` | `crossAreas[n]` | `fill(crossArea, n)` | cross flow areas of flow segments |

`Length` | `dimensions[n]` | `fill(4 * crossArea / perimeter, n)` | hydraulic diameters of flow segments |

`Height` | `roughnesses[n]` | `fill(roughness, n)` | Average heights of surface asperities |

`Length` | `dheights[n]` | `height_ab * dxs` | Differences in heights of flow segments |

`Dynamics` | `momentumDynamics` | `system.momentumDynamics` | Formulation of momentum balances |

`MassFlowRate` | `m_flow_start` | `system.m_flow_start` | Start value for mass flow rate |

`Integer` | `nNodes` | `2` | Number of discrete flow volumes |

`ModelStructure` | `modelStructure` | `Types.ModelStructure.av_vb` | Determines whether flow or volume models are present at the ports |

`Boolean` | `useLumpedPressure` | `false` | =true to lump pressure states together |

`Integer` | `nFM` | `if useLumpedPressure then nFMLumped else nFMDistributed` | number of flow models in flowModel |

`Integer` | `nFMDistributed` | `if modelStructure == Types.ModelStructure.a_v_b then n + 1 else if modelStructure == Types.ModelStructure.a_vb or modelStructure == Types.ModelStructure.av_b then n else n - 1` | |

`Integer` | `nFMLumped` | `if modelStructure == Types.ModelStructure.a_v_b then 2 else 1` | |

`Integer` | `iLumped` | `integer(0.5 * n) + 1` | Index of control volume with representative state if useLumpedPressure |

`Boolean` | `useInnerPortProperties` | `false` | =true to take port properties for flow models from internal control volumes |

`Boolean` | `use_HeatTransfer` | `false` | = true to use the HeatTransfer model |

`Real` | `dxs[n]` | `lengths / sum(lengths)` |

Type | Name | Description |
---|---|---|

`FluidPort_a` | `port_a` | Fluid connector a (positive design flow direction is from port_a to port_b) |

`FluidPort_b` | `port_b` | Fluid connector b (positive design flow direction is from port_a to port_b) |

`HeatPorts_a` | `heatPorts[nNodes]` |

Generated 2018-12-12 12:13:24 EST by *MapleSim*.