Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Wrap ZoneHVAC:EvaporativeCoolerUnit #5326

Open
wants to merge 24 commits into
base: develop
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
bc6477d
Add ZoneHVAC:EvaporativeCoolerUnit to idd.
joseph-robertson Dec 18, 2024
26b5f56
Update the new idd entry.
joseph-robertson Dec 19, 2024
5045e19
First add of model, ft, and test files.
joseph-robertson Dec 20, 2024
40983fa
Update model resource files.
joseph-robertson Dec 20, 2024
70dff3b
Update nodes in ft, general cleanup.
joseph-robertson Dec 23, 2024
7fb2a46
Fix and improve model and ft tests.
joseph-robertson Dec 23, 2024
9fc6562
Add tests and clean up cpp and ft.
joseph-robertson Jan 2, 2025
1b3315e
Fix ft and tests.
joseph-robertson Jan 3, 2025
985ffd7
Remove remove override and update tests.
joseph-robertson Jan 6, 2025
b9800aa
Add ZoneHVACEvaporativeCoolerUnit to all Fan's `containingZoneHVACCom…
jmarrec Jan 7, 2025
3713357
Add ZoneHVACEvaporativeCoolerUnit to all evaporative cooler component…
jmarrec Jan 7, 2025
c6b3eeb
Improve and fixup tests
jmarrec Jan 7, 2025
d5d632a
Write Sensor Node Name (do we need to write relief air Node name?)
jmarrec Jan 9, 2025
d805651
Adjust node connections
jmarrec Jan 9, 2025
86afadc
clang-format
jmarrec Jan 15, 2025
c969110
Implement autosizedDesignSupplyAirFlowRate correclty
jmarrec Jan 16, 2025
66a2f6c
Always use the ZoneHVACEvaporativeCoolerUnit's outlet node as the Sen…
jmarrec Jan 16, 2025
2477a80
Rewrite the FT and fix the issue where it was checking the type of th…
jmarrec Jan 16, 2025
73365b1
Fix Severe Node Connection error
jmarrec Jan 16, 2025
d3e1fe9
Adjust FT test after node connections got fixed
jmarrec Jan 16, 2025
b9e6f0e
Add a TDB 3.9.1 release notes to mention the "Zone Relief Air Node Na…
jmarrec Jan 16, 2025
65526d3
Change ctor to fansystemmodel, and update some tests.
joseph-robertson Jan 17, 2025
b510cdd
Fix ft test after ctor fan change.
joseph-robertson Jan 17, 2025
f8c27b8
Fix FT test.
joseph-robertson Jan 17, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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.

Comment on lines +78 to +80
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add a note in the TDB release notes

## 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
Loading