Skip to content

Commit

Permalink
Merge pull request #5326 from NREL/zonehvac-evap-cooler
Browse files Browse the repository at this point in the history
Wrap ZoneHVAC:EvaporativeCoolerUnit
  • Loading branch information
jmarrec authored Jan 30, 2025
2 parents 09472be + f8c27b8 commit 655f148
Show file tree
Hide file tree
Showing 25 changed files with 1,906 additions and 42 deletions.
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# OpenStudio Version 3.9.0
# OpenStudio Version 3.9.1

_Release Notes_ - _TDB_

These release notes describe version 3.9.0 of the OpenStudio SDK developed by the National Renewable Energy Laboratory (NREL), Buildings and Thermal Sciences Center, Commercial Buildings Research Group, Tools Development Section, and associated collaborators. The notes are organized into the following sections:
These release notes describe version 3.9.1 of the OpenStudio SDK developed by the National Renewable Energy Laboratory (NREL), Buildings and Thermal Sciences Center, Commercial Buildings Research Group, Tools Development Section, and associated collaborators. The notes are organized into the following sections:

- Overview
- Where to Find OpenStudio Documentation
Expand All @@ -15,7 +15,7 @@ As of April 2020, development and distribution of the OpenStudioApplication and

Below is the list of components that is included in this SDK installer:

__**OpenStudio SDK 3.9.0**__
__**OpenStudio SDK 3.9.1**__
- EnergyPlus
- Command Line Interface (CLI)
- Radiance
Expand All @@ -34,16 +34,16 @@ __**OpenStudio SDK 3.9.0**__

# Installation Notes

OpenStudio SDK 3.9.0 is supported on:
OpenStudio SDK 3.9.1 is supported on:

* 64-bit Windows 7 – 11
* macOS: 11.6+ x86_64, 12.1+ arm64
* Ubuntu: 20.04 x86_64, 22.04 x86_64, 22.04 arm64
* Centos7

