modelWindow

Multipane window

Extends from IDEAS.Buildings.Components.Interfaces.PartialSurface (Partial model for building envelope component).

Information

This model should be used to model windows or other transparant surfaces. See IDEAS.Buildings.Components.Interfaces.PartialSurface for equations, options, parameters, validation and dynamics that are common for all surfaces and windows.

Typical use and important parameters

Parameter A is the total window surface area, i.e. the sum of the frame surface area and the glazing surface area.

Parameter frac may be used to define the surface area of the frame as a fraction of A.

Parameter glazing must be used to define the glass properties. It contains information about the number of glass layers, their thickness, thermal properties and emissivity.

Optional parameter briType may be used to compute additional line losses along the edges of the glazing.

Optional parameter fraType may be used to define the frame thermal properties. If fraType = None then the frame is assumed to be perfectly insulating.

Optional parameter shaType may be used to define the window shading properties.

The parameter n may be used to scale the window to n identical windows. For example, if a wall has 10 identical windows with identical shading, this parameter can be used to simulate 10 windows by scaling the model of a single window.

The parameter tab Airflow lists optional parameters for adding a self regulating trickle vent.

The RealExpression AExp, which is connected to propsBusInt, outputs the total window area A instead of only the area of glass A_glass. This partially compensates for the fact that radiation from/to the frame is not included seperately in the current model implementation.

Validation

To verify the U-value of your glazing system implementation, see IDEAS.Buildings.Components.Validations.WindowEN673

Parameters

TypeNameDefaultDescription
IntegerincOpt (from PartialSurface)4Tilt angle option from simInfoManager, or custom using inc
Modelica.Units.SI.Angleinc (from PartialSurface)sim.incOpts[incOpt]Custom inclination (tilt) angle of the wall, default wall
IntegeraziOpt (from PartialSurface)5Azimuth angle option from simInfoManager, or custom using azi
Modelica.Units.SI.Angleazi (from PartialSurface)sim.aziOpts[aziOpt]Custom azimuth angle of the wall, default south
Modelica.Units.SI.AreaA (from PartialSurface)Component surface area
RealnWin (from PartialSurface)1Use this factor to scale the component to nWin identical components
Realq50_internal (from PartialSurface)Surface air tightness
Modelica.Units.SI.Lengthhzone_a (from PartialSurface)
Modelica.Units.SI.LengthhAbs_floor_a (from PartialSurface)
Modelica.Units.SI.LengthHabs_surf (from PartialSurface)hAbs_floor_a + hRelSurfBot_a + (hVertical/2)Absolute height of the middle of the surface, can be used to check the heights after initialisation
Modelica.Units.SI.LengthhWinmax(0.1, sqrt(A))Window height, including frame
Realfrac0.15Area fraction of the window frame
IDEAS.Buildings.Data.Frames.NonefraType
IDEAS.Buildings.Data.WindPressureCoeff.Lowrise_Square_ExposedCp_table
Advanced › Design power
Modelica.Units.SI.PowerQTra_design (from PartialSurface)Design heat losses at reference temperature of the boundary space
Dynamics › Initial condition
Modelica.Units.SI.TemperatureT_start (from PartialSurface)293.15Start temperature for each of the layers
Convection
BooleanlinIntCon_a (from PartialSurface)sim.linIntCon= true, if convective heat transfer should be linearised
Modelica.Units.SI.TemperatureDifferencedT_nominal_a (from PartialSurface)1Nominal temperature difference used for linearisation, negative temperatures indicate the solid is colder
BooleanlinExtConsim.linExtCon= true, if exterior convective heat transfer should be linearised (uses average wind speed)
Dynamics › Equations
Modelica.Fluid.Types.DynamicsenergyDynamics (from PartialSurface)Modelica.Fluid.Types.Dynamics.FixedInitialStatic (steady state) or transient (dynamic) thermal conduction model
IDEAS.Buildings.Components.Interfaces.WindowDynamicsTypewindowDynamicsTypeIDEAS.Buildings.Components.Interfaces.WindowDynamicsType.TwoType of dynamics for glazing and frame: using zero, one combined or two states
RealfraCfracRatio of frame and glazing thermal masses
Airflow › Airtightness
Booleanuse_custom_q50 (from PartialSurface)falsecheck to disable the default q50 computation and to assign a custom q50 value
Realcustom_q50 (from PartialSurface)2Surface air tightness
Vertical position (important if interZonalAirFlowType is TwoPorts)
Modelica.Units.SI.LengthhVertical (from PartialSurface)if IDEAS.Utilities.Math.Functions.isAngle(incInt, IDEAS.Types.Tilt.Floor) or IDEAS.Utilities.Math.Functions.isAngle(incInt, IDEAS.Types.Tilt.Ceiling) then 0 else hzone_aVertical surface height, height of the surface projected to the vertical (e.g. 0 for floors and ceilings)
Modelica.Units.SI.LengthhRelSurfBot_a (from PartialSurface)if IDEAS.Utilities.Math.Functions.isAngle(incInt, IDEAS.Types.Tilt.Ceiling) then hzone_a else 0Height between the lowest point of the surface (bottom) and the floor level of the zone connected at propsBus_a (e.g. 0 for walls at floor level and floors.)
Radiation
BooleanlinExtRadsim.linExtRadWin= true, if exterior radiative heat transfer should be linearised
Advanced › Icon
BooleancontrolledshaType.controlled = true if shaType has a control input (see e.g. screen). Can be set to false manually to force removal of input icon.
Airflow › Wind Pressure
Real[:,:]coeffsCpif incInt <= Modelica.Constants.pi/18 then Cp_table.Cp_Roof_0_10 elseif incInt <= Modelica.Constants.pi/6 then Cp_table.Cp_Roof_11_30 elseif inc <= Modelica.Constants.pi/4 then Cp_table.Cp_Roof_30_45 elseif IDEAS.Utilities.Math.Functions.isAngle(incInt, Modelica.Constants.pi) then Cp_table.Cp_Floor else Cp_table.Cp_WallCp at different angles of attack, default the correct table will be selected from Cp_table based on the surface tilt
Booleanuse_custom_Csfalseif checked, Cs will be used in stead of the default related to the interzonal airflow type
Booleanuse_sim_Cssim.use_sim_Csif checked, the default Cs of each surface in the building is sim.Cs
RealCssim.CsWind speed modifier
Airflow › Wind
RealHabsAbsolute height at the middle of the window
Airflow › Operable window
Booleanuse_operable_windowfalse= true, to enable window control input when using sim.interZonalAirFlowType == IDEAS.BoundaryConditions.Types.InterZonalAirFlow.TwoPorts
Airflow › Trickle vent
Booleanuse_trickle_ventfalse= true, to enable trickle vent
Modelica.Units.SI.MassFlowRatem_flow_nominal0Nominal mass flow rate of trickle vent
Modelica.Units.SI.PressureDifferencedp_nominal5Pressure drop at nominal mass flow rate of trickle vent
Booleanuse_trickle_vent_controlfalse=true, to enable trickle vent control input
Modelica.Units.SI.LengthhTrickleVenthVertical + hRelSurfBot_avertical distance between the floor of the zone (top) and the trickle vent
Advanced › Frame
Modelica.Units.SI.LengthbriLen2*hWin + 2*A/hWinThermal bridge length, if present

