modelDoorDiscretizedOpen
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. An orifice equation is used to compute the flow for each compartment.
In this model, the door is always open. Use the model Buildings.Airflow.Multizone.DoorDiscretizedOperable for a door that can either be open or closed.
Parameters
| Type | Name | Default | Description |
|---|---|---|---|
| Modelica.Units.SI.Velocity | vZer (from TwoWayFlowElement) | 0.001 | Minimum velocity to prevent zero flow. Recommended: 0.001 |
| Integer | nCom (from DoorDiscretized) | 10 | Number of compartments for the discretization |
| Modelica.Units.SI.PressureDifference | dp_turbulent (from DoorDiscretized) | 0.01 | Pressure difference where laminar and turbulent flow relation coincide. Recommended: 0.01 |
| Assumptions | |||
| Boolean | allowFlowReversal1 (from PartialFourPort) | true | = false to simplify equations, assuming, but not enforcing, no flow reversal for medium 1 |
| Boolean | allowFlowReversal2 (from PartialFourPort) | true | = false to simplify equations, assuming, but not enforcing, no flow reversal for medium 2 |
| Nominal condition | |||
| Modelica.Units.SI.MassFlowRate | m1_flow_nominal (from PartialFourPortInterface) | Nominal mass flow rate | |
| Modelica.Units.SI.MassFlowRate | m2_flow_nominal (from PartialFourPortInterface) | Nominal mass flow rate | |
| Advanced | |||
| Medium1.MassFlowRate | m1_flow_small (from PartialFourPortInterface) | 1E-4*abs(m1_flow_nominal) | Small mass flow rate for regularization of zero flow |
| Medium2.MassFlowRate | m2_flow_small (from PartialFourPortInterface) | 1E-4*abs(m2_flow_nominal) | Small mass flow rate for regularization of zero flow |
| Boolean | forceErrorControlOnFlow (from ErrorControl) | true | Flag to force error control on m_flow. Set to true if interested in flow rate |
| Advanced › Diagnostics | |||
| Boolean | show_T (from PartialFourPortInterface) | false | = true, if actual temperature at port is computed |
| Geometry | |||
| Modelica.Units.SI.Length | wOpe (from TwoWayFlowElementBuoyancy) | 0.9 | Width of opening |
| Modelica.Units.SI.Length | hOpe (from TwoWayFlowElementBuoyancy) | 2.1 | Height of opening |
| Modelica.Units.SI.Length | hA (from TwoWayFlowElementBuoyancy) | 2.7/2 | Height of reference pressure zone A |
| Modelica.Units.SI.Length | hB (from TwoWayFlowElementBuoyancy) | 2.7/2 | Height of reference pressure zone B |
| Orifice characteristics | |||
| Real | CD | 0.65 | Discharge coefficient |
Connectors
| Type | Name | Default | Description |
|---|---|---|---|
| Modelica.Fluid.Interfaces.FluidPort_a | port_a1 (from PartialFourPort) | Fluid connector a1 (positive design flow direction is from port_a1 to port_b1) | |
| Modelica.Fluid.Interfaces.FluidPort_b | port_b1 (from PartialFourPort) | Fluid connector b1 (positive design flow direction is from port_a1 to port_b1) | |
| Modelica.Fluid.Interfaces.FluidPort_a | port_a2 (from PartialFourPort) | Fluid connector a2 (positive design flow direction is from port_a2 to port_b2) | |
| Modelica.Fluid.Interfaces.FluidPort_b | port_b2 (from PartialFourPort) | Fluid connector b2 (positive design flow direction is from port_a2 to port_b2) |
Components
| Type | Name | Default | Description |
|---|---|---|---|
| Medium1.MassFlowRate | m1_flow (from PartialFourPortInterface) | port_a1.m_flow | Mass flow rate from port_a1 to port_b1 (m1_flow > 0 is design flow direction) |
| Modelica.Units.SI.PressureDifference | dp1 (from PartialFourPortInterface) | port_a1.p - port_b1.p | Pressure difference between port_a1 and port_b1 |
| Medium2.MassFlowRate | m2_flow (from PartialFourPortInterface) | port_a2.m_flow | Mass flow rate from port_a2 to port_b2 (m2_flow > 0 is design flow direction) |
| Modelica.Units.SI.PressureDifference | dp2 (from PartialFourPortInterface) | port_a2.p - port_b2.p | Pressure difference between port_a2 and port_b2 |
| Medium1.ThermodynamicState | sta_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.ThermodynamicState | sta_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.ThermodynamicState | sta_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.ThermodynamicState | sta_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.VolumeFlowRate | VAB_flow (from TwoWayFlowElement) | Volume flow rate from A to B if positive | |
| Modelica.Units.SI.VolumeFlowRate | VBA_flow (from TwoWayFlowElement) | Volume flow rate from B to A if positive | |
| Modelica.Units.SI.MassFlowRate | mAB_flow (from TwoWayFlowElement) | Mass flow rate from A to B if positive | |
| Modelica.Units.SI.MassFlowRate | mBA_flow (from TwoWayFlowElement) | Mass flow rate from B to A if positive | |
| Modelica.Units.SI.Velocity | vAB (from TwoWayFlowElement) | Average velocity from A to B | |
| Modelica.Units.SI.Velocity | vBA (from TwoWayFlowElement) | Average velocity from B to A | |
| Modelica.Units.SI.Density | rho_a1_inflow (from TwoWayFlowElement) | Density of air flowing in from port_a1 | |
| Modelica.Units.SI.Density | rho_a2_inflow (from TwoWayFlowElement) | Density of air flowing in from port_a2 | |
| Modelica.Units.SI.Area | A (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.Velocity | vTop (from DoorDiscretized) | Velocity at top of opening from A to B | |
| Modelica.Units.SI.Velocity | vBot (from DoorDiscretized) | Velocity at bottom of opening from A to B | |
| Modelica.Units.SI.Length | dh (from DoorDiscretized) | hOpe/nCom | Height 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. -
January 8, 2019, by Michael Wetter:
Moved parameterCDfrom Buildings.Airflow.Multizone.BaseClasses.DoorDiscretized to Buildings.Airflow.Multizone.DoorDiscretizedOpen.
This is for #971. -
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. Computingsqrt(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.