modelJunction

Flow splitter with fixed resistance at each port

Extends from Buildings.Fluid.BaseClasses.PartialThreeWayResistance (Flow splitter with partial resistance model at each port).

Information

Model of a flow junction with an optional fixed resistance in each flow leg and an optional mixing volume at the junction.

The pressure drop is implemented using the model Buildings.Fluid.FixedResistances.PressureDrop. If its nominal pressure drop is set to zero, then the pressure drop model will be removed. For example, the pressure drop declaration

  m_flow_nominal={ 0.1, 0.1,  -0.2},
  dp_nominal =   {500,    0, -6000}

would model a flow mixer that has the nominal flow rates and associated pressure drops as shown in the figure below. Note that port_3 is set to negative values. The negative values indicate that at the nominal conditions, fluid is leaving the component.

image

If energyDynamics <> Modelica.Fluid.Types.Dynamics.SteadyState, then at the flow junction, a fluid volume is modeled. The fluid volume is implemented using the model Buildings.Fluid.Delays.DelayFirstOrder. The fluid volume has the size

  V = sum(abs(m_flow_nominal[:])/3)*tau/rho_nominal

where tau is a parameter and rho_nominal is the density of the medium in the volume at nominal condition. Setting energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial can help reducing the size of the nonlinear system of equations.

Parameters

TypeNameDefaultDescription
BooleanhomotopyInitializationtrue= true, use homotopy method
Realn2Flow exponent, n=1 for laminar, n=2 for turbulent
Dynamics › Conservation equations
Modelica.Fluid.Types.DynamicsenergyDynamics (from LumpedVolumeDeclarations)Modelica.Fluid.Types.Dynamics.DynamicFreeInitialType of energy balance: dynamic (3 initialization options) or steady state
Modelica.Fluid.Types.DynamicssubstanceDynamics (from LumpedVolumeDeclarations)energyDynamicsType of independent mass fraction balance: dynamic (3 initialization options) or steady state
Modelica.Fluid.Types.DynamicstraceDynamics (from LumpedVolumeDeclarations)energyDynamicsType of trace substance balance: dynamic (3 initialization options) or steady state
Modelica.Units.SI.MassFlowRatemDyn_flow_nominal (from PartialThreeWayResistance)Nominal mass flow rate for dynamic momentum and energy balance
Advanced › Dynamics
Modelica.Fluid.Types.DynamicsmassDynamics (from LumpedVolumeDeclarations)energyDynamicsType of mass balance: dynamic (3 initialization options) or steady state, must be steady state if energyDynamics is steady state
Initialization
Medium.AbsolutePressurep_start (from LumpedVolumeDeclarations)Medium.p_defaultStart value of pressure
Medium.TemperatureT_start (from LumpedVolumeDeclarations)Medium.T_defaultStart value of temperature
Medium.MassFraction[Medium.nX]X_start (from LumpedVolumeDeclarations)Medium.X_defaultStart value of mass fractions m_i/m
Medium.ExtraProperty[Medium.nC]C_start (from LumpedVolumeDeclarations)fill(0, Medium.nC)Start value of trace substances
Medium.ExtraProperty[Medium.nC]C_nominal (from LumpedVolumeDeclarations)fill(1E-2, Medium.nC)Nominal value of trace substances. (Set to typical order of magnitude.)
Dynamics
RealmSenFac (from LumpedVolumeDeclarations)1Factor for scaling the sensible thermal mass of the volume
Dynamics › Nominal condition
Modelica.Units.SI.Timetau (from PartialThreeWayResistance)10Time constant at nominal flow for dynamic energy and momentum balance
Advanced
Booleanfrom_dp (from PartialThreeWayResistance)true= true, use m_flow = f(dp) else dp = f(m_flow)
Modelica.Fluid.Types.PortFlowDirectionportFlowDirection_1 (from PartialThreeWayResistance)Modelica.Fluid.Types.PortFlowDirection.BidirectionalFlow direction for port_1
Modelica.Fluid.Types.PortFlowDirectionportFlowDirection_2 (from PartialThreeWayResistance)Modelica.Fluid.Types.PortFlowDirection.BidirectionalFlow direction for port_2
Modelica.Fluid.Types.PortFlowDirectionportFlowDirection_3 (from PartialThreeWayResistance)Modelica.Fluid.Types.PortFlowDirection.BidirectionalFlow direction for port_3
BooleanverifyFlowReversal (from PartialThreeWayResistance)false=true, to assert that the flow does not reverse when portFlowDirection_* does not equal Bidirectional
Modelica.Units.SI.MassFlowRatem_flow_small (from PartialThreeWayResistance)Small mass flow rate for checking flow reversal
Booleanlinearizedfalse= true, use linear relation between m_flow and dp for any flow rate
Nominal condition
Modelica.Units.SI.MassFlowRatem_flow_nominalMass flow rate. Set negative at outflowing ports.
Modelica.Units.SI.Pressuredp_nominalPressure drop at nominal mass flow rate, set to zero or negative number at outflowing ports.
Transition to laminar
RealdeltaM0.3Fraction of nominal mass flow rate where transition to turbulent occurs

Connectors

TypeNameDefaultDescription
Modelica.Fluid.Interfaces.FluidPort_aport_1 (from PartialThreeWayResistance)First port, typically inlet
Modelica.Fluid.Interfaces.FluidPort_bport_2 (from PartialThreeWayResistance)Second port, typically outlet
Modelica.Fluid.Interfaces.FluidPort_aport_3 (from PartialThreeWayResistance)Third port, can be either inlet or outlet

Components

TypeNameDefaultDescription
Buildings.Fluid.Interfaces.PartialTwoPortInterfaceres1 (from PartialThreeWayResistance)
Buildings.Fluid.Interfaces.PartialTwoPortInterfaceres2 (from PartialThreeWayResistance)
Buildings.Fluid.Interfaces.PartialTwoPortInterfaceres3 (from PartialThreeWayResistance)
Buildings.Fluid.Delays.DelayFirstOrdervol (from PartialThreeWayResistance)Fluid volume to break algebraic loop

Revisions

  • June 17, 2026, by Michael Wetter:
    Updated implementation to allow a flow coefficient n that is different from 2. This allows use of the model for not fully turbulent flow.
    This is for Buildings, #4620.
  • April 14, 2020, by Michael Wetter:
    Changed homotopyInitialization to a constant.
    This is for IBPSA, #1341.
  • February 26, 2020, by Michael Wetter:
    Changed icon to display its operating state.
    This is for #1294.
  • March 26, 2018 by Filip Jorissen:
    Removed final allowFlowReversal=true from all resistances since this overrides the default simplification when the flow is not bidirectional. This change can lead to smaller algebraic loops. This is for issue 898.
  • December 1, 2016, by Michael Wetter:
    Renamed model from SplitterFixedResistanceDpM to FlowJunction and removed the parameters use_dh, dh and ReC.
    This is for issue 451.
  • October 14, 2016 by Michael Wetter:
    Added to Annex 60 library.
    Updated comment for parameter use_dh.
    This is for issue 451.
  • Removed parameter dynamicBalance that overwrote the setting of energyDynamics and massDynamics. This is for Annex 60, issue 411.
  • February 1, 2012 by Michael Wetter:
    Expanded documentation.
  • August 4, 2011 by Michael Wetter:
    Added final allowFlowReversal=true to all resistances since it is impractical to avoid flow reversal in large flow networks where such a setting may be useful.
  • June 11, 2008 by Michael Wetter:
    Based class on Buildings.Fluid.BaseClasses.PartialThreeWayFixedResistance.
  • July 20, 2007 by Michael Wetter:
    First implementation.