modelSimInfoManager

Simulation information manager for handling time and climate data required in each for simulation.

Extends from BoundaryConditions.Interfaces.PartialSimInfoManager (Partial providing structure for SimInfoManager).

Information

The SimInfoManager manages all simulation information. It loads TMY3 weather data files and applies transformations for computing the solar irradiance on the zone surfaces.

Typical use and important parameters

Parameters filNam and filDir can be used to set the path to the TMY3 weather file. This file should include the latitude, longitude and time zone corresponding to the weather file. See the included weather files for the correct format.

Options

  • IDEAS contains an efficient implementation for computing the solar incidence angles on surfaces that are part of large building models. When a model has many parallel surfaces the default implementation computes the solar irradiance separately for each of these surfaces, while the result for all of them should be the same. The SimInfoManager computes five default orientations (azimuth angels): south, west, east, north and horizontal. Whenever a surface needs the solar incidence angels for one of these orientations these precomputed values will be used. The default orientations can be changed using parameters incAndAziInBus. incAndAziInBus determines for which inclination and azimuth the solar radiation is pre-computed.
  • Conservation of energy within the building can be checked by setting computeConservationOfEnergy=true. Conservation of energy is checked by computing the internal energy for all components that are within "the system" and by adding to this the integral of all heat flows entering/leaving the system. There are two options for choosing the extent of the system based on parameter openSystemConservationOfEnergy. Either conservation of energy for a closed system is computed, or it is computed for an open system.
    When choosing the closed system the conservation of energy check should always work when using IDEAS as intended. In this case conservation of energy is only checked for all components in the Buildings package. I.e. all heat flows at embedded ports port_emb of walls, fluid ports of the zones, zone.gainCon and zone.gainRad are considered to be a heat gain to the system and every other component is considered to be outside of the system for which conservation of energy is checked.
    When computing an open system by setting openSystemConservationOfEnergy=true these heat flow rates are not taken into account because they are assumed to flow between components that are both within the bounds of the system. The user then needs to choose how large the system is and he should make sure that all heat flow rates entering the system are added to sim.Qgai.Q_flow and that all internal energy of the system is added to sim.E.E.
  • The default latitude and longitude, which are read by the TMY3 reader, can be overwritten. This should only be done if a custom weather data reader instead of the TMY3 weather data reader is used.

TMY3 weather data files

IDEAS uses TMY3 input files. The default weather file 'BEL_VLG_Uccle.064470_TMYx.2007-2021.mos' contains weather information from https://climate.onebuilding.org for the weather station in Uccle, near the Brussels region in Belgium. For detailed documentation see IDEAS.BoundaryConditions.WeatherData.ReaderTMY3.

Interzonal airflow

IDEAS supports several levels of detail for simulating interzonal airflow and air infiltration, which can be selected by setting the value of the parameter interzonalAirFlowType.

By default, interzonalAirFlowType=None and a fixed n50 value is assumed for each zone. The n50 value represents the airtightness of a building or building zone. It is equal to the number of air changes per hour (due to air leakage) at a pressure difference of 50 Pa, and is expressed in h-1. The corresponding fixed mass flow rate is divided by a fixed factor n50toAch and is pushed into (with ambient properties) and extracted from each zone model. In practice, however, air infiltration depends on the wind pressure and temperature differences, and occurs only in zones that have an exterior/outer wall or windows. The other interzonalAirFlowType options model this effect in more detail.

When setting unify_n50=true while interzonalAirFlowType=None, the n50 values are automatically redistributed across the zones as described below and a corrected fixed infiltration flow rate is assumed. While this implementation is more detailed and comes at no added computational cost, it is disabled by default for backward compatibility reasons.

When interzonalAirFlowType=OnePort or interzonalAirFlowType=TwoPort, by default, the OuterWall and Window leakage coefficients are computed using the building's n50 value set in the SimInfoManager. The zone volumes are added together to compute the total nominal air infiltration at a 50 Pa pressure difference based on the building's n50 value set by the user. Then, the total exterior building area, which is the sum of the area of all OuterWall and Window components, is used to compute an average q50 value. The q50 value represents the airtightness of a surface. It is equal to the average air leakage flow per hour at a pressure difference of 50 Pa per surface area, and is expressed in m3/h/m2. Each airflow path is represented by an IDEAS.Airflow.Multizone.Point_m_flow class which will compute the real air flow rates at lower pressure differences.