Connectors

TypeNameDefaultDescription
IDEAS.Buildings.Components.Interfaces.ZoneBuspropsBus_a (from PartialSurface)If inc = Floor, then propsbus_a should be connected to the zone above this floor. If inc = ceiling, then propsbus_a should be connected to the zone below this ceiling. If component is an outerWall, porpsBus_a should be connect to the zone.
Modelica.Blocks.Interfaces.RealInputCtrlControl signal for screen between 0 and 1, 1 is fully closed
Modelica.Blocks.Interfaces.RealInputy_trickleVentControl signal for trickle vent between 0 and 1, 1 is fully opened
Modelica.Blocks.Interfaces.RealInputy_windowControl signal for window opening between 0 and 1, i.e. 1 is fully opened

Components

TypeNameDefaultDescription
IDEAS.Buildings.Data.Interfaces.Glazingglazing
IDEAS.BoundaryConditions.SimInfoManagersim (from PartialSurface)Simulation information manager for climate data
IDEAS.Buildings.Components.BaseClasses.ConvectiveHeatTransfer.InteriorConvectionintCon_a (from PartialSurface)Convective heat transfer correlation for port_a
IDEAS.Buildings.Components.BaseClasses.ConductiveHeatTransfer.MultiLayerlayMul (from PartialSurface)Multilayer component for simulating walls, windows and other surfaces
Modelica.Units.SI.MassFlowRatemBA_flow_1 (from PartialSurface)crackOrOperableDoor.m1_flowFlow outwards relative to propsBus_a, part 1
Modelica.Units.SI.MassFlowRatemBA_flow_2 (from PartialSurface)-crackOrOperableDoor.m2_flowFlow outwards relative to propsBus_a, part 2
Q50_parameterToConnectorq50_zone (from PartialSurface)
IDEAS.Airflow.Multizone.CrackOrOperableDoorcrackOrOperableDoor (from PartialSurface)
Modelica.Blocks.Sources.RealExpressionAExp (from PartialSurface)Area expression
Modelica.Blocks.Routing.BooleanPassThroughuse_custom_q50PassThrough (from PartialSurface)
Modelica.Blocks.Routing.RealPassThroughv50PassThrough (from PartialSurface)
IDEAS.Buildings.Components.Shading.NoneshaType
Modelica.Blocks.Math.GaingainDirGain for direct solar irradiation
Modelica.Blocks.Math.GaingainDifGain for diffuse solar irradiation
IDEAS.Airflow.Multizone.TrickleVenttrickleVentTrickle vent. Height assumed at the top of the window but adaptable
IDEAS.Buildings.Components.BaseClasses.RadiativeHeatTransfer.SwWindowResponsesolWin
IDEAS.Buildings.Components.BaseClasses.ConvectiveHeatTransfer.InteriorConvectioniConFraconvective surface heat transimission on the interior side of the wall
Modelica.Thermal.HeatTransfer.Components.ThermalConductorlayFra
BoundaryConditions.SolarIrradiation.RadSolDataradSolData
Modelica.Blocks.Sources.RealExpressiony_window_truncTruncated control signal
Modelica.Units.SI.MassFlowRatemBA_flow_TrVenttrickleVent.m_flowFlow through trickle-vent outwards relative to propsBus_a

