modelIsochoric

Stationary flow representation of isochoric cycle process

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:

  1. 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 rate Q_flow is computed from the given specific internal energy difference du and mean mass flow rate m_flow: Q_flow = m_flow*du.
  2. 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 rate Q_flow and specific internal energy difference du: m_flow = Q_flow/du. To obtain an overall balanced system, a locally underdetermined component, such as Sink_free , must be connected.
  3. 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 difference du is calculated from the given mass flow rate m_flow and heat flow rate Q_flow: du = Q_flow/m_flow. Determining the outlet state (p,h) from du introduces one implicit nonlinear equation. The parameter dp_start is used to initialize the nonlinear equation solver iteration.
  4. 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 rate Q_flow and the specific internal energy difference du are unknown, and the equation Q_flow = m_flow*du cannot 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 = 0 and dm_sys/dt = 0.
  • The mass flow rate m_flow represents 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

TypeNameDefaultDescription
StringinstanceName (from DropOfCommonsPlus)getInstanceName()Instance name
StringnamegetInstanceName()Instance name
BooleanisCyclesystemSpec == ThermofluidStream.Idealized.Types.SystemModel.Cycle= true, if systemSpec == Cycle; auxiliary variable
BooleaniconIsHeatingiconType == ThermofluidStream.Idealized.Types.Icons.HeatTransfer.Heating= true, if iconType == Heating; auxiliary variable
Medium.SpecificEnergyeps_duModelica.Constants.eps
SI.MassFlowRateeps_m_flowModelica.Constants.eps
SI.HeatFlowRateeps_Q_flowModelica.Constants.eps
Layout
BooleandisplayInstanceName (from DropOfCommonsPlus)dropOfCommons.displayInstanceNames= true, if instance name is displayed
BooleandisplayParameters (from DropOfCommonsPlus)dropOfCommons.displayParameters= true, if displaying parameters is enabled
Advanced
BooleanconsiderInertance (from SISOFlow)dropOfCommons.considerInertance=true, if transient momentum (inertance) term is considered; disable only for advanced use
Utilities.Units.InertanceL (from SISOFlow)dropOfCommons.LInertance
StateSelectm_flowStateSelect (from SISOFlow)StateSelect.defaultState selection for mass flow rate
Booleanclip_p_out (from SISOFlow)= false, if dr_corr=0 (correction of inertial pressure difference)
Medium.AbsolutePressurep_min (from SISOFlow)dropOfCommons.p_minMinimum steady-state output pressure
Initialization › Mass flow rate
InitializationMethodsinitM_flow (from SISOFlow)ThermofluidStream.Utilities.Types.InitializationMethods.noneInitialization method for mass flow rate
SI.MassFlowRatem_flow_0 (from SISOFlow)0Initial value for mass flow rate
Utilities.Units.MassFlowAccelerationm_acceleration_0 (from SISOFlow)0Initial value for derivative of mass flow rate
Specification
IconTypeiconTypeThermofluidStream.Idealized.Types.Icons.HeatTransfer.HeatingDefines the initial icon prior to simulation
OutletSpecificationoutletSpecThermofluidStream.Idealized.Types.OutletSpecification.Isochoric.TemperatureDifferenceQuantity used to define the outlet state
ValueSpecificationoutletValueSpecThermofluidStream.Types.ValueSpecification.FixedSpecifies whether the quantity is fixed or prescribed
SI.TemperatureDifferencedT_fixed0Fixed temperature difference (dT = T_out - T_in) (OM-Bug)
Medium.TemperatureT_out_fixedMedium.T_defaultFixed outlet temperature
Advanced specification
HeatFlowSignalheatFlowSignalThermofluidStream.Idealized.Types.EnergyFlowSignalMode.DisabledHeat flow signal configuration
SystemSpecificationsystemSpecThermofluidStream.Idealized.Types.SystemModel.CycleSelect whether the system is steady-flow (open) or a closed cycle (periodic)
BooleanspecifyOutlettrue= true, if the outlet state is explicitly specified
Warnings
AssertionLevelassertionLevelAssertionLevel.warningAssertion level
Nonlinear iteration (specifyOutlet == false and heatFlowSignal == Input)
SI.PressureDifferencedp_start0Pressure difference start value (for nonlinear iteration)
Layout › Display parameters
BooleanshowOutletSpecificationtrue= true to show the fixed outlet specification value (either dT_fixed or T_out_fixed)
BooleanshowHeatFlowDirectiontrue= true to show the actual heat flow direction

Connectors

TypeNameDefaultDescription
Inletinlet (from SISOFlow)
Outletoutlet (from SISOFlow)
Modelica.Blocks.Interfaces.RealInputoutletSpec_prescribedPrescribed outlet specification [SI-units]
EnergyFlow.Interfaces.EnergyFlowInputQ_flow_inQ_flowHeat flow rate, dircted into the system [W]
EnergyFlow.Interfaces.EnergyFlowOutputQ_flow_out-Q_flowHeat flow rate, directed out of the system [W]
EnergyFlow.Interfaces.EnergyFlowOutputP_out-PPower, directed out of the system [W]

Components

TypeNameDefaultDescription
SI.MassFlowRatem_flow (from SISOFlow)inlet.m_flowMass flow rate
SI.Pressuredr_corr (from SISOFlow)Correction of inertial pressure difference
SI.Pressuredp (from SISOFlow)Pressure difference
Medium.AbsolutePressurep_in (from SISOFlow)Medium.pressure(inlet.state)Inlet pressure
Medium.SpecificEnthalpyh_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.AbsolutePressurep_out (from SISOFlow)Outlet pressure
Medium.SpecificEnthalpyh_out (from SISOFlow)Outlet specific enthalpy
Medium.MassFraction[Medium.nXi]Xi_out (from SISOFlow)Outlet mass fractions
Medium.TemperatureT_inMedium.temperature(inlet.state)Inlet state temperature
Medium.TemperatureT_outOutlet state temperature
SI.TemperatureDifferencedTT_out - T_inTemperature difference (T_out - T_in)
Medium.SpecificEnergyduu_out - u_inDifference in specific internal energy (u_out - u_in)
Medium.SpecificEnergyu_inh_in - p_in/rhoInlet state specific internal energy
Medium.SpecificEnergyu_outh_out - p_out/rhoOutlet state specific internal energy
SI.SpecificEnergyw_p(p_out - p_in)/rhoSpecific pressure work (dp/rho) of a steady flow system
Medium.DensityrhoMedium.density(inlet.state)Density (inlet = outlet)
SI.HeatFlowRateQ_flowHeat flow rate
SI.PowerPPower
RealsingularityRegime=+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.