When a custom q50 value for a wall or window is known, it can be assigned by the user using the parameters use_custom_q50 and custom_q50. The algorithm considers these q50 values as known and recomputes all remaining q50 values such that the imposed n50 value at the building level is reached.

In a similar way, the total n50 value for one zone can be forced by using the zone parameters use_custom_n50 and n50. In this case, the q50 parameter values of the outer surfaces connected to that zone will correspond to the custom n50 parameter value of the zone. Subsequently, all other zones and surfaces will be adjusted such that the building's total air leakage still corresponds to the building's n50 value.

One-port implementation

In case interzonalAirFlowType=OnePort, then one flow path is used to model the air exchange through each surface and through cavities in internal walls (open doors). No buoyancy driven airflow (stack-effect) is modelled in this case. This implementation is recommended when naturally driven airflows are expected to be negligble (e.g. limited building height, good airtightness) or when the HVAC system pressure differences and corresponding air flow rates are of higher orders of magnitude. More information regarding the one-port implementation can be found in [DeJonge2021].

Two-port implementation

When interzonalAirFlowType=TwoPorts, then two flow paths are used for each external surface and buoyancy/temperature driven airflow (stack-effect) is added by consistent implementation of the IDEAS.Airflow.Multizone.MediumColumnReversible class. This increases the level of detail at the cost of having to solve a more complex flow network, thereby allowing the more detailed modelling of multi-zone air flow. In this implementation, larger openings (e.g. open doors in internal walls or open windows) are represented by the IDEAS.Airflow.Multizone.DoorDiscretizedOperable class. It is important to set the parameters hFloor and hZone correctly at zone level.

Wind speed

The wind pressure depends on the wind speed, but this one is typically measured at a meteorological station. The wind speed at the building is different from this measured one due to the local terrain and elevation effects. This is taken into account by the wind speed modifier coefficient Cs, which is calculated as [CONTAM2020]:

Cs = A02 · (H/Href)2a

where H is the building height, Href is the height at which the wind speed is measured, A0 is the local terrain constant, and a is the velocity profile exponent.

The AHRAE Fundamentals handbook of 1993 provided values for A0 and a for different terrain types (e.g. urban and suburban). Since the 2005 version of the ASHRAE Fundamentals handbook [ASHRAE2005], the wind boundary layer thickness δ is reported instead of the coefficient A0. However, the latter can be calculated from the former as [CONTAM2020]:

A0 = (δref/Href)aref · (Href/δ)aref

where δref, Href, and aref are the wind boundary layer thickness, wind measurement height, and velocity profile exponent at the meteorological station, respectively.

The model allows to set the terrain type parameter locTer to Urban, Suburban, Unshielded, or Custom. For the former three, coefficients a and δ are taken from [ASHRAE2005] and A0 is calculated using the equation above, assuming a meteorological station in an unshielded area. The height at which the wind is measured (Href) is set by the parameter Hwind. If Custom is selected, the user needs to provide values for a and A0.

Terrain type a δ [m] A0
Urban (large city center) 0.33 460 (270/Href)0.14 · (Href/460)0.33
Suburban 0.22 370 (270/Href)0.14 · (Href/370)0.22
Unshielded (default) 0.14 270 (270/Href)0.14 · (Href/270)0.14
Custom acustom / A0,custom

References

[ASHRAE2005]
American Society of Heating Refrigerating and Air-Conditioning Engineers.
2005 ASHRAE handbook: Fundamentals, SI Edition.
Atlanta: American Society of Heating, Refrigerating and Air-Conditioning Engineers, 2005.

[CONTAM2020]
W. Stuart Dols and Brian J. Polidoro. CONTAM User Guide and Program Documentation: Version 3.4.
Washington, DC: US Department of Commerce, National Institute of Standards and Technology, 2015.
doi:10.6028/NIST.TN.1887r1.

[DeJonge2021]
Klaas De Jonge, Filip Jorissen, Lieve Helsen and Jelle Laverge.
Wind-Driven Air Flow Modelling in Modelica: Verification and Implementation in the IDEAS Library.
Proceedings of Building Simulation 2021: 17th Conference Of IBPSA. Bruges, Belgium, September, 2021.
doi:10.26868/25222708.2021.30165.

Parameters

