modelDoorDiscretizedOperable

Door model using discretization along height coordinate

Extends from Buildings.Airflow.Multizone.BaseClasses.DoorDiscretized (Door model using discretization along height coordinate).

Information

This model describes the bi-directional air flow through an open door.

To compute the bi-directional flow, the door is discretize along the height coordinate, and uses an orifice equation to compute the flow for each compartment.

The door can be either open or closed, depending on the input signal y. Set y=0 if the door is closed, and y=1 if the door is open. Use the model Buildings.Airflow.Multizone.DoorDiscretizedOpen for a door that is always closed.

Parameters

TypeNameDefaultDescription
Modelica.Units.SI.VelocityvZer (from TwoWayFlowElement)0.001Minimum velocity to prevent zero flow. Recommended: 0.001
IntegernCom (from DoorDiscretized)10Number of compartments for the discretization
Modelica.Units.SI.PressureDifferencedp_turbulent (from DoorDiscretized)0.01Pressure difference where laminar and turbulent flow relation coincide. Recommended: 0.01
Assumptions
BooleanallowFlowReversal1 (from PartialFourPort)true= false to simplify equations, assuming, but not enforcing, no flow reversal for medium 1
BooleanallowFlowReversal2 (from PartialFourPort)true= false to simplify equations, assuming, but not enforcing, no flow reversal for medium 2
Nominal condition
Modelica.Units.SI.MassFlowRatem1_flow_nominal (from PartialFourPortInterface)Nominal mass flow rate
Modelica.Units.SI.MassFlowRatem2_flow_nominal (from PartialFourPortInterface)Nominal mass flow rate
Advanced
Medium1.MassFlowRatem1_flow_small (from PartialFourPortInterface)1E-4*abs(m1_flow_nominal)Small mass flow rate for regularization of zero flow
Medium2.MassFlowRatem2_flow_small (from PartialFourPortInterface)1E-4*abs(m2_flow_nominal)Small mass flow rate for regularization of zero flow
BooleanforceErrorControlOnFlow (from ErrorControl)trueFlag to force error control on m_flow. Set to true if interested in flow rate
Advanced › Diagnostics
Booleanshow_T (from PartialFourPortInterface)false= true, if actual temperature at port is computed
Geometry
Modelica.Units.SI.LengthwOpe (from TwoWayFlowElementBuoyancy)0.9Width of opening
Modelica.Units.SI.LengthhOpe (from TwoWayFlowElementBuoyancy)2.1Height of opening
Modelica.Units.SI.LengthhA (from TwoWayFlowElementBuoyancy)2.7/2Height of reference pressure zone A
Modelica.Units.SI.LengthhB (from TwoWayFlowElementBuoyancy)2.7/2Height of reference pressure zone B
Rating conditions
Modelica.Units.SI.PressureDifferencedpCloRat4Pressure drop at rating condition of closed door
RealCDCloRat1Discharge coefficient at rating conditions of closed door
Closed door
Modelica.Units.SI.AreaLCloEffective leakage area of closed door
RealCDClo0.65Discharge coefficient of closed door
RealmClo0.65Flow exponent for crack of closed door
Open door
RealCDOpe0.65Discharge coefficient of open door
RealmOpe0.5Flow exponent for door of open door

Connectors

TypeNameDefaultDescription
Modelica.Fluid.Interfaces.FluidPort_aport_a1 (from PartialFourPort)Fluid connector a1 (positive design flow direction is from port_a1 to port_b1)
Modelica.Fluid.Interfaces.FluidPort_bport_b1 (from PartialFourPort)Fluid connector b1 (positive design flow direction is from port_a1 to port_b1)
Modelica.Fluid.Interfaces.FluidPort_aport_a2 (from PartialFourPort)Fluid connector a2 (positive design flow direction is from port_a2 to port_b2)
Modelica.Fluid.Interfaces.FluidPort_bport_b2 (from PartialFourPort)Fluid connector b2 (positive design flow direction is from port_a2 to port_b2)
Modelica.Blocks.Interfaces.RealInputyOpening signal, 0=closed, 1=open

Components

