Skip to content
Merged
27 changes: 15 additions & 12 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -191,11 +191,14 @@ set(ENERGYPLUS_VERSION_MINOR 2)
set(ENERGYPLUS_VERSION_PATCH 0)
set(ENERGYPLUS_VERSION "${ENERGYPLUS_VERSION_MAJOR}.${ENERGYPLUS_VERSION_MINOR}.${ENERGYPLUS_VERSION_PATCH}")
# Build SHA is not required to have a value, but if it does OpenStudio will require this build.
set(ENERGYPLUS_BUILD_SHA "c249759bad")
set(ENERGYPLUS_BUILD_SHA "aa78da9668")

# ENERGYPLUS_RELEASE_NAME is used to locate the E+ download
# from the github releases
set(ENERGYPLUS_RELEASE_NAME "v22.2.0")
set(ENERGYPLUS_RELEASE_NAME "v22.2.0-WithIHGFix")

# TODO: Temporary change to a fork until a patched release is issued on NREL's
set(ENERGYPLUS_REPO "jmarrec")

# Radiance
set(RADIANCE_VERSION "5.0.a.12")
Expand Down Expand Up @@ -579,21 +582,21 @@ endif()
if(UNIX)
if(APPLE)
if (ARCH MATCHES "arm64")
set(ENERGYPLUS_EXPECTED_HASH 48af06ee5b4b0393444e6e57f4adadd5)
set(ENERGYPLUS_EXPECTED_HASH 35ba21891e7059987391f1ab59958025)
set(ENERGYPLUS_PLATFORM "Darwin-macOS12.1-arm64")
else()
set(ENERGYPLUS_EXPECTED_HASH 92a76c5d60cf91536bdeacbe780d135a)
set(ENERGYPLUS_EXPECTED_HASH 481fafde9496735d809e810bd95b720f)
set(ENERGYPLUS_PLATFORM "Darwin-macOS10.15-x86_64")
endif()
elseif(LSB_RELEASE_ID_SHORT MATCHES "CentOS")
# TODO: There aren't any redhat releases anymore, see PR #3145 too
set(ENERGYPLUS_EXPECTED_HASH ebf23ac4f54a6c4f9ac0da561de4196e)
set(ENERGYPLUS_EXPECTED_HASH ebf23ac4f54a6c4f9ac0da561de4196e) # TODO: not updated yet
set(ENERGYPLUS_PLATFORM "Centos7-x86_64")
else()
if(LSB_RELEASE_VERSION_SHORT MATCHES "20.04")
set(ENERGYPLUS_EXPECTED_HASH f8a45aa0a01523b5f904d5c2ae8302f8)
set(ENERGYPLUS_EXPECTED_HASH fd2b9e55a15227f872601e9e57ffe819)
else() # 18.04
set(ENERGYPLUS_EXPECTED_HASH 58b8397f55c2a1ede7ed08c5892e62ed)
set(ENERGYPLUS_EXPECTED_HASH 05a97ef513fa3f2ac7678bd9eef026db)
endif()
set(ENERGYPLUS_PLATFORM "Linux${ENERGYPLUS_SYSTEM_VERSION}-x86_64")
endif()
Expand All @@ -603,15 +606,15 @@ if(UNIX)
endif()
if(NOT EXISTS "${PROJECT_BINARY_DIR}/${ENERGYPLUS_PATH}.tar.gz" OR NOT "${ENERGYPLUS_HASH}" MATCHES "${ENERGYPLUS_EXPECTED_HASH}")
message(STATUS "Downloading EnergyPlus ${ENERGYPLUS_VERSION} (${ENERGYPLUS_PLATFORM})")
message(STATUS "https://github.com/NREL/EnergyPlus/releases/download/${ENERGYPLUS_RELEASE_NAME}/${ENERGYPLUS_PATH}.tar.gz") # TODO: Temp: custom build on my fork
message(STATUS "https://github.com/${ENERGYPLUS_REPO}/EnergyPlus/releases/download/${ENERGYPLUS_RELEASE_NAME}/${ENERGYPLUS_PATH}.tar.gz")

