modelIsochoric
Extends from ThermofluidStream.Interfaces.SISOFlow (Base Model with basic flow eqautions for SISO).
Information
Isochoric process (density rho_in = rho_out, specific volume v_in = v_out) mainly
suitable for representing stationary-flow representations of isochoric periodic heat transfer in a closed cycle system (systemSpec==Cycle).
Inlet amd Outlet refer to the initial and final state of the process. Alternatively it can be used to represent a pseudo stationary-flow isochoric process (systemSpec==Flow).
The following quantities can be specified either as parameters or as time-varying input signals:
- Temperature difference:
dT = T_out - T_in - Outlet temperature:
T_out
Specifying the outlet specific enthalpy h_out, specific enthalpy difference dh,
outlet specific internal energy u_out or specific internal energy difference du
would create a system of nonlinear equations, as there is no function
Medium.setState_dhX(state) or Medium.setState_duX(state) available. This feature is therefore currently not included.
The heat flow rate can optionally be an EnergyFlowInput or an
EnergyFlowOutput; see
UsersGuide.EnergyFlow
for details.
During simulation, the physical positive direction of the heat flow rate is visualized on the icon layer
by a red arrow.
The model supports four possible operating modes:
-
If the outlet state is set and the heat flow rate is not an input,
the model is balanced.
In this case, the heat flow rateQ_flowis computed from the given specific internal energy differenceduand mean mass flow ratem_flow:Q_flow = m_flow*du. -
If the outlet state is set and the heat flow rate is an input,
the model is locally overdetermined.
This condition is indicated by a plus symbol on the icon layer. The mean mass flow rate is then computed from the given heat flow rateQ_flowand specific internal energy differencedu:m_flow = Q_flow/du. To obtain an overall balanced system, a locally underdetermined component, such as Sink_free , must be connected. -
If the outlet state is not set and the heat flow rate is an input,
the model is balanced.
In this case, the specific internal energy differenceduis calculated from the given mass flow ratem_flowand heat flow rateQ_flow:du = Q_flow/m_flow. Determining the outlet state(p,h)fromduintroduces one implicit nonlinear equation. The parameterdp_startis used to initialize the nonlinear equation solver iteration. -
If the outlet state is not set and the heat flow rate is not an input,
the model is not permissible.
In this case, both the heat flow rateQ_flowand the specific internal energy differenceduare unknown, and the equationQ_flow = m_flow*ducannot be balanced. This condition is indicated by a prominent red lightning symbol.
Assumptions for the isochoric process (closed system, cyclic operation, systemSpec == Cycle):
-
Cycle-averaged steady state: Over multiple consecutive cycles, the system satisfies
dE_sys/dt = 0anddm_sys/dt = 0. -
The mass flow rate
m_flowrepresents the cycle-averaged mass throughput of the system. -
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. -
No boundary work:
w_exp = p*dv = 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.
Assumptions for the isochoric process (open system, steady-flow, systemSpec == Flow):
-
Steady-state conditions:
dE_sys/dt = 0, dm_sys/dt = 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. -
Isochoric pressure work (pseudo shaft work):
w_p = v*dp. -
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.
Parameters
| Type | Name | Default | Description |
|---|---|---|---|
| String | instanceName (from DropOfCommonsPlus) | getInstanceName() | Instance name |
| String | name | getInstanceName() | Instance name |
| Boolean | isCycle | systemSpec == ThermofluidStream.Idealized.Types.SystemModel.Cycle | = true, if systemSpec == Cycle; auxiliary variable |
| Boolean | iconIsHeating | iconType == ThermofluidStream.Idealized.Types.Icons.HeatTransfer.Heating | = true, if iconType == Heating; auxiliary variable |
| Medium.SpecificEnergy | eps_du | Modelica.Constants.eps | |
| SI.MassFlowRate | eps_m_flow | Modelica.Constants.eps | |
| SI.HeatFlowRate | eps_Q_flow | Modelica.Constants.eps | |
| 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 | |||
| IconType | iconType | ThermofluidStream.Idealized.Types.Icons.HeatTransfer.Heating | Defines the initial icon prior to simulation |
| OutletSpecification | outletSpec | ThermofluidStream.Idealized.Types.OutletSpecification.Isochoric.TemperatureDifference | Quantity used to define the outlet state |
| ValueSpecification | outletValueSpec | ThermofluidStream.Types.ValueSpecification.Fixed | Specifies whether the quantity is fixed or prescribed |
| SI.TemperatureDifference | dT_fixed | 0 | Fixed temperature difference (dT = T_out - T_in) (OM-Bug) |
| Medium.Temperature | T_out_fixed | Medium.T_default | Fixed outlet temperature |
| Advanced specification | |||
| HeatFlowSignal | heatFlowSignal | ThermofluidStream.Idealized.Types.EnergyFlowSignalMode.Disabled | Heat flow signal configuration |
| SystemSpecification | systemSpec | ThermofluidStream.Idealized.Types.SystemModel.Cycle | Select whether the system is steady-flow (open) or a closed cycle (periodic) |
| Boolean | specifyOutlet | true | = true, if the outlet state is explicitly specified |
| Warnings | |||
| AssertionLevel | assertionLevel | AssertionLevel.warning | Assertion level |
| Nonlinear iteration (specifyOutlet == false and heatFlowSignal == Input) | |||
| SI.PressureDifference | dp_start | 0 | Pressure difference start value (for nonlinear iteration) |
| Layout › Display parameters | |||
| Boolean | showOutletSpecification | true | = true to show the fixed outlet specification value (either dT_fixed or T_out_fixed) |
| Boolean | showHeatFlowDirection | true | = true to show the actual heat flow direction |
Connectors
| Type | Name | Default | Description |
|---|---|---|---|
| Inlet | inlet (from SISOFlow) | ||
| Outlet | outlet (from SISOFlow) | ||
| Modelica.Blocks.Interfaces.RealInput | outletSpec_prescribed | Prescribed outlet specification [SI-units] | |
| EnergyFlow.Interfaces.EnergyFlowInput | Q_flow_in | Q_flow | Heat flow rate, dircted into the system [W] |
| EnergyFlow.Interfaces.EnergyFlowOutput | Q_flow_out | -Q_flow | Heat flow rate, directed out of the system [W] |
| EnergyFlow.Interfaces.EnergyFlowOutput | P_out | -P | Power, directed out of the system [W] |
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 | |
| Medium.Temperature | T_in | Medium.temperature(inlet.state) | Inlet state temperature |
| Medium.Temperature | T_out | Outlet state temperature | |
| SI.TemperatureDifference | dT | T_out - T_in | Temperature difference (T_out - T_in) |
| Medium.SpecificEnergy | du | u_out - u_in | Difference in specific internal energy (u_out - u_in) |
| Medium.SpecificEnergy | u_in | h_in - p_in/rho | Inlet state specific internal energy |
| Medium.SpecificEnergy | u_out | h_out - p_out/rho | Outlet state specific internal energy |
| SI.SpecificEnergy | w_p | (p_out - p_in)/rho | Specific pressure work (dp/rho) of a steady flow system |
| Medium.Density | rho | Medium.density(inlet.state) | Density (inlet = outlet) |
| SI.HeatFlowRate | Q_flow | Heat flow rate | |
| SI.Power | P | Power | |
| Real | singularityRegime | =+1.0 for du:=Q_flow/m_flow -> infty, =-1 for m_flow:=Q_flow/du -> infty, =0.0 else |
Revisions
-
2026-08, by Silvan Keim (silvan.keim@dlr.de):
Improved icon. -
2026, by Raphael Gebhart (raphael.gebhart@dlr.de):
Initial version.