OpenStudio SDK 3.9.0 supports [EnergyPlus Release 24.2.0a](https://github.com/NREL/EnergyPlus/releases/tag/24.2.0a), which is bundled with the OpenStudio installer. It is no longer necessary to download and install EnergyPlus separately. Other builds of EnergyPlus are not supported by OpenStudio SDK 3.9.0.
OpenStudio SDK 3.9.1 supports [EnergyPlus Release @EP_VERSION@](https://github.com/NREL/EnergyPlus/releases/tag/v@EP_VERSION@), which is bundled with the OpenStudio installer. It is no longer necessary to download and install EnergyPlus separately. Other builds of EnergyPlus are not supported by OpenStudio SDK 3.9.1.

OpenStudio SDK 3.9.0 supports Radiance 5.0.a.12, which is bundled with the OpenStudio installer; users no longer must install Radiance separately, and OpenStudio will use the included Radiance version regardless of any other versions that may be installed on the system. Other builds of Radiance are not supported by OpenStudio SDK 3.9.0.
OpenStudio SDK 3.9.1 supports Radiance 5.0.a.12, which is bundled with the OpenStudio installer; users no longer must install Radiance separately, and OpenStudio will use the included Radiance version regardless of any other versions that may be installed on the system. Other builds of Radiance are not supported by OpenStudio SDK 3.9.1.

As usual, you can refer to the **[OpenStudio SDK Compatibility Matrix](https://github.com/NREL/OpenStudio/wiki/OpenStudio-SDK-Version-Compatibility-Matrix)** for more information.

Expand All @@ -57,7 +57,7 @@ For help with common installation problems please visit [Getting Started](http:/

# OpenStudio SDK: Changelog

The 3.9.0 is a **major** release. This update includes several new features, performance improvements, and bug fixes.
The 3.9.1 is a **<minor/major>** release. This update includes several new features, performance improvements, and bug fixes.

## C++ Workflow code

Expand All @@ -67,28 +67,23 @@ As of OpenStudio SDK 3.7.0 a re-written workflow written in C++ is used by defau

As of OpenStudio SDK 3.2.0, Python bindings are officially supported and distributed through Python Package Index (PyPI). To install, users will need to have Python3 installed along with pip and simply run the following command in a terminal window.

`pip install openstudio==3.9.0`
`pip install openstudio==3.9.1`

Please see [openstudio on PyPi](https://pypi.org/project/openstudio/) for further instructions on how to install. Users can also visit the test channel at [openstudio on TestPyPi](https://test.pypi.org/project/openstudio/) to install development bindings.

You can also refer to the [OpenStudio SDK Python Binding Version Compatibility Matrix](https://github.com/NREL/OpenStudio/wiki/OpenStudio-SDK-Python-Binding-Version-Compatibility-Matrix) to see the list of supported platforms and python versions.

## New Features, Major Fixes and API-breaking changes

* [#5242](https://github.com/NREL/OpenStudio/pull/5242) - Update to EnergyPlus v24.2.0a
* To see the full list of additions and changes, refer to the issue [#5240](https://github.com/NREL/OpenStudio/issues/5240)

* [#5237](https://github.com/NREL/OpenStudio/pull/5237) - Updates to Controller:OutdoorAir
* This PR implements the fields `Humidistat Control Zone Name` and `Electronic Enthalpy Limit Curve`
* `ControllerOutdoorAir` has two API-breaking changes for `High Humidity Outdoor Air Flow Ratio` and `Control High Indoor Humidity Based on Outdoor Humidity Ratio`. These fields are now-required, so the getters no longer return an optional
* `getHighHumidityOutdoorAirFlowRatio` (`boost::optional<double>` to `double`)
* `getControlHighIndoorHumidityBasedOnOutdoorHumidityRatio` (`boost::optional<bool>` to `bool`)
* [#5326](https://github.com/NREL/OpenStudio/pull/5326) - Wrap ZoneHVAC:EvaporativeCoolerUnit
* The object was wrapped in the SDK.
* Note: in EnergyPlus 24.2.0, the `Zone Relief Air Node Name` is an optional field. The OpenStudio SDK always fills with the connected zone's Exhaust Air Node, meaning the airflow is always being balanced by EnergyPlus: the object will extract air from the zone to balance the air supplied to the zone by the cooler outlet node.

## Minor changes and bug fixes

Refer to the changelog on the release page at [v3.9.0](https://github.com/NREL/OpenStudio/releases/v3.9.0)
Refer to the changelog on the release page at [v3.9.1](https://github.com/NREL/OpenStudio/releases/v3.9.1)

**Full Changelog**: https://github.com/NREL/OpenStudio/compare/v3.9.0...v3.9.0
**Full Changelog**: https://github.com/NREL/OpenStudio/compare/v3.9.0...v3.9.1

**New Contributors**:

Expand All @@ -106,7 +101,7 @@ In addition to some refactoring, this release also included conversion of 90.1 d
---
# This YAML header controls the pandoc (via TeX) to PDF settings
# To convert the markdown to pdf, do `pandoc release_notes.md -o release_notes.pdf`
title: 'OpenStudio Release Notes - 3.9.0'
title: 'OpenStudio Release Notes - 3.9.1'
author:
- National Renewable Energy Laboratory
colorlinks: true
Expand Down
91 changes: 90 additions & 1 deletion resources/model/OpenStudio.idd
Original file line number Diff line number Diff line change
Expand Up @@ -24507,6 +24507,7 @@ OS:EvaporativeCooler:Indirect:ResearchSpecial,
\type alpha
\required-field
\reference ConnectionObject
\reference EvapCoolerNames
A3 , \field Availability Schedule Name
\note Availability schedule name for this system. Schedule value > 0 means the system is available.
\note If this field is blank, the system is always available.
Expand Down Expand Up @@ -24657,6 +24658,7 @@ OS:EvaporativeCooler:Direct:ResearchSpecial,
\type alpha
\required-field
\reference ConnectionObject
\reference EvapCoolerNames
A3, \field Availability Schedule Name
\type object-list
\required-field
Expand Down Expand Up @@ -31192,13 +31194,100 @@ OS:ZoneHVAC:CoolingPanel:RadiantConvective:Water,
\minimum 0
\maximum 1

OS:ZoneHVAC:EvaporativeCoolerUnit,
\memo Zone evaporative cooler. Forced-convection cooling-only unit with supply fan,
\memo 100% outdoor air supply. Optional relief exhaust node
\min-fields 17
A1, \field Handle
\type handle
\required-field
A2, \field Name
\required-field
\type alpha
\reference ConnectionObject
A3, \field Availability Schedule Name
\note Availability schedule name for this system. Schedule value > 0 means the system is available.
\note If this field is blank, the system is always available.
\required-field
\type object-list
\object-list ScheduleNames
A4, \field Availability Manager List Name
\note Enter the name of an AvailabilityManagerAssignmentList object.
\type object-list
\object-list SystemAvailabilityManagerLists
A5, \field Outdoor Air Inlet Node Name
\required-field
\type object-list
\object-list ConnectionNames
\note this is an outdoor air node
A6, \field Cooler Outlet Node Name
\required-field
\type object-list
\object-list ConnectionNames
\note this is a zone inlet node
A7, \field Zone Relief Air Node Name
\type object-list
\object-list ConnectionNames
\note this is a zone exhaust node, optional if flow is being balanced elsewhere
A8, \field Supply Air Fan Name
\required-field
\type object-list
\object-list Fans
N1, \field Design Supply Air Flow Rate
\required-field
\units m3/s
\minimum> 0
\autosizable
A9, \field Fan Placement
\required-field
\type choice
\key BlowThrough
\key DrawThrough
A10, \field Cooler Unit Control Method
\required-field
\type choice
\key ZoneTemperatureDeadbandOnOffCycling
\key ZoneCoolingLoadOnOffCycling
\key ZoneCoolingLoadVariableSpeedFan
N2, \field Throttling Range Temperature Difference
\note used for ZoneTemperatureDeadbandOnOffCycling hysteresis range for thermostatic control
\type real
\units deltaC
\required-field
\minimum> 0.0
N3, \field Cooling Load Control Threshold Heat Transfer Rate
\type real
\units W
\required-field
\note Sign convention is that positive values indicate a cooling load
\minimum> 0.0
A11, \field First Evaporative Cooler
\required-field
\type object-list
\object-list EvapCoolerNames
A12, \field Second Evaporative Cooler
\note optional, used for direct/indirect configurations
\type object-list
\object-list EvapCoolerNames
A13, \field Design Specification ZoneHVAC Sizing
\note Enter the name of a DesignSpecificationZoneHVACSizing object.
\type object-list
\object-list DesignSpecificationZoneHVACSizingName
N4; \field Shut Off Relative Humidity
\note Zone relative humidity above which the evap cooler is shut off.
\required-field
\type real
\minimum 0.00
\maximum 100.00
\units percent

OS:ZoneMixing,
\memo ZoneMixing is a simple air exchange from one zone or space to another. Note that this statement
\memo only affects the energy balance of the "receiving" zone or space and will not produce
\memo any effect on the "source" zone. Mixing statements can be complementary and include
\memo multiple zones, but the balancing of flows between zones is left to the user's
\memo discretion.
\min-fields 18
\min-fields 18
A1, \field Handle
\type handle
\required-field
Expand Down
2 changes: 2 additions & 0 deletions src/energyplus/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -444,6 +444,7 @@ set(${target_name}_src
ForwardTranslator/ForwardTranslateZoneHVACEnergyRecoveryVentilator.cpp
ForwardTranslator/ForwardTranslateZoneHVACEnergyRecoveryVentilatorController.cpp
ForwardTranslator/ForwardTranslateZoneHVACEquipmentList.cpp
ForwardTranslator/ForwardTranslateZoneHVACEvaporativeCoolerUnit.cpp
ForwardTranslator/ForwardTranslateZoneHVACFourPipeFanCoil.cpp
ForwardTranslator/ForwardTranslateZoneHVACHighTemperatureRadiant.cpp
ForwardTranslator/ForwardTranslateZoneHVACIdealLoadsAirSystem.cpp
Expand Down Expand Up @@ -840,6 +841,7 @@ set(${target_name}_test_src
Test/WaterUseConnections_GTest.cpp
Test/ZoneAirHeatBalanceAlgorithm_GTest.cpp
Test/ZoneHVACBaseboardRadiantConvectiveWater_GTest.cpp
Test/ZoneHVACEvaporativeCoolerUnit_GTest.cpp
Test/ZoneHVACLowTemperatureRadiantElectric_GTest.cpp
Test/ZoneHVACLowTempRadiantConstFlow_GTest.cpp
Test/ZoneHVACLowTempRadiantVarFlow_GTest.cpp
Expand Down
5 changes: 5 additions & 0 deletions src/energyplus/ForwardTranslator.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3204,6 +3204,11 @@ namespace energyplus {
retVal = translateZoneHVACEquipmentList(mo);
break;
}
case openstudio::IddObjectType::OS_ZoneHVAC_EvaporativeCoolerUnit: {
auto mo = modelObject.cast<ZoneHVACEvaporativeCoolerUnit>();
retVal = translateZoneHVACEvaporativeCoolerUnit(mo);
break;
}
case openstudio::IddObjectType::OS_ZoneHVAC_FourPipeFanCoil: {
auto mo = modelObject.cast<ZoneHVACFourPipeFanCoil>();
retVal = translateZoneHVACFourPipeFanCoil(mo);
Expand Down
3 changes: 3 additions & 0 deletions src/energyplus/ForwardTranslator.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -481,6 +481,7 @@ namespace model {
class ZoneHVACEnergyRecoveryVentilator;
class ZoneHVACEnergyRecoveryVentilatorController;
class ZoneHVACEquipmentList;
class ZoneHVACEvaporativeCoolerUnit;
class ZoneHVACFourPipeFanCoil;
class ZoneHVACHighTemperatureRadiant;
class ZoneHVACIdealLoadsAirSystem;
Expand Down Expand Up @@ -1551,6 +1552,8 @@ namespace energyplus {

boost::optional<IdfObject> translateZoneHVACEquipmentList(model::ZoneHVACEquipmentList& modelObject);

boost::optional<IdfObject> translateZoneHVACEvaporativeCoolerUnit(model::ZoneHVACEvaporativeCoolerUnit& modelObject);

boost::optional<IdfObject> translateZoneHVACFourPipeFanCoil(model::ZoneHVACFourPipeFanCoil& modelObject);

boost::optional<IdfObject> translateZoneHVACHighTemperatureRadiant(model::ZoneHVACHighTemperatureRadiant& modelObject);
Expand Down
Loading

0 comments on commit 655f148

Please sign in to comment.