Version 12.0.0 is a major release that adds various new packages and models.
The library has been tested with Dymola 2025x, OpenModelica 1.24.0, OPTIMICA 1.55.11 and recent versions of Impact.
The following major changes have been done compared to release 11.1.0:
Obsolete
package.
Buildings.Fluid.Geothermal.ZonedBorefields
has been added that allows
modeling geothermal borefields in which groups of boreholes are operated with different mass flow rates
and inlet temperatures,
for example to create a hot core and warm perimeter.
Buildings.DHC.ETS
and Buildings.DHC.Plants
have been updated
to comply with ASHRAE Standard 231P (Control Description Language).
Also, many models have been updated to improve performance, to improve compliance with the Modelica Language Standard and to correct model errors.
The following new libraries have been added:
Buildings.Fluid.Geothermal.ZonedBorefields | Package with models for borefields in which individual groups of boreholes can be operated independently from each other. In contrast to Buildings.Fluid.Geothermal.Borefields, in which all boreholes are connected in parallel, this package allows to form groups of parallel connected boreholes. Each of these groups has its own fluid ports, allowing them for example to be connected in series, or to operate groups at the center of the borefield with a warmer temperature than groups at the perimeter. |
The following new components have been added to existing libraries:
Buildings.Templates | |
Buildings.Templates.Plants | Several new components have been added and existing ones updated
to support the following new features in the heat pump plant template:
sidestream heat recovery chiller, primary-only pumping, buffer tanks,
failsafe staging conditions and internal computation of pump speed
or balancing valve ∆p to meet design flow. This is for #3808. |
Buildings.ThermalZones | |
Buildings.ThermalZones.EnergyPlus_24_2_0 | Updated the EnergyPlus coupling to use
EnergyPlus version 24.2.0. This is for #3911. Improved the error reporting if a simulation is run from a working directory that has spaces in its name. This is for #3993. |
The following existing components have been improved in a backward compatible way:
Buildings.DHC | |
Buildings.DHC.ETS Buildings.DHC.Plants |
Improved the control sequences to comply with CDL specification. This is for issue 4110. |
Buildings.Applications | |
Buildings.Applications.DataCenters.ChillerCooled.Equipment.BaseClasses.PartialPlantParallel | Added input filter to the isolation valve 2. This is for issue 3989. |
Buildings.Air.Systems.SingleZone | |
Buildings.Air.Systems.SingleZone.VAV.BaseClasses.ControllerEconomizer | Added a pre block to break the algebraic loop involving the mixed air temperature.This is for #3915. |
Buildings.Controls.OBC.ASHRAE.G36 | |
Buildings.Controls.OBC.ASHRAE.G36.Generic.TimeSuppression | Replaced hold with pre to break the algebraic loop involving the latch component.This is for #3883. |
Buildings.Controls.OBC.ASHRAE.G36.Generic.TrimAndRespond | Added logic to hold trim and respond loop output. This is for #3761. |
Buildings.Controls.OBC.CDL | |
Buildings.Controls.OBC.CDL.Logical.Latch | Simplified the implementation. This is for #3796. |
Buildings.Controls.OBC.CDL.Logical.TrueFalseHold | Refactored with synchronous language elements. This is for issue 3787 and issue 3966. |
Buildings.Controls.OBC.CDL.Reals.Sort | Added an output variable with the indices of the sorted elements. This is for issue 3809. |
Buildings.DHC.ETS | |
Buildings.DHC.ETS.Combined.BaseClasses.PartialHeatPumpHeatExchanger Buildings.DHC.ETS.Combined.Controls.SwitchBox |
Added HX primary flow sensor and moving average to break the algebraic loop
when using components configured in steady state. This is for #3906. |
Buildings.DHC.ETS.Combined.ChillerBorefield Buildings.DHC.ETS.Combined.Controls.SideHot Buildings.DHC.ETS.Combined.Controls.Supervisory Buildings.DHC.ETS.Combined.Controls.Reset Buildings.DHC.ETS.Combined.Validation.BaseClasses.PartialChillerBorefield |
Revised the ETS supervisory controller to (a) reduce back flow in the buffer tanks, and (b) support chilled water supply temperature reset. Also adjusted the base validation model to introduce more varied load transitions. This is for #4133. |
Buildings.Examples | |
Buildings.Examples.SimpleHouse Buildings.Examples.Tutorial.SimpleHouse.SimpleHouse6 |
Added two-port temperature sensors to replace sta_*.T in reference results.This is for IBPSA #1913. |
Buildings.Fluid | |
Buildings.Fluid.Chillers.Validation.Carnot_TEva_reverseFlow Buildings.Fluid.FixedResistances.Validation.LosslessPipe Buildings.Fluid.HeatExchangers.Validation.ConstantEffectiveness Buildings.Fluid.HeatExchangers.Radiators.Examples.RadiatorEN442_2 Buildings.Fluid.HeatPumps.Validation.Carnot_TCon_reverseFlow Buildings.Fluid.Interfaces.Examples.Humidifier_u Buildings.Fluid.Interfaces.Examples.BaseClasses.PrescribedOutletState |
Added two-port temperature sensors to replace sta_*.T in reference results.This is for IBPSA #1913. |
Buildings.Fluid.Movers | |
Buildings.Fluid.Movers.Data.Generic | The function Buildings.Fluid.Movers.BaseClasses.Euler.getPeak
is no longer called unless needed.This is for IBPSA #1912. |
Buildings.Fluid.Movers | |
Buildings.Fluid.Movers.Validation.ComparePowerHydraulic | Added standalone declaration for the peak operating condition to ensure that
the same values are used for each mover. This is for IBPSA #1912. |
Buildings.ThermalZones.EnergyPlus_9_6_0 | |
Buildings.ThermalZones.EnergyPlus_9_6_0 | Updated EnergyPlus binaries. With this update, simulations that start with a negative start time are supported. This is for #1938. This update also adds support for specifying entries for the EnergyPlus run period. See the documentation of Buildings.ThermalZones.EnergyPlus_9_6_0.Data.RunPeriod for details.This is for #2926. |
Buildings.ThermalZones.ISO13790 | |
Buildings.ThermalZones.ISO13790 | Added BESTEST validation. This is for IBPSA #1707. |
Buildings.Obsolete.Controls.OBC.ASHRAE.G36_PR1 | |
Buildings.Obsolete.Controls.OBC.ASHRAE.G36_PR1.TerminalUnits.Reheat.SystemRequests | Replaced hold with pre to break the algebraic loop involving the latch component.This is for #3915. |
Buildings.Templates | |
Buildings.Templates.Plants.Controls.Setpoints.PlantReset | Updated hold logic during staging after refactoring trim and respond block. This is for #3761. |
The following existing components have been improved in a non-backward compatible way:
Buildings.Applications | |
Buildings.Applications.DataCenters.ChillerCooled.Controls.ConstantSpeedPumpStage Buildings.Applications.DataCenters.ChillerCooled.Examples.IntegratedPrimarySecondaryEconomizer Buildings.Applications.DataCenters.ChillerCooled.Examples.NonIntegratedPrimarySecondaryEconomizer |
Added plant on signal to pumps control. This is for issue 3989. |
Buildings.Controls.OBC.CDL | |
Buildings.Controls.OBC.CDL.Logical.TrueHold Buildings.Controls.OBC.CDL.Logical.Validation.TrueHold |
The blocks have been moved to the Obsolete package.
Users are encouraged to use TrueFalseHold(falseHoldDuration=0)
instead.The conversion script will automatically update existing models. This is for issue 3787. |
Buildings.DHC | |
Buildings.DHC.ETS.Combined.ChillerBorefield Buildings.DHC.ETS.Combined.Controls.SideCold Buildings.DHC.ETS.Combined.Controls.SideHot |
Reduced number of time events by replacing zero order hold with true and false hold,
and increasing the minimum cycle time. This is for issue 4058. |
Buildings.Fluid.Actuators | |
Buildings.Fluid.Actuators.Dampers.Exponential Buildings.Fluid.Actuators.Dampers.MixingBox Buildings.Fluid.Actuators.Dampers.MixingBoxMinimumFlow Buildings.Fluid.Actuators.Dampers.PressureIndependent Buildings.Fluid.Actuators.Valves.ThreeWayEqualPercentageLinear Buildings.Fluid.Actuators.Valves.ThreeWayLinear Buildings.Fluid.Actuators.Valves.ThreeWayTable Buildings.Fluid.Actuators.Valves.TwoWayButterfly Buildings.Fluid.Actuators.Valves.TwoWayEqualPercentage Buildings.Fluid.Actuators.Valves.TwoWayLinear Buildings.Fluid.Actuators.Valves.TwoWayPolynomial Buildings.Fluid.Actuators.Valves.TwoWayPressureIndependent Buildings.Fluid.Actuators.Valves.TwoWayQuickOpening Buildings.Fluid.Actuators.Valves.TwoWayTable |
Changed model for actuator position. The new implementation changes the actuator position
at a constant speed defined by the stroke time rather than a second order filter. This update changes the parameter use_inputFilter and riseTime to
use_strokeTime and strokeTime .The conversion script will automatically update existing models. This is for IBPSA, #1926 and Buildings, #3965. |
Buildings.Fluid.Geothermal | |
Buildings.Fluid.Geothermal.Borefields.BaseClasses.Boreholes.OneUTube Buildings.Fluid.Geothermal.Borefields.BaseClasses.Boreholes.TwoUTube Buildings.Fluid.Geothermal.Borefields.BaseClasses.PartialBorefield |
Removed parameter dynFil to avoid allowing an inconsistent
declaration of the energy balance configuration for the borehole filling.This is for IBPSA, #1885. |
Buildings.Fluid.SolarCollectors | |
Buildings.Fluid.SolarCollectors.ASHRAE93 Buildings.Fluid.SolarCollectors.EN12975 |
Removed parameter nPanelsSer to avoid allowing an inconsistent
declaration of the number of panel of the collector field, and of how
many panels are installed in parallel and in series.This is for IBPSA, #1956. |
Buildings.DHC | |
Buildings.DHC.Plants.Combined.Subsystems.MultiplePumpsDp Buildings.DHC.Plants.Combined.Subsystems.MultiplePumpsFlow Buildings.DHC.Plants.Combined.Subsystems.MultiplePumpsSpeed |
Changed model for change in pump rotational speed. The new implementation changes the rotational speed
at a constant rate rather than a second order filter. This update changes the parameter use_inputFilter to use_riseTime .The conversion script will automatically update existing models. This is for IBPSA, #1926 and Buildings, #3965. |
Buildings.DHC.Plants.Cooling.Subsystems.CoolingTowersParallel Buildings.DHC.Plants.Cooling.Subsystems.CoolingTowersWithBypass Buildings.DHC.Plants.Combined.Subsystems.ChillerGroup Buildings.DHC.Plants.Combined.Subsystems.ChillerHeatRecoveryGroup Buildings.DHC.Plants.Combined.Subsystems.HeatPumpGroup |
Changed model for actuator position. The new implementation changes the actuator position
at a constant speed defined by the stroke time rather than a second order filter. This update changes the parameter use_inputFilter and riseTime to
use_strokeTime and strokeTime .The conversion script will automatically update existing models. This is for IBPSA, #1926 and Buildings, #3965. |
Buildings.Fluid.HydronicConfigurations | |
Buildings.Fluid.HydronicConfigurations.Components.ThreeWayValve Buildings.Fluid.HydronicConfigurations.Components.TwoWayValve Buildings.Fluid.HydronicConfigurations.Components.Pump |
Changed model for change in pump rotational speed. The new implementation changes the rotational speed
at a constant rate rather than a second order filter. This update changes the parameter use_inputFilter to use_riseTime .The conversion script will automatically update existing models. This is for IBPSA, #1926 and Buildings, #3965. |
Buildings.Fluid.Movers | |
Buildings.Fluid.Movers.FlowControlled_dp Buildings.Fluid.Movers.FlowControlled_m_flow Buildings.Fluid.Movers.SpeedControlled_y Buildings.Fluid.Movers.Preconfigured.FlowControlled_dp Buildings.Fluid.Movers.Preconfigured.FlowControlled_m_flow Buildings.Fluid.Movers.Preconfigured.SpeedControlled_y |
Changed model for change in fan or pump rotational speed. The new implementation changes the rotational speed
at a constant rate rather than a second order filter. This update changes the parameter use_inputFilter to use_riseTime .The conversion script will automatically update existing models. This is for IBPSA, #1926 and Buildings, #3965. |
Buildings.Fluid.SolarCollectors | |
Buildings.Fluid.SolarCollectors | Refactored solar collector models to allow modeling of arrays of collectors,
to facilitate use of rating data to parameterize the collector, and
to improve calculation of performance for shallow solar incidence angles. The former models have been moved to Buildings.Obsolete .This is for #3604. |
Buildings.Templates | |
Buildings.Templates.Components.Controls.Validation.StatusEmulator | Refactored using a state graph. This is for #3923. |
Buildings.Templates.Plants.Controls.Utilities.SortWithIndices | Moved to the Obsolete package.This is for #3809. |
Buildings.Templates.Plants.Controls.Utilities.SortWithIndices | Moved to the Obsolete package.This is for #3809. |
Buildings.ThermalZones.EnergyPlus_9_6_0 | |
Buildings.ThermalZones.EnergyPlus_9_6_0 | Moved models to Buildings.Obsolete.ThermalZones.EnergyPlus_9_6_0 ,
use instead the models in Buildings.ThermalZones.EnergyPlus_24_2_0 .The conversion script will update existing models to use the models from Buildings.Obsolete.ThermalZones.EnergyPlus_9_6_0
to ensure compatibility, because to update to EnergyPlus_24_2_0,
the idf files also need to be updated.This is for #4149. |
Buildings.Obsolete | |
Buildings.Obsolete.Air Buildings.Obsolete.Controls.Continuous Buildings.Obsolete.Examples Buildings.Obsolete.Fluid.FixedResistances Buildings.Obsolete.Fluid.Sources |
Removed obsolete models that were added at least two versions ago. This is for issue 4149. |
Buildings.Occupants | |
Buildings.Occupants.BaseClasses | Refactored the implementation of all functions. The functions now take
as an argument the internal state of the random number generator rather than a seed.
Moreover, the functions return the new internal state of the random number generator. This is for issue 4069. |
Buildings.Occupants.Office Buildings.Occupants.Residential Buildings.Occupants.Residential |
Refactored the implmenentation of the random number calculation in all blocks
and functions as the old implementation was not producing high quality random numbers,
and as it had rounding errors that caused cross-tool comparison to fail. The conversion script will automatically update the old parameter seed
to the new parameter localSeed in the blocks.
The blocks should be compatible with older versions after this update, but the results
will differ.This is for issue 4069. |
The following critical errors have been fixed (i.e., errors that can lead to wrong simulation results):
Buildings.Fluid | |
Buildings.Fluid.Chillers.BaseClasses.PartialElectric Buildings.Fluid.HeatPumps.EquationFitReversible |
Added load limit depending on operating mode. This is for #3815. |
Buildings.Templates | |
Buildings.Templates.Plants.Controls.Utilities.TimerWithReset | Refactored to ensure passed=u if t=0 .This is for #3952. |
The following uncritical errors have been fixed (i.e., errors that do not lead to wrong simulation results, e.g., units are wrong or errors in documentation):
Buildings.Controls.OBC.CDL | |
Buildings.Utilities.Math.Functions.round | Removed wrong parameter declaration which causes an error in
Dymola 2025x beta1.This is for #3978. |