TypeNameDefaultDescription
Medium1.MassFlowRatem1_flow (from PartialFourPortInterface)port_a1.m_flowMass flow rate from port_a1 to port_b1 (m1_flow > 0 is design flow direction)
Modelica.Units.SI.PressureDifferencedp1 (from PartialFourPortInterface)port_a1.p - port_b1.pPressure difference between port_a1 and port_b1
Medium2.MassFlowRatem2_flow (from PartialFourPortInterface)port_a2.m_flowMass flow rate from port_a2 to port_b2 (m2_flow > 0 is design flow direction)
Modelica.Units.SI.PressureDifferencedp2 (from PartialFourPortInterface)port_a2.p - port_b2.pPressure difference between port_a2 and port_b2
Medium1.ThermodynamicStatesta_a1 (from PartialFourPortInterface)if allowFlowReversal1 then Medium1.setState_phX(port_a1.p, noEvent(actualStream(port_a1.h_outflow)), noEvent(actualStream(port_a1.Xi_outflow))) else Medium1.setState_phX(port_a1.p, inStream(port_a1.h_outflow), inStream(port_a1.Xi_outflow))Medium properties in port_a1
Medium1.ThermodynamicStatesta_b1 (from PartialFourPortInterface)if allowFlowReversal1 then Medium1.setState_phX(port_b1.p, noEvent(actualStream(port_b1.h_outflow)), noEvent(actualStream(port_b1.Xi_outflow))) else Medium1.setState_phX(port_b1.p, port_b1.h_outflow, port_b1.Xi_outflow)Medium properties in port_b1
Medium2.ThermodynamicStatesta_a2 (from PartialFourPortInterface)if allowFlowReversal2 then Medium2.setState_phX(port_a2.p, noEvent(actualStream(port_a2.h_outflow)), noEvent(actualStream(port_a2.Xi_outflow))) else Medium2.setState_phX(port_a2.p, inStream(port_a2.h_outflow), inStream(port_a2.Xi_outflow))Medium properties in port_a2
Medium2.ThermodynamicStatesta_b2 (from PartialFourPortInterface)if allowFlowReversal2 then Medium2.setState_phX(port_b2.p, noEvent(actualStream(port_b2.h_outflow)), noEvent(actualStream(port_b2.Xi_outflow))) else Medium2.setState_phX(port_b2.p, port_b2.h_outflow, port_b2.Xi_outflow)Medium properties in port_b2
Modelica.Units.SI.VolumeFlowRateVAB_flow (from TwoWayFlowElement)Volume flow rate from A to B if positive
Modelica.Units.SI.VolumeFlowRateVBA_flow (from TwoWayFlowElement)Volume flow rate from B to A if positive
Modelica.Units.SI.MassFlowRatemAB_flow (from TwoWayFlowElement)Mass flow rate from A to B if positive
Modelica.Units.SI.MassFlowRatemBA_flow (from TwoWayFlowElement)Mass flow rate from B to A if positive
Modelica.Units.SI.VelocityvAB (from TwoWayFlowElement)Average velocity from A to B
Modelica.Units.SI.VelocityvBA (from TwoWayFlowElement)Average velocity from B to A
Modelica.Units.SI.Densityrho_a1_inflow (from TwoWayFlowElement)Density of air flowing in from port_a1
Modelica.Units.SI.Densityrho_a2_inflow (from TwoWayFlowElement)Density of air flowing in from port_a2
Modelica.Units.SI.AreaA (from TwoWayFlowElement)Face area
Modelica.Units.SI.PressureDifference[nCom]dpAB (from DoorDiscretized)Pressure difference between compartments
Modelica.Units.SI.Velocity[nCom]v (from DoorDiscretized)Velocity in compartment from A to B
Modelica.Units.SI.VelocityvTop (from DoorDiscretized)Velocity at top of opening from A to B
Modelica.Units.SI.VelocityvBot (from DoorDiscretized)Velocity at bottom of opening from A to B
Modelica.Units.SI.Lengthdh (from DoorDiscretized)hOpe/nComHeight of each compartment

Revisions

  • September 19, 2025, by Michael Wetter:
    Revised implementation to improve computing efficiency if flow exponent is 0.5.
    This is for IBPSA, #2043.
  • June 27, 2018, by Michael Wetter:
    Corrected old parameter annotation.
  • April 11, 2016 by Michael Wetter:
    Corrected wrong hyperlink in documentation for issue 450.
  • January 22, 2016, by Michael Wetter:
    Corrected type declaration of pressure difference. This is for #404.
  • December 14, 2012 by Michael Wetter:
    Renamed protected parameters for consistency with the naming conventions.
  • December 6, 2011 by Michael Wetter:
    Changed the computation of the discharge coefficient to use the nominal density instead of the actual density. Computing sqrt(2/rho) sometimes causes warnings from the solver, as it seems to try negative values for the density during iterative solutions.
  • August 12, 2011 by Michael Wetter:
    Changed model to use the new function Buildings.Airflow.Multizone.BaseClasses.powerLawFixedM.
  • July 20, 2010 by Michael Wetter:
    Migrated model to Modelica 3.1 and integrated it into the Buildings library.
  • February 10, 2005 by Michael Wetter:
    Released first version.