if(LSB_RELEASE_ID_SHORT MATCHES "CentOS")
file(DOWNLOAD "http://openstudio-resources.s3.amazonaws.com/dependencies/${ENERGYPLUS_PATH}.tar.gz" "${PROJECT_BINARY_DIR}/${ENERGYPLUS_PATH}.tar.gz"
INACTIVITY_TIMEOUT 300 # 5-min timeout
SHOW_PROGRESS
EXPECTED_MD5 ${ENERGYPLUS_EXPECTED_HASH})
else()
file(DOWNLOAD "https://github.com/NREL/EnergyPlus/releases/download/${ENERGYPLUS_RELEASE_NAME}/${ENERGYPLUS_PATH}.tar.gz" "${PROJECT_BINARY_DIR}/${ENERGYPLUS_PATH}.tar.gz"
file(DOWNLOAD "https://github.com/${ENERGYPLUS_REPO}/EnergyPlus/releases/download/${ENERGYPLUS_RELEASE_NAME}/${ENERGYPLUS_PATH}.tar.gz" "${PROJECT_BINARY_DIR}/${ENERGYPLUS_PATH}.tar.gz"
INACTIVITY_TIMEOUT 300 # 5-min timeout
SHOW_PROGRESS
EXPECTED_MD5 ${ENERGYPLUS_EXPECTED_HASH})
Expand All @@ -625,19 +628,19 @@ elseif(WIN32)
if(CMAKE_SIZEOF_VOID_P EQUAL 8) # 64 bit
set(ENERGYPLUS_PATH "EnergyPlus-${ENERGYPLUS_VERSION}-${ENERGYPLUS_BUILD_SHA}-Windows-x86_64")
set(ENERGYPLUS_ARCH 64)
set(ENERGYPLUS_EXPECTED_HASH c6d296be45420d6e497f33727f044676)
set(ENERGYPLUS_EXPECTED_HASH 8611314c5056abedca59144627e79078)
else()
set(ENERGYPLUS_PATH "EnergyPlus-${ENERGYPLUS_VERSION}-${ENERGYPLUS_BUILD_SHA}-Windows-i386")
set(ENERGYPLUS_ARCH 32)
set(ENERGYPLUS_EXPECTED_HASH 68108677fceb17bd58be1c9c7a68f418)
set(ENERGYPLUS_EXPECTED_HASH 76afec50c80fc4b53f2f4da572573688)
endif()
if(EXISTS "${PROJECT_BINARY_DIR}/${ENERGYPLUS_PATH}.zip")
file(MD5 "${PROJECT_BINARY_DIR}/${ENERGYPLUS_PATH}.zip" ENERGYPLUS_HASH)
endif()
if(NOT EXISTS "${PROJECT_BINARY_DIR}/${ENERGYPLUS_PATH}.zip" OR NOT "${ENERGYPLUS_HASH}" MATCHES "${ENERGYPLUS_EXPECTED_HASH}")
message(STATUS "Downloading EnergyPlus ${ENERGYPLUS_VERSION} (${ENERGYPLUS_ARCH}-bit)")

file(DOWNLOAD "https://github.com/NREL/EnergyPlus/releases/download/${ENERGYPLUS_RELEASE_NAME}/${ENERGYPLUS_PATH}.zip" "${PROJECT_BINARY_DIR}/${ENERGYPLUS_PATH}.zip"
file(DOWNLOAD "https://github.com/${ENERGYPLUS_REPO}/EnergyPlus/releases/download/${ENERGYPLUS_RELEASE_NAME}/${ENERGYPLUS_PATH}.zip" "${PROJECT_BINARY_DIR}/${ENERGYPLUS_PATH}.zip"
INACTIVITY_TIMEOUT 300 # 5 minute timeout
SHOW_PROGRESS
EXPECTED_MD5 ${ENERGYPLUS_EXPECTED_HASH})
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# OpenStudio Version 3.4.1 (TDB)
# OpenStudio Version 3.5.0 (TDB)

_Release Notes_ - _TDB_

These release notes describe version 3.4.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:
These release notes describe version 3.5.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:

- 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.4.1**__
__**OpenStudio SDK 3.5.0**__
- EnergyPlus
- Command Line Interface (CLI)
- Radiance
Expand All @@ -33,11 +33,11 @@ __**OpenStudio SDK 3.4.1**__

# Installation Notes

OpenStudio SDK 3.4.1 is supported on 64-bit Windows 7 – 10, OS X 10.15, and Ubuntu 18.04, 20.04
OpenStudio SDK 3.5.0 is supported on 64-bit Windows 7 – 10, OS X 10.15, and Ubuntu 18.04, 20.04

OpenStudio SDK 3.4.1 supports [EnergyPlus Release 22.1.0](https://github.com/NREL/EnergyPlus/releases/tag/v22.1.0), 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.4.1.
OpenStudio SDK 3.5.0 supports [EnergyPlus Release 22.1.0](https://github.com/NREL/EnergyPlus/releases/tag/v22.1.0), 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.5.0.

OpenStudio SDK 3.4.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.4.1.
OpenStudio SDK 3.5.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.5.0.

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 @@ -52,15 +52,15 @@ For help with common installation problems please visit, http://nrel.github.io/O

# OpenStudio SDK: Changelog

The 3.4.1 is a minor release. This update includes several new features, performance improvements, and bug fixes.
The 3.5.0 is a minor release. This update includes several new features, performance improvements, and bug fixes.
You can find the list of Pull Requests that got into this release (**NEEDS UPDATE**) [here](https://github.com/NREL/OpenStudio/pulls?utf8=%E2%9C%93&q=is%3Apr+is%3Aclosed+created%3A2021-04-27..2022-09-26+).


## Python Bindings

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.4.1`
`pip install openstudio==3.5.0`

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.

Expand All @@ -83,7 +83,12 @@ You can also refer to the [OpenStudio SDK Python Binding Version Compatibility M
* `Coil:Cooling:DX:SingleSpeed`, `Coil:Cooling:DX:MultiSpeed:StageData`, and `Coil:Cooling:DX:CurveFit:Speed`: `ratedEvaporatorFanPowerPerVolumeFlowRate` and `setRatedEvaporatorFanPowerPerVolumeFlowRate` in favor of `ratedEvaporatorFanPowerPerVolumeFlowRate2017` and `setRatedEvaporatorFanPowerPerVolumeFlowRate2017`
* `Coil:Heating:DX:SingleSpeed` and `Coil:Heating:DX:MultiSpeed:StageData`: `ratedSupplyFanPowerPerVolumeFlowRate` and `setRatedSupplyFanPowerPerVolumeFlowRate` in favor of `ratedSupplyFanPowerPerVolumeFlowRate2017` and `setRatedSupplyFanPowerPerVolumeFlowRate2017`
* [#4666](https://github.com/NREL/OpenStudio/pull/4666) - Changes related to availability schedule methods
* `Coil:Heating:Gas:MultiStage` has an API-breaking change related to its `availabilitySchedule` getter. It is now a required field that returns `Schedule` instead of `boost::optional<Schedule>`. Method `resetAvailabilitySchedule` is also removed.
* `Coil:Heating:Gas:MultiStage` has an API-breaking change related to its `availabilitySchedule` getter. It is now a required field that returns `Schedule` instead of `boost::optional<Schedule>`. Method `resetAvailabilitySchedule` is also removed.
* [#4701](https://github.com/NREL/OpenStudio/pull/4701) - `ZoneHVACPackagedTerminalAirConditioner` and `ZoneHVACPackagedTerminalHeatPump`
* `ZoneHVACPackagedTerminalAirConditioner` and `ZoneHVACPackagedTerminalHeatPump` have an API-breaking change related to its `supplyAirFanOperatingModeSchedule` getter. It is now a required field that returns `Schedule` instead of `boost::optional<Schedule>`. Method `resetSupplyAirFanOperatingModeSchedule` is also removed.
* It is set to `alwaysOnDiscreteSchedule` (=Constant) in the Constructor if you provide a `FanConstantVolume` (This is **required** by E+)
* It is set to `alwaysOffDiscreteSchedule` (=Cycling) in the Constructor if you provide any other fan types (E+ treats a blank schedule as always off)
* There are unusual `VersionTranslator` Rules for Packaged Systems (PTAC or PTHP) that use a `FanConstantVolume` and that do not have a `Supply Air Fan Operating Mode Schedule`. In 22.1.0 this would effectively, and mistakenly, function as a cycling fan, but this is now disallowed in E+ 22.2.0. In order to retain a similar functionality and energy usage, the `FanConstantVolume` will be replaced by a `FanSystemModel` with an Always Off Schedule (=cycling fan, similar to a `Fan:OnOff`), mapping inputs such as pressure rise and efficiency appropriately.


## Minor changes and bug fixes
Expand Down
2 changes: 2 additions & 0 deletions resources/model/OpenStudio.idd
Original file line number Diff line number Diff line change
Expand Up @@ -27545,6 +27545,7 @@ OS:ZoneHVAC:PackagedTerminalHeatPump,
\note cycling fan operation (fan cycles with cooling or heating coil). Schedule Name values greater
\note than 0 denote constant fan operation (fan runs continually regardless of coil operation).
\note The fan operating mode defaults to cycling fan operation if this field is left blank.
\required-field
\type object-list
\object-list ScheduleNames

Expand Down Expand Up @@ -27659,6 +27660,7 @@ OS:ZoneHVAC:PackagedTerminalAirConditioner,
\note Enter the name of a schedule that controls fan operation. Schedule Name values of 0 denote
\note cycling fan operation (fan cycles with cooling or heating coil). Schedule Name values greater
\note than 0 denote constant fan operation (fan runs continually regardless of coil operation).
\required-field
\type object-list
\object-list ScheduleNames

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -359,10 +359,9 @@ namespace energyplus {

// SupplyAirFanOperatingModeScheduleName

if (boost::optional<Schedule> schedule = modelObject.supplyAirFanOperatingModeSchedule()) {
if (boost::optional<IdfObject> _schedule = translateAndMapModelObject(schedule.get())) {
idfObject.setString(ZoneHVAC_PackagedTerminalAirConditionerFields::SupplyAirFanOperatingModeScheduleName, _schedule->name().get());
}
Schedule fanOpSchedule = modelObject.supplyAirFanOperatingModeSchedule();
if (boost::optional<IdfObject> _schedule = translateAndMapModelObject(fanOpSchedule)) {
idfObject.setString(ZoneHVAC_PackagedTerminalAirConditionerFields::SupplyAirFanOperatingModeScheduleName, _schedule->name().get());
}

return idfObject;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -433,10 +433,9 @@ namespace energyplus {

// SupplyAirFanOperatingModeScheduleName

if (boost::optional<Schedule> schedule = modelObject.supplyAirFanOperatingModeSchedule()) {
if (boost::optional<IdfObject> _schedule = translateAndMapModelObject(schedule.get())) {
idfObject.setString(ZoneHVAC_PackagedTerminalHeatPumpFields::SupplyAirFanOperatingModeScheduleName, _schedule->name().get());
}
Schedule fanOpSchedule = modelObject.supplyAirFanOperatingModeSchedule();
if (boost::optional<IdfObject> _schedule = translateAndMapModelObject(fanOpSchedule)) {
idfObject.setString(ZoneHVAC_PackagedTerminalHeatPumpFields::SupplyAirFanOperatingModeScheduleName, _schedule->name().get());
}

return idfObject;
Expand Down
Loading