Revisions

  • August 18, 2025, by Klaas De Jonge:
    Changed inc to incInt where necessary.
  • February 4, 2025, by Jelger Jansen:
    Added Modelica.Units. to one or multiple parameter(s) due to the removal of import in IDEAS/package.mo. See #1415 .
  • November 7, 2024, by Anna Dell'Isola and Jelger Jansen:
    Update calculation of transmission design losses. See #1337
  • October 30, 2024, by Klaas De Jonge:
    Modifications for stack-effect interzonal airflow heights and wind pressure profiles.
  • Februari 18, 2024, by Filip Jorissen:
    Modifications for supporting trickle vents and interzonal airflow.
  • September 7, 2023, by Filip Jorissen:
    Created shading surface temperature dependency on mass flow rate.
  • July 17, 2023, by Filip Jorissen:
    Using A instead of A_glass to compute air tightness parameters. Added controllable trickle vent and operable window.
  • May 22, 2022, by Filip Jorissen:
    Fixed Modelica specification compatibility issue. See #1254
  • September 21, 2021 by Filip Jorissen:
    Added trickle vent support. #1232.
  • August 12, 2020 by Filip Jorissen:
    No longer using connector and initial equation for epsSw. #1162.
  • July 2020, 2020, by Filip Jorissen:
    Added a list of default glazing systems. See #1114
  • April 26, 2020, by Filip Jorissen:
    Refactored SolBus to avoid many instances in PropsBus. See #1131
  • November 28, 2019, by Ian Beausoleil-Morrison:
    inc and azi of surface now passed as parameters to ExteriorConvection. See #1089
  • December 2, 2019, by Filip Jorissen:
    Split heat capacitor to interior and exterior part to avoid non-linear algebraic loops. #1092.
  • October 13, 2019, by Filip Jorissen:
    Refactored the parameter definition of inc and azi by adding the option to use radio buttons. See #1067
  • September 9, 2019, by Filip Jorissen:
    Added checkCoatings for issue #1038.
  • August 10, 2018 by Damien Picard:
    Add scaling to propsBus_a to allow simulation of n windows instead of 1 See #888.
  • January 21, 2018 by Filip Jorissen:
    Changed implementation such that control input is visible. See #761.
  • May 26, 2017 by Filip Jorissen:
    Revised implementation for renamed ports HDirTil etc. See #735.
  • March 6, 2017, by Filip Jorissen:
    Added option for using 'normal' dynamics for the window glazing. Removed the option for having a combined state for window and frame this this is non-physical. This is for #678.
  • January 10, 2017, by Filip Jorissen:
    Removed declaration of A since this is now declared in IDEAS.Buildings.Components.Interfaces.PartialSurface. This is for #609.
  • January 10, 2017 by Filip Jorissen:
    Set linExtRad = sim.linExtRadWin. See #615.
  • December 19, 2016, by Filip Jorissen:
    Added solar irradiation on window frame.
  • December 19, 2016, by Filip Jorissen:
    Removed briType, which had default value LineLoss. briType is now part of the Frame model and has default value None.
  • February 10, 2016, by Filip Jorissen and Damien Picard:
    Revised implementation: cleaned up connections and partials.
  • December 17, 2015, Filip Jorissen:
    Added thermal connection between frame and glazing state. This is required for decoupling steady state thermal dynamics without adding a second state for the window.
  • July 14, 2015, Filip Jorissen:
    Removed second shading device since a new partial was created for handling this.
  • June 14, 2015, Filip Jorissen:
    Adjusted implementation for computing conservation of energy.
  • February 10, 2015 by Filip Jorissen:
    Adjusted implementation for grouping of solar calculations.