TypeNameDefaultDescription
StringfilNam (from PartialSimInfoManager)Modelica.Utilities.Files.loadResource("modelica://IDEAS/Resources/weatherdata/BEL_VLG_Uccle.064470_TMYx.2007-2021.mos")File name of TMY3 weather file
Modelica.Units.SI.TimetimZon (from PartialSimInfoManager)weaDat.timZonTime zone for which the simulation time t=0 corresponds to midnight, january 1st
Modelica.Units.SI.Angle[5]aziOpts (from PartialSimInfoManager){incS, incW, incN, incE, incS}Inclination options, default south
Modelica.Units.SI.Angle[4]incOpts (from PartialSimInfoManager){IDEAS.Types.Tilt.Wall, IDEAS.Types.Tilt.Floor, IDEAS.Types.Tilt.Ceiling, IDEAS.Types.Tilt.Wall}Azimuth options, default wall
Booleanuse_port_1 (from PartialSimInfoManager)interZonalAirFlowType <> IDEAS.BoundaryConditions.Types.InterZonalAirFlow.NoneWhether port_1 of the propsbus connector should be used
Booleanuse_port_2 (from PartialSimInfoManager)interZonalAirFlowType == IDEAS.BoundaryConditions.Types.InterZonalAirFlow.TwoPortsWhether port_2 of the propsbus connector should be used
Modelica.Units.SI.TemperatureTenv_nom (from PartialSimInfoManager)280Nominal ambient temperature, only used when linearising equations
IntegernumIncAndAziInBus (from PartialSimInfoManager)size(incAndAziInBus, 1)Number of pre-computed azimuth
Modelica.Units.SI.TemperatureTdes (from PartialSimInfoManager)-8 + 273.15design outdoor temperature
Modelica.Units.SI.TemperatureTdesGround (from PartialSimInfoManager)10 + 273.15design ground temperature
RealV50_def (from PartialSimInfoManager)V50 - V50_customCorrected V50 value, default for surfaces without custom assignment.
RealV50 (from PartialSimInfoManager)V_tot*n50V50 value assuming no custom v50 values.
Realq50_def (from PartialSimInfoManager)if A_def < Modelica.Constants.small then q50_av else V50_def/A_def
Realq50_av (from PartialSimInfoManager)if A_tot < Modelica.Constants.small then 0 else V50/A_totaverage, not corrected q50
Modelica.Units.SI.VolumeV_tot (from PartialSimInfoManager)Total conditioned building volume
Modelica.Units.SI.AreaA_tot (from PartialSimInfoManager)Total surface area of OuterWalls and Windows
RealV50_custom (from PartialSimInfoManager)Sum of v50 values for components that have a custom assignment
Modelica.Units.SI.AreaA_def (from PartialSimInfoManager)Total area with default q50, i.e. without custom q50 assignment, or connected to zone with custom n50 assigned
Advanced
Modelica.Units.SI.Anglelat (from PartialSimInfoManager)weaDat.latLatitude of the location
Modelica.Units.SI.Anglelon (from PartialSimInfoManager)weaDat.lonLongitude of the location
Incidence angles
Modelica.Units.SI.AngleincS (from PartialSimInfoManager)IDEAS.Types.Azimuth.SSouth inclination
Modelica.Units.SI.AngleincW (from PartialSimInfoManager)incS + Modelica.Constants.pi/2West inclination
Modelica.Units.SI.AngleincN (from PartialSimInfoManager)incS + Modelica.Constants.piNorth inclination
Modelica.Units.SI.AngleincE (from PartialSimInfoManager)incS + 3*Modelica.Constants.pi/2East inclination
Modelica.Units.SI.Angle[:,:]incAndAziInBus (from PartialSimInfoManager){{IDEAS.Types.Tilt.Ceiling, 0}, {IDEAS.Types.Tilt.Wall, incS}, {IDEAS.Types.Tilt.Wall, incW}, {IDEAS.Types.Tilt.Wall, incN}, {IDEAS.Types.Tilt.Wall, incE}, {IDEAS.Types.Tilt.Floor, 0}}Combination of inclination and azimuth which are pre-computed and added to solBus.
Conservation of energy
BooleancomputeConservationOfEnergy (from PartialSimInfoManager)falseAdd equations for verifying conservation of energy
BooleanstrictConservationOfEnergy (from PartialSimInfoManager)falseThis adds an assert statement to make sure that energy is conserved
BooleanopenSystemConservationOfEnergy (from PartialSimInfoManager)falseCompute conservation of energy for open system
Modelica.Units.SI.EnergyEmax (from PartialSimInfoManager)1Error bound for violation of conservation of energy
Linearisation
BooleanlineariseDymola (from PartialSimInfoManager)falseLinearises building model equations for Dymola linearisation approach
BooleanlineariseJModelica (from PartialSimInfoManager)falseLinearises building model equations for optimisations in JModelica
BooleancreateOutputs (from PartialSimInfoManager)falseCreates output connections when linearising windows
BooleanoutputAngles (from PartialSimInfoManager)not lineariseDymolaOutput angles in weaBus. Set to false when linearising
IntegernWindow (from PartialSimInfoManager)1Number of windows in the to be linearised model
IntegernLayWin (from PartialSimInfoManager)3Number of window layers in the to be linearised model; should be maximum of all windows
Booleanlinearise (from PartialSimInfoManager)lineariseDymola or lineariseJModelicaLinearises building model equations
Linearisation › Convection
BooleanlinIntCon (from PartialSimInfoManager)false= true, if interior convective heat transfer should be linearised
BooleanlinExtCon (from PartialSimInfoManager)false= true, if exterior convective heat transfer should be linearised (uses average wind speed)
Linearisation › Radiation
BooleanlinIntRad (from PartialSimInfoManager)true= true, if interior radiative heat transfer should be linearised
BooleanlinExtRad (from PartialSimInfoManager)false= true, if exterior radiative heat transfer for walls should be linearised
BooleanlinExtRadWin (from PartialSimInfoManager)true= true, if exterior radiative heat transfer for windows should be linearised
Advanced › CO2
RealppmCO2 (from PartialSimInfoManager)400Default CO2 concentration in [ppm] when using air medium containing CO2
Interzonal airflow
IDEAS.BoundaryConditions.Types.InterZonalAirFlowinterZonalAirFlowType (from PartialSimInfoManager)IDEAS.BoundaryConditions.Types.InterZonalAirFlow.NoneType of interzonal air flow model
Booleanunify_n50 (from PartialSimInfoManager)falseif true, zone n50 values are merged and then redistributed across al zones even if interZonalAirFlowType==None
Realn50 (from PartialSimInfoManager)3n50 value of zones
Wind
Booleanuse_sim_Cs (from PartialSimInfoManager)trueif checked, the default Cs of each surface in the building is sim.Cs
IDEAS.BoundaryConditions.Types.LocalTerrainlocTer (from PartialSimInfoManager)IDEAS.BoundaryConditions.Types.LocalTerrain.UnshieldedSelection of local terrain
Reala_custom (from PartialSimInfoManager)0.14Custom velocity profile exponent
RealA0_custom (from PartialSimInfoManager)1.0Custom local terrain coefficient
Reala (from PartialSimInfoManager)if locTer == IDEAS.BoundaryConditions.Types.LocalTerrain.Unshielded then 0.14 elseif locTer == IDEAS.BoundaryConditions.Types.LocalTerrain.Suburban then 0.22 elseif locTer == IDEAS.BoundaryConditions.Types.LocalTerrain.Urban then 0.33 else a_customVelocity profile exponent
Modelica.Units.SI.Lengthdelta (from PartialSimInfoManager)if locTer == IDEAS.BoundaryConditions.Types.LocalTerrain.Unshielded then 270 elseif locTer == IDEAS.BoundaryConditions.Types.LocalTerrain.Suburban then 370 elseif locTer == IDEAS.BoundaryConditions.Types.LocalTerrain.Urban then 460 else 0Wind boundary layer thickness
RealA0 (from PartialSimInfoManager)if locTer == IDEAS.BoundaryConditions.Types.LocalTerrain.Custom then A0_custom else (270/Hwind)^0.14*(Hwind/delta)^aLocal terrain coefficient
Modelica.Units.SI.LengthH (from PartialSimInfoManager)10Building or roof height
Modelica.Units.SI.LengthHwind (from PartialSimInfoManager)10Height above ground of meteorological wind speed measurement
Modelica.Units.SI.LengthHPres (from PartialSimInfoManager)1Height above ground of meteorological atmospheric pressure measurement
RealCs_coeff (from PartialSimInfoManager)(A0*A0)*((1/Hwind)^(2*a))Multiplication factor for wind speed modifier Cs
RealCs (from PartialSimInfoManager)Cs_coeff*(H^(2*a))Wind speed modifier

