modelIsenthalpic
Extends from ThermofluidStream.Interfaces.SISOFlow (Base Model with basic flow eqautions for SISO).
Information
Isenthalpic process (h_in = h_out) suitable for modeling a valve.
The following quantities can be specified either as parameters or as time-varying input signals:
- Pressure loss:
dpLoss = p_in - p_out - Relative pressure loss:
prLoss = dpLoss / p_in = 1 - p_out/p_in - Outlet pressure:
p_out
Further assumptions for the isenthalpic process:
-
Steady-state conditions:
dE_sys/dt = 0, dm_sys/dt = 0 -
No heat transfer:
Q_flow = 0 -
No net external forces on the system: The control volume is not subject to acceleration as a rigid body, i.e.
\sum F_external = 0. -
Rigid boundary, no expansion work:
w_exp = 0 -
Negligible kinetic and potential energy changes: Differences between inlet and outlet are neglected, i.e.
g*z_2 + 1/2*c_2^2 ≈ g*z_1 + 1/2*c_1^2. -
Constant composition: No change in species mass fractions across the control volume, i.e.
X_in = X_out.
Under these assumptions, an increase in pressure in the direction of the flow
violates the second law of thermodynamics; for example, the pressure must not increase within a valve.
This condition can be enforced with enforcePressureDrop.
Then, a red circle highlights if the prescribed pressure loss would cause a pressure rise in flow direction and is clipped.
If enforcePressureDrop = false, violation only triggers an assert, which is also indicated on the icon layer.
For inverse calculations, enforcePressureDrop = false is recommended, as this simplifies the equation system.
Parameters
| Type | Name | Default | Description |
|---|---|---|---|
| String | instanceName (from DropOfCommonsPlus) | getInstanceName() | Instance name |
| Layout | |||
| Boolean | displayInstanceName (from DropOfCommonsPlus) | dropOfCommons.displayInstanceNames | = true, if instance name is displayed |
| Boolean | displayParameters (from DropOfCommonsPlus) | dropOfCommons.displayParameters | = true, if displaying parameters is enabled |
| Advanced | |||
| Boolean | considerInertance (from SISOFlow) | dropOfCommons.considerInertance | =true, if transient momentum (inertance) term is considered; disable only for advanced use |
| Utilities.Units.Inertance | L (from SISOFlow) | dropOfCommons.L | Inertance |
| StateSelect | m_flowStateSelect (from SISOFlow) | StateSelect.default | State selection for mass flow rate |
| Boolean | clip_p_out (from SISOFlow) | = false, if dr_corr=0 (correction of inertial pressure difference) | |
| Medium.AbsolutePressure | p_min (from SISOFlow) | dropOfCommons.p_min | Minimum steady-state output pressure |
| Initialization › Mass flow rate | |||
| InitializationMethods | initM_flow (from SISOFlow) | ThermofluidStream.Utilities.Types.InitializationMethods.none | Initialization method for mass flow rate |
| SI.MassFlowRate | m_flow_0 (from SISOFlow) | 0 | Initial value for mass flow rate |
| Utilities.Units.MassFlowAcceleration | m_acceleration_0 (from SISOFlow) | 0 | Initial value for derivative of mass flow rate |
| Specification | |||
| OutletSpecification | outletSpec | ThermofluidStream.Idealized.Types.OutletSpecification.Isenthalpic.PressureLoss | Quantity used to define the outlet state |
| ValueSpecification | outletValueSpec | ThermofluidStream.Types.ValueSpecification.Fixed | Specifies whether the quantity is fixed or prescribed |
| SI.PressureDifference | dpLoss_fixed | 0 | Fixed pressure loss (dpLoss = p_in - p_out) |
| Real | prLoss_fixed | 0 | Fixed relative pressure loss (prLoss = dpLoss/p_in) |
| Medium.AbsolutePressure | p_out_fixed | Medium.p_default | Fixed outlet pressure |
| Advanced specification | |||
| Boolean | enforcePressureDrop | false | = true, if pressure drop in flow direction is enforced; use =false for inverse calculations |
| Warnings | |||
| AssertionLevel | assertionLevel | AssertionLevel.warning | Assertion level (pressure drop) |
| Layout › Display parameters | |||
| Boolean | showOutletSpecification | true | = true to show the fixed outlet specification value (either dpLoss_fixed, prLoss_fixed or p_out_fixed) |
Connectors
| Type | Name | Default | Description |
|---|---|---|---|
| Inlet | inlet (from SISOFlow) | ||
| Outlet | outlet (from SISOFlow) | ||
| Modelica.Blocks.Interfaces.RealInput | outletSpec_prescribed | Prescribed outlet specification [SI-units] |
Components
| Type | Name | Default | Description |
|---|---|---|---|
| SI.MassFlowRate | m_flow (from SISOFlow) | inlet.m_flow | Mass flow rate |
| SI.Pressure | dr_corr (from SISOFlow) | Correction of inertial pressure difference | |
| SI.Pressure | dp (from SISOFlow) | Pressure difference | |
| Medium.AbsolutePressure | p_in (from SISOFlow) | Medium.pressure(inlet.state) | Inlet pressure |
| Medium.SpecificEnthalpy | h_in (from SISOFlow) | Medium.specificEnthalpy(inlet.state) | Inlet specific enthalpy |
| Medium.MassFraction[Medium.nXi] | Xi_in (from SISOFlow) | Medium.massFraction(inlet.state) | Inlet mass fractions |
| Medium.AbsolutePressure | p_out (from SISOFlow) | Outlet pressure | |
| Medium.SpecificEnthalpy | h_out (from SISOFlow) | Outlet specific enthalpy | |
| Medium.MassFraction[Medium.nXi] | Xi_out (from SISOFlow) | Outlet mass fractions | |
| Real | isDPLossSetAligned | sign(m_flow*dpLoss_set) | = 1.0, if set pressure loss is aligned with flow direction |
| Real | isDPLossAligned | sign(m_flow*dpLoss) | = 1.0, if pressure loss is aligned with flow direction |
| SI.PressureDifference | dpLoss | p_in - p_out | Pressure loss |
| SI.PressureDifference | dpLoss_set | Set pressure loss | |
| Real | prLoss | dpLoss/p_in | Relative pressure loss |
| Real | prLoss_set | Set relative pressure loss | |
| SI.Pressure | p_out_set | Set outlet pressure |
Revisions
-
2026-08, by Silvan Keim (silvan.keim@dlr.de):
Improved icon. -
2026-06, by Raphael Gebhart (raphael.gebhart@dlr.de):
The default value ofenforcePressureDropwas changed fromtruetofalseto improve numerical robustness in inverse calculations. Models that require the previous behavior must now explicitly setenforcePressureDrop=true. -
2026, by Raphael Gebhart (raphael.gebhart@dlr.de):
Initial version.