Connectors

TypeNameDefaultDescription
IDEAS.Buildings.Components.Interfaces.WeaBusweaBus (from PartialSimInfoManager)
Modelica.Thermal.HeatTransfer.Interfaces.HeatPort_aQgai (from PartialSimInfoManager)Thermal gains in model
IDEAS.Buildings.Components.BaseClasses.ConservationOfEnergy.EnergyPortE (from PartialSimInfoManager)Model internal energy
IDEAS.Buildings.Components.Interfaces.WindowBuswinBusOut (from PartialSimInfoManager)Bus for windows in case of linearisation
IDEAS.BoundaryConditions.WeatherData.BusweaDatBus (from PartialSimInfoManager)Weather data bus connectable to weaBus connector from Buildings Library
Buildings.Components.Interfaces.VolumePortvolumePort (from PartialSimInfoManager)Port for summing volumes of all zones
Buildings.Components.Interfaces.AreaPortareaPort (from PartialSimInfoManager)Port for summing surface areas of all surfaces

Components

TypeNameDefaultDescription
Modelica.Units.SI.TemperatureTe (from PartialSimInfoManager)ambient outdoor temperature for determination of sky radiation exchange
Modelica.Units.SI.TemperatureTsky (from PartialSimInfoManager)effective overall sky temperature
Modelica.Units.SI.TemperatureTeAv (from PartialSimInfoManager)running average of ambient outdoor temperature of the last 5 days, not yet implemented
Modelica.Units.SI.TemperatureTground (from PartialSimInfoManager)ground temperature
Modelica.Units.SI.VelocityVa (from PartialSimInfoManager)wind speed
Modelica.Units.SI.AngleVdir (from PartialSimInfoManager)wind direction
RealrelHum (from PartialSimInfoManager)Relative humidity
Modelica.Units.SI.TemperatureTDewPoi (from PartialSimInfoManager)Dewpoint
Modelica.Units.SI.EnergyEtot (from PartialSimInfoManager)Total internal energy
Modelica.Units.SI.EnergyQint (from PartialSimInfoManager)Total energy from boundary
IDEAS.Utilities.Psychrometrics.X_pTphiXiEnv (from PartialSimInfoManager)
IDEAS.BoundaryConditions.SolarIrradiation.ShadedRadSolradSol (from PartialSimInfoManager)Model for computing solar irradiation and properties of predefined set of tilted surfaces
Modelica.Blocks.Sources.RealExpressionTskyPow4Expr (from PartialSimInfoManager)Power 4 of sky temperature
Modelica.Blocks.Sources.RealExpressionTePow4Expr (from PartialSimInfoManager)Power 4 of ambient temperature
Modelica.Blocks.Sources.RealExpressionTdesExpr (from PartialSimInfoManager)Expression for design temperature
Modelica.Thermal.HeatTransfer.Sources.FixedTemperaturefixedTemperature (from PartialSimInfoManager)Fixed temperature
Modelica.Blocks.Sources.RealExpressionCEnv (from PartialSimInfoManager)Concentration of trace substance in surroundings
Modelica.Blocks.Routing.RealPassThroughsolTim (from PartialSimInfoManager)Solar time
Modelica.Blocks.Routing.RealPassThroughalt (from PartialSimInfoManager)Altitude

Revisions

  • July 10, 2025, by Klaas De Jonge:
    Update the interzonal airflow documentation. See #1347.
  • July 9, 2025, by Jelger Jansen:
    Update documentation related to wind speed modifier calculation. See #1340.
  • April 16, 2021 by Filip Jorissen:
    Changed the default weather file to Brussels.mos and revised the documentation accordingly. See #1209 for more details.
  • June 30, 2020 by Filip Jorissen:
    Overridable assignments of variables of PartialSimInfoManager. See #1148
  • November 28, 2019 by Ian Beausoleil-Morrison:
    Make wind direction available on WeaBus. See #1089
  • January 21, 2019 by Filip Jorissen:
    Improved documentation by adding weather data reader reference and more TMY3 file examples. This is for #956.
  • June 7, 2018 by Filip Jorissen:
    Overwriting TSky, Va and Fc from the extends clause such that they can be overwriten again in BESTEST SimInfoManager. This is for #838.
  • June 14, 2015, Filip Jorissen:
    Added documentation