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

Update to EnergyPlus v24.2.0a #5242

Open
wants to merge 155 commits into
base: develop
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 154 commits
Commits
Show all changes
155 commits
Select commit Hold shift + click to select a range
9505514
Update cmakelists.
joseph-robertson Aug 26, 2024
48870bc
Update proposed idd.
joseph-robertson Aug 26, 2024
5b6a2d8
Stub ft, vt, and idd version change.
joseph-robertson Aug 27, 2024
120b087
Formatting.
joseph-robertson Aug 27, 2024
9de4c78
Updates for illuminancemap and internalmass.
joseph-robertson Aug 27, 2024
e72ad98
Update idd.
joseph-robertson Aug 27, 2024
86372d2
Update model, ft, and rt files.
joseph-robertson Aug 27, 2024
c6bd269
Update vt and add test.
joseph-robertson Aug 27, 2024
91318b2
Formatting.
joseph-robertson Aug 27, 2024
1fe9b3c
Update idd.
joseph-robertson Aug 27, 2024
5206884
Start updating model files.
joseph-robertson Aug 27, 2024
87063c3
Updates for vt.
joseph-robertson Aug 27, 2024
5432994
Formatting.
joseph-robertson Aug 27, 2024
fd72e0e
Few fixes in vt and test.
joseph-robertson Aug 28, 2024
843c4b5
Bump project version in cmakelists.
joseph-robertson Aug 28, 2024
9760e4b
Merge branch 'v24.2.0-IOFreeze' into v24.2.0-IOFreeze-ocfiles
joseph-robertson Aug 28, 2024
5b52841
Remove misplaced line in vt.
joseph-robertson Aug 28, 2024
b90e787
Update idd.
joseph-robertson Aug 28, 2024
44184d2
Update aterm model files.
joseph-robertson Aug 28, 2024
f8cc5d5
Update aterm ft files.
joseph-robertson Aug 28, 2024
5271416
Add tertiary getters and setters.
joseph-robertson Aug 29, 2024
0bde9d0
Fixes in idd and vt.
joseph-robertson Aug 30, 2024
cee2981
Update ft.
joseph-robertson Aug 30, 2024
be8b1d6
Add model tests for heat recovery loop.
joseph-robertson Aug 30, 2024
af4ff2c
Update setter logic for fan control types.
joseph-robertson Aug 30, 2024
7bbf479
Add model tests for new fields and methods.
joseph-robertson Aug 30, 2024
b8e22c4
Formatting.
joseph-robertson Aug 30, 2024
d73397b
Support new Site field.
joseph-robertson Aug 30, 2024
685236c
Support new SizingZone field.
joseph-robertson Aug 30, 2024
ddb581e
Formatting.
joseph-robertson Aug 30, 2024
8f8b293
Add vt and test.
joseph-robertson Aug 30, 2024
911d1e0
Minor fixes.
joseph-robertson Sep 3, 2024
085e23d
Fill out vt test.
joseph-robertson Sep 3, 2024
791fc56
Fix vt indexes.
joseph-robertson Sep 4, 2024
af2143f
Clean up cpp files.
joseph-robertson Sep 4, 2024
aea320c
Clean up cpp and ft.
joseph-robertson Sep 4, 2024
0fbae8a
Change zone sum to space sum in field name.
joseph-robertson Sep 4, 2024
7ef2476
Missed a return in modified fan setter.
joseph-robertson Sep 4, 2024
a047d51
Merge branch 'v24.2.0-IOFreeze' into v24.2.0-IOFreeze-heatpump-pl
joseph-robertson Sep 4, 2024
5173975
Wrong variable in rt.
joseph-robertson Sep 4, 2024
a7ef05e
Merge branch 'v24.2.0-IOFreeze' into v24.2.0-IOFreeze-heatpump-pl
joseph-robertson Sep 4, 2024
3c7da0b
Finish methods in cpp.
joseph-robertson Sep 4, 2024
ccee2bb
Merge branch 'v24.2.0-IOFreeze' into v24.2.0-IOFreeze-aterm
joseph-robertson Sep 4, 2024
8df9552
FT type updates and model test updates.
joseph-robertson Sep 4, 2024
cf3faab
Merge branch 'v24.2.0-IOFreeze' into v24.2.0-IOFreeze-heatpump-pl
joseph-robertson Sep 4, 2024
1ff3bd0
Shift old HeatPumpPlantLoopEIR vt tests by index of 3.
joseph-robertson Sep 5, 2024
7ed2f78
Clean up typos in idd files.
joseph-robertson Sep 5, 2024
8fc6d5b
Another update in new model test.
joseph-robertson Sep 5, 2024
43e50f3
Update heatpump-pl idd with remaining fields.
joseph-robertson Sep 9, 2024
883ed2b
Update heatpump-pl model files with remaining fields.
joseph-robertson Sep 9, 2024
309894e
Update heatpump-pl ft files with remaining fields.
joseph-robertson Sep 9, 2024
c1cd217
Update heatpump-pl vt with remaining fields.
joseph-robertson Sep 9, 2024
06ce9a8
Merge branch 'v24.2.0-IOFreeze' into v24.2.0-IOFreeze-heatpump-pl
joseph-robertson Sep 9, 2024
0613336
Formatting.
joseph-robertson Sep 9, 2024
d22158b
Update vt and all tests.
joseph-robertson Sep 10, 2024
ecab9c8
Fix curve types in model and ft tests.
joseph-robertson Sep 10, 2024
60faa3b
Include missing choice type in new Condenser Flow Control fields.
joseph-robertson Sep 10, 2024
7ba2423
Fix a -Werror=pessimizing-move on gcc 13
jmarrec Sep 9, 2024
36f0603
Add centos SHA after building and hosting it on the EnergyPlus release
jmarrec Sep 11, 2024
a7a9c28
Merge branch 'v24.2.0-IOFreeze' into v24.2.0-IOFreeze-heatpump-pl
joseph-robertson Sep 11, 2024
7bae483
Merge branch 'v24.2.0-IOFreeze' into v24.2.0-IOFreeze-aterm
joseph-robertson Sep 11, 2024
e503e91
Add heating control type reset.
joseph-robertson Sep 11, 2024
fe89da0
Update model tests for heating control type.
joseph-robertson Sep 11, 2024
2de9606
Missing lines in new vt rules.
joseph-robertson Sep 11, 2024
8018afb
Add new setters and getters to model files.
joseph-robertson Sep 16, 2024
6c5b0e5
Update ft and vt for new fields.
joseph-robertson Sep 16, 2024
d48105e
Formatting.
joseph-robertson Sep 16, 2024
bb3fd09
Update idd with fan type restriction.
joseph-robertson Sep 16, 2024
0543d59
Stub fan type change in cpp setter.
joseph-robertson Sep 16, 2024
c67a258
Remove fan variable vol from ft.
joseph-robertson Sep 16, 2024
0028015
Stub vt updates.
joseph-robertson Sep 16, 2024
89a39dc
Formatting.
joseph-robertson Sep 16, 2024
e2abd87
Missing Name for curve and schedule fields.
joseph-robertson Sep 16, 2024
0a5d0e1
Typos in cpp.
joseph-robertson Sep 16, 2024
963ebda
Write the vt and test.
joseph-robertson Sep 16, 2024
faaa2bb
Couple of field name typos.
joseph-robertson Sep 16, 2024
41b1e9e
Typo in vt test.
joseph-robertson Sep 16, 2024
5114a7a
Typos in ft files.
joseph-robertson Sep 16, 2024
8e4db10
Try fan type change in setter.
joseph-robertson Sep 16, 2024
47c46ac
Missing includes.
joseph-robertson Sep 16, 2024
8983d60
Minor fixes.
joseph-robertson Sep 17, 2024
3453f09
Add unit test for fan type change.
joseph-robertson Sep 17, 2024
bb68d87
Merge branch 'v24.2.0-IOFreeze' into v24.2.0-IOFreeze-ocfiles
joseph-robertson Sep 24, 2024
e223963
Merge pull request #5243 from NREL/v24.2.0-IOFreeze-ocfiles
joseph-robertson Sep 24, 2024
b9c1c01
Merge branch 'v24.2.0-IOFreeze' into v24.2.0-IOFreeze-heatpump-pl
joseph-robertson Sep 24, 2024
5306ce4
Merge pull request #5244 from NREL/v24.2.0-IOFreeze-heatpump-pl
joseph-robertson Sep 24, 2024
267ae2c
Merge branch 'v24.2.0-IOFreeze' into v24.2.0-IOFreeze-aterm
joseph-robertson Sep 24, 2024
fbbc896
Merge pull request #5245 from NREL/v24.2.0-IOFreeze-aterm
joseph-robertson Sep 24, 2024
950257e
Merge branch 'v24.2.0-IOFreeze' into v24.2.0-IOFreeze-chiller
joseph-robertson Sep 24, 2024
bb8c8f5
Merge pull request #5254 from NREL/v24.2.0-IOFreeze-chiller
joseph-robertson Sep 24, 2024
d8df697
Merge branch 'v24.2.0-IOFreeze' into v24.2.0-IOFreeze-vrf
joseph-robertson Sep 24, 2024
a16c884
Merge pull request #5255 from NREL/v24.2.0-IOFreeze-vrf
joseph-robertson Sep 24, 2024
3e606c3
Start to update cmakelists.
joseph-robertson Sep 24, 2024
2739998
Start to update idfs and sql tests.
joseph-robertson Sep 25, 2024
968b801
Transition idf files to new version.
joseph-robertson Sep 25, 2024
7fd4a51
Update sqlfile test expected values.
joseph-robertson Sep 25, 2024
761c2a6
Update another sqlfile test expected value.
joseph-robertson Sep 25, 2024
3bdae93
Update cmakelists for removing ubuntu 20.04.
joseph-robertson Sep 30, 2024
71f6df8
Adjust path to E+ python lib
jmarrec Oct 1, 2024
129cd91
Update Target python to 3.12, gotta bump the requirements for pandas/…
jmarrec Oct 1, 2024
6e8ca6f
To avoid dropping python 3.8 support on pypi yet, just install requir…
jmarrec Oct 1, 2024
cbd77ae
emplace_back(std::move(*optional_))
jmarrec Oct 1, 2024
dc0ac7c
Add an alpha prerelease tag
jmarrec Oct 2, 2024
8d92337
Adjust Python Engine tests for Python 3.12.2 (the stack trace has wri…
jmarrec Oct 2, 2024
f3bf9a5
Fix VRF FT tests now that FanSystemModel is expected
jmarrec Oct 2, 2024
ca0662c
Move logic of converting a VV Fan to a FanSystemModel to FanVariable…
jmarrec Oct 2, 2024
ea0cb5b
Update python version to 3.12 in detection in conanfile.py
jmarrec Oct 2, 2024
a993b84
Use bool convenience for new Site field.
joseph-robertson Oct 2, 2024
8a818f9
Make new SizingZone field required and update vt.
joseph-robertson Oct 2, 2024
60bae94
Require a new field on Chiller objects and make updates.
joseph-robertson Oct 2, 2024
dfd8c48
Formatting.
joseph-robertson Oct 2, 2024
2441f3b
Updates for heat pump plant loop eir objects.
joseph-robertson Oct 2, 2024
391180f
Merge pull request #5263 from NREL/v24.2.0-official-tweaks
joseph-robertson Oct 2, 2024
a008bb7
Merge branch 'v24.2.0-IOFreeze' into v24.2.0-official
joseph-robertson Oct 2, 2024
cea8ed1
Formatting.
joseph-robertson Oct 2, 2024
9a03587
Merge pull request #5261 from NREL/v24.2.0-official
joseph-robertson Oct 2, 2024
f6b75a4
Add model and ft tests for new SizingZone field.
joseph-robertson Oct 3, 2024
f84a8aa
Adjust outputVariables() for touched objects
jmarrec Oct 3, 2024
60520c1
Add model and ft tests for new SizingZone field.
joseph-robertson Oct 3, 2024
463dca6
Make pip install run only once. This takes 15s to a minute and would …
jmarrec Oct 3, 2024
3f564f5
Change getter to double and remove reset for now-required-fields in C…
jmarrec Oct 3, 2024
538fcbe
Add Getters/Setters and fuelTypes test for the CHillers
jmarrec Oct 3, 2024
9a116f0
Strip trailing spaces in IDDs
jmarrec Oct 3, 2024
25612d7
Add site Gtest
jmarrec Oct 3, 2024
9529bfe
Remove isSizingOptionDefailted and resetter now that it's required-field
jmarrec Oct 3, 2024
b67ec50
Fixup children and ScheduleRegistry for Chiller Objects
jmarrec Oct 3, 2024
163c3b8
Add a full FT test for CHillerElectricEIR (wasn't present)
jmarrec Oct 3, 2024
0840089
Add a full FT test for ChillerElectricReformulatedEIR. setHeatRecover…
jmarrec Oct 3, 2024
813ed66
Correct the ReformulatedEIR Leaving Setpoint Node field
jmarrec Oct 3, 2024
576b537
Add Node convenience getters for ChillerEIRs
jmarrec Oct 3, 2024
e8d87e6
Merge branch 'v24.2.0-tests' of github.com:NREL/OpenStudio into v24.2…
joseph-robertson Oct 3, 2024
9c8cdd0
Add a full FT test for Site (wasn't present).
joseph-robertson Oct 3, 2024
85d43f6
Use correct site fields.
joseph-robertson Oct 3, 2024
1fb339a
Site terrain is not included in FT.
joseph-robertson Oct 3, 2024
a984d95
Merge pull request #5265 from NREL/v24.2.0-tests
joseph-robertson Oct 3, 2024
2d8749d
Start to update cmakelists.
joseph-robertson Oct 3, 2024
2b320b5
Add more installer hashes.
joseph-robertson Oct 3, 2024
7d3ed1d
Make new aterm heating control type required.
joseph-robertson Oct 3, 2024
131429e
Add new ft test files for aterms.
joseph-robertson Oct 3, 2024
565f1b2
Formatting.
joseph-robertson Oct 3, 2024
47f40da
Use FanSystemModel in ft tests, and update node names.
joseph-robertson Oct 3, 2024
968ad4d
Include Node in ft test files.
joseph-robertson Oct 3, 2024
849d53a
Merge pull request #5268 from NREL/v24.2.0-IOFreeze-aterm2
joseph-robertson Oct 3, 2024
4b2c04d
Merge branch 'v24.2.0-IOFreeze' into v24.2.1-RC1
joseph-robertson Oct 3, 2024
5e2016b
Merge pull request #5266 from NREL/pip_install_once
jmarrec Oct 4, 2024
66782e8
Update site ft test comment. [ci skip]
joseph-robertson Oct 4, 2024
7d61e87
Update eplus release name.
joseph-robertson Oct 4, 2024
e34e5a2
Merge branch 'v24.2.0-IOFreeze' into v24.2.1-RC1
joseph-robertson Oct 4, 2024
61df624
Update all hashes
jmarrec Oct 7, 2024
25fec1d
Merge pull request #5267 from NREL/v24.2.1-RC1
jmarrec Oct 7, 2024
3ccb0f9
Bump actions
jmarrec Oct 4, 2024
be576ec
Fix the ParallPIU test
jmarrec Oct 7, 2024
ce9d156
Try to unbrick cppcheck that runs on a too old container for node20
jmarrec Oct 8, 2024
a81ac39
ubunut 22.04 has cppcheck 2.7, use focal so I can use my PPA.
jmarrec Oct 8, 2024
d140f59
Merge branch 'develop' into v24.2.0-IOFreeze
joseph-robertson Oct 9, 2024
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
2 changes: 1 addition & 1 deletion .github/workflows/clangformat.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ jobs:

- name: Upload clang-format patch as artifact
if: ${{ failure() }}
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: OpenStudio-${{ github.sha }}-clang_format.patch
path: clang_format.patch
21 changes: 16 additions & 5 deletions .github/workflows/cppcheck.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,22 @@ on:

jobs:
build:
runs-on: ubuntu-latest
container:
image: nrel/cppcheck:2.3
runs-on: ubuntu-20.04
# That container is too old to work with the actions that are on node20 now...
#container:
# image: nrel/cppcheck:2.3
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4

- name: Install cppcheck
shell: bash
run: |
# I made a PPA on launchpad where I built cppcheck 2.3 for focal
sudo add-apt-repository ppa:jmarrec/ppa
sudo apt update
sudo apt install -y cppcheck
cppcheck --version
Comment on lines +11 to +26
Copy link
Collaborator

@jmarrec jmarrec Oct 8, 2024

Choose a reason for hiding this comment

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

Unbrick the cppcheck workflow... since that one is on Github actions, I can do that. And apparently I had already made a launchpad PPA that built cppcheck 2.3 for focal a year ago (can't remember how I did that...)

- name: Run cppcheck
shell: bash
run: |
Expand Down Expand Up @@ -57,7 +68,7 @@ jobs:

- name: Upload cppcheck results as artifact
if: ${{ always() }}
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: OpenStudio-${{ github.sha }}-cppcheck_results.txt
path: cppcheck.txt
2 changes: 1 addition & 1 deletion .github/workflows/dependabot_conan.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ jobs:
steps:
- uses: actions/checkout@v4

- uses: actions/setup-python@v4
- uses: actions/setup-python@v5
with:
python-version: '3.x'

Expand Down
2 changes: 1 addition & 1 deletion CMake/FindEnergyPlus.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ foreach(PATH ${ENERGYPLUS_POSSIBLE_PATHS})
endif()

# we just need to read the first part of this large file
file(READ "${ENERGYPLUS_IDD}" IDD_TEXT LIMIT 1000)
file(READ "${ENERGYPLUS_IDD}" IDD_TEXT LIMIT 1000)
string(REGEX MATCH "!IDD_BUILD [0-9a-z][0-9a-z][0-9a-z][0-9a-z][0-9a-z][0-9a-z][0-9a-z][0-9a-z][0-9a-z][0-9a-z]" BUILD_SHA_LINE "${IDD_TEXT}")
string(REGEX MATCH "[0-9a-z][0-9a-z][0-9a-z][0-9a-z][0-9a-z][0-9a-z][0-9a-z][0-9a-z][0-9a-z][0-9a-z]" BUILD_SHA "${BUILD_SHA_LINE}")
set(ENERGYPLUS_GE_8_2_0 TRUE)
Expand Down
49 changes: 26 additions & 23 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ if(CCACHE_PROGRAM)
endif()

# Project macro can only take digits in the version, it splits these out to specific variables
project(OpenStudio VERSION 3.8.0)
project(OpenStudio VERSION 3.9.0)
joseph-robertson marked this conversation as resolved.
Show resolved Hide resolved

include(CMake/compiler_flags.cmake)

Expand Down Expand Up @@ -161,7 +161,7 @@ get_directory_property(hasParent PARENT_DIRECTORY)

# TODO: Modify the more specific variables as needed to indicate prerelease, etc
# Keep in beta in-between release cycles. Set to empty string (or comment out) for official)
set(PROJECT_VERSION_PRERELEASE "")
set(PROJECT_VERSION_PRERELEASE "alpha")

# OpenStudio version: Only include Major.Minor.Patch, eg "3.0.0", even if you have a prerelease tag
set(OPENSTUDIO_VERSION "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}")
Expand Down Expand Up @@ -192,15 +192,15 @@ endif()

# EnergyPlus Idd version
set(ENERGYPLUS_VERSION_MAJOR 24)
set(ENERGYPLUS_VERSION_MINOR 1)
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 "9d7789a3ac")
set(ENERGYPLUS_BUILD_SHA "94a887817b")

# ENERGYPLUS_RELEASE_NAME is used to locate the E+ download
# from the github releases
set(ENERGYPLUS_RELEASE_NAME "v24.1.0")
set(ENERGYPLUS_RELEASE_NAME "v24.2.0a")

set(ENERGYPLUS_REPO "NREL")

Expand Down Expand Up @@ -639,26 +639,30 @@ endif()
if(UNIX)
if(APPLE)
if (ARCH MATCHES "arm64")
set(ENERGYPLUS_EXPECTED_HASH 3b465e87fc07e18db458e1d058da447b)
set(ENERGYPLUS_PLATFORM "Darwin-macOS12.1-arm64")
set(ENERGYPLUS_EXPECTED_HASH f36afc055a675ae95523d6f41ec478c0)
set(ENERGYPLUS_PLATFORM "Darwin-macOS13-arm64")
else()
set(ENERGYPLUS_EXPECTED_HASH 4f15adccac3df1e699d26f815800c783)
set(ENERGYPLUS_PLATFORM "Darwin-macOS11.6-x86_64")
set(ENERGYPLUS_EXPECTED_HASH b2003c461277c0bd4e91a4c003b350ac)
set(ENERGYPLUS_PLATFORM "Darwin-macOS12.1-x86_64")
endif()
elseif(LSB_RELEASE_ID_SHORT MATCHES "CentOS")
set(ENERGYPLUS_EXPECTED_HASH c31dfb86d8967636fca0a1ecf4052f22)
set(ENERGYPLUS_EXPECTED_HASH 4000e06b944daf4f2b0841ac0d3873b5)
set(ENERGYPLUS_PLATFORM "Linux-CentOS7.9.2009-x86_64")
else()
if(LSB_RELEASE_VERSION_SHORT MATCHES "22.04")
if(LSB_RELEASE_VERSION_SHORT MATCHES "24.04")
if (ARCH MATCHES "arm64")
set(ENERGYPLUS_EXPECTED_HASH 2e1e9516b39ca8046b7cf79ad3a81fa7)
set(ENERGYPLUS_EXPECTED_HASH afc61e89b7f9e2658c3d99778be50be0)
else()
set(ENERGYPLUS_EXPECTED_HASH fb171a5da7d41da80da7868686b41126)
set(ENERGYPLUS_EXPECTED_HASH 22b3e5f6071d6011ffeeacf854a97c73)
endif()
elseif(LSB_RELEASE_VERSION_SHORT MATCHES "20.04")
set(ENERGYPLUS_EXPECTED_HASH 4ea21126c3989cad35078a711573572e)
else() # 18.04
message(FATAL_ERROR "EnergyPlus no longer provides packages for Ubuntu 18.04")
elseif(LSB_RELEASE_VERSION_SHORT MATCHES "22.04")
if (ARCH MATCHES "arm64")
set(ENERGYPLUS_EXPECTED_HASH 3c18cb8063ec30ef591109ddf8842bf0)
else()
set(ENERGYPLUS_EXPECTED_HASH 9f11a16e6f8a7d658791c5389d700ef1)
endif()
else() # e.g., 18.04, 20.04
message(FATAL_ERROR "EnergyPlus no longer provides packages for Ubuntu < 22.04")
endif()
set(ENERGYPLUS_PLATFORM "Linux${ENERGYPLUS_SYSTEM_VERSION}-${ARCH}")
endif()
Expand All @@ -685,19 +689,18 @@ if(UNIX)
endif()

execute_process(COMMAND ${CMAKE_COMMAND} -E remove_directory "${PROJECT_BINARY_DIR}/${ENERGYPLUS_PATH}")

file(REMOVE "${PROJECT_BINARY_DIR}/python/engine/pip_install_done.stamp")
endif()

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 c9dd8a23b64d1327d00c5d85896b46bb)
set(ENERGYPLUS_EXPECTED_HASH 6a2d1d43d64490c87d894ed58f71ccdc)
else()
set(ENERGYPLUS_PATH "EnergyPlus-${ENERGYPLUS_VERSION}-${ENERGYPLUS_BUILD_SHA}-Windows-i386")
set(ENERGYPLUS_ARCH 32)
set(ENERGYPLUS_EXPECTED_HASH 766cf42388ca5b682800fe6ded8ac3ee)
set(ENERGYPLUS_REPO "jmarrec")
set(ENERGYPLUS_EXPECTED_HASH 7f0c2901399f43bff6e23c01a5992df1)
endif()
if(EXISTS "${PROJECT_BINARY_DIR}/${ENERGYPLUS_PATH}.zip")
file(MD5 "${PROJECT_BINARY_DIR}/${ENERGYPLUS_PATH}.zip" ENERGYPLUS_HASH)
Expand All @@ -711,7 +714,7 @@ elseif(WIN32)
EXPECTED_MD5 ${ENERGYPLUS_EXPECTED_HASH})

execute_process(COMMAND ${CMAKE_COMMAND} -E remove_directory "${PROJECT_BINARY_DIR}/${ENERGYPLUS_PATH}")

file(REMOVE "${PROJECT_BINARY_DIR}/python/engine/pip_install_done.stamp")
endif()

endif()
Expand Down Expand Up @@ -1358,7 +1361,7 @@ install(FILES "${ENERGYPLUS_EPJSON_SCHEMA}" DESTINATION ./EnergyPlus/ COMPONENT
install(PROGRAMS ${ENERGYPLUS_FILES} DESTINATION ./EnergyPlus/ COMPONENT EnergyPlus)
install(PROGRAMS ${ENERGYPLUS_LIB_FILES} DESTINATION ./EnergyPlus/ COMPONENT EnergyPlus)
install(PROGRAMS "${EXPAND_OBJECTS}" DESTINATION ./EnergyPlus/ COMPONENT EnergyPlus)
install(DIRECTORY "${ENERGYPLUS_DIR}/python_standard_lib" DESTINATION ./EnergyPlus/ COMPONENT EnergyPlus)
install(DIRECTORY "${ENERGYPLUS_DIR}/python_lib" DESTINATION ./EnergyPlus/ COMPONENT EnergyPlus)
install(DIRECTORY "${ENERGYPLUS_DIR}/pyenergyplus" DESTINATION ./EnergyPlus/ COMPONENT EnergyPlus)

if(APPLE)
Expand Down
6 changes: 3 additions & 3 deletions conanfile.py
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ def generate(self):

if self.options.with_python:
v = sys.version_info
if (v.major, v.minor) == (3, 8):
if (v.major, v.minor) == (3, 12):
python_version = f"{v.major}.{v.minor}.{v.micro}"
self.output.info(
f"Setting PYTHON_VERSION and Python_ROOT_DIR from your current python: {python_version}, '{sys.base_prefix}'"
Expand All @@ -110,8 +110,8 @@ def generate(self):
tc.cache_variables["Python_ROOT_DIR"] = str(Path(sys.base_prefix))
else:
self.output.warning(
"Your current python is not in the 3.8.x range, which is what we target.\n"
"Your current python is not in the 3.12.x range, which is what we target.\n"
"You'll need to pass it properly when configuring CMake\n"
"via -DPYTHON_VERSION:STRING='3.8.xx' and -DPython_ROOT_DIR:PATH='/path/to/python3.8/'"
"via -DPYTHON_VERSION:STRING='3.12.xx' and -DPython_ROOT_DIR:PATH='/path/to/python3.12/'"
)
tc.generate()
4 changes: 0 additions & 4 deletions python/SetupPython.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -35,10 +35,6 @@ else()
endif()
endif()

execute_process(COMMAND ${CMAKE_COMMAND} -E env --unset=PIP_REQUIRE_VIRTUALENV ${Python_EXECUTABLE}
-m pip install --target=${ENERGYPLUS_DIR}/python_standard_lib --upgrade -r ${PROJECT_SOURCE_DIR}/python/requirements.txt
)

get_filename_component(Python_PROGRAM_NAME ${Python_EXECUTABLE} NAME)

get_filename_component(RESOLVED_PYTHON_LIBRARY "${Python_LIBRARIES}" REALPATH)
Expand Down
21 changes: 21 additions & 0 deletions python/engine/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,27 @@ target_compile_options(pythonengine PRIVATE

target_compile_definitions(pythonengine PRIVATE openstudio_scriptengine_EXPORTS SHARED_OS_LIBS)

# Add a command to pip install the requirements into the E+ folder and generate a stamp file
# Make it depend on the requirements.txt, so that it reruns when it changes
add_custom_command(
OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/pip_install_done.stamp"
COMMAND ${CMAKE_COMMAND} -E touch "${CMAKE_CURRENT_BINARY_DIR}/pip_install_done.stamp"
COMMAND ${CMAKE_COMMAND} -E env --unset=PIP_REQUIRE_VIRTUALENV ${Python_EXECUTABLE}
-m pip install --target=${ENERGYPLUS_DIR}/python_lib --upgrade -r ${PROJECT_SOURCE_DIR}/python/requirements.txt
DEPENDS ${PROJECT_SOURCE_DIR}/python/requirements.txt
)

# And a target that calls the above command. It is NOT called by default
add_custom_target(pip_install
DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/pip_install_done.stamp"
)

if(BUILD_CLI)
# When you build CLI, we want the pip_install to run, so add it as a dependency
# which will ensure it's run (beforehand, at **build** not configure time)
add_dependencies(pythonengine pip_install)
endif()

if(BUILD_TESTING)
set(pythonengine_test_depends
openstudio_scriptengine
Expand Down
2 changes: 1 addition & 1 deletion python/engine/PythonEngine.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ PythonEngine::PythonEngine(int argc, char* argv[]) : ScriptEngine(argc, argv), p
Py_FrozenFlag = 1;

// Path to the E+ shipped standard library
auto pathToPythonPackages = getEnergyPlusDirectory() / "python_standard_lib";
auto pathToPythonPackages = getEnergyPlusDirectory() / "python_lib";

// The PYTHONPATH / PYTHONHOME should be set before initializing Python
// If this Py_SetPath is called before Py_Initialize, then Py_GetPath won't attempt to compute a default search path
Expand Down
4 changes: 4 additions & 0 deletions python/engine/test/PythonEngine_GTest.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,7 @@ TEST_F(PythonEngineFixture, WrongMethodMeasure) {
Traceback (most recent call last):
File "{}", line 14, in arguments
model.nonExistingMethod()
^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'Model' object has no attribute 'nonExistingMethod')",
scriptPath.generic_string());

Expand Down Expand Up @@ -117,10 +118,13 @@ Traceback (most recent call last):
s(10)
File "{0}", line 6, in s
return s(x)
^^^^
File "{0}", line 6, in s
return s(x)
^^^^
File "{0}", line 6, in s
return s(x)
^^^^
[Previous line repeated 996 more times]
RecursionError: maximum recursion depth exceeded)",
scriptPath.generic_string());
Expand Down
12 changes: 6 additions & 6 deletions python/requirements.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
jinja2 == 3.1.3
numpy == 1.24.4
pandas == 2.0.3
pytest == 8.1.1
coverage == 7.4.4
jinja2 == 3.1.4
numpy == 2.0.2
pandas == 2.2.3
pytest == 8.3.3
coverage == 7.6.1
pytest-cov == 5.0.0
# pytest-xdist == 3.5.0
# pytest-xdist == 3.6.1
1 change: 1 addition & 0 deletions resources/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -126,6 +126,7 @@ set(utilities_resources_src
utilities/SqlFile/1ZoneEvapCooler-V23-1-0.sql
utilities/SqlFile/1ZoneEvapCooler-V23-2-0.sql
utilities/SqlFile/1ZoneEvapCooler-V24-1-0.sql
utilities/SqlFile/1ZoneEvapCooler-V24-2-0.sql
utilities/xml/base.xml
utilities/xml/hpxml_with_error.xml
utilities/xml/schema/HPXML.xsd
Expand Down
3 changes: 2 additions & 1 deletion resources/IdfFilesToTransition.lst.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
- Run an initial build to produce build/resources/IdfFilesToTransition.lst from resources/IdfFilesToTransition.lst.in.
- Install the appropriate version of EnergyPlus.
- Open EnergyPlus/PreProcess/IDFVersionUpdater/IDFVersionUpdate.exe.
- Open EnergyPlus/PreProcess/IDFVersionUpdater/IDFVersionUpdater.exe.
- Choose File to Update... > build/resources/IdfFilesToTransition.lst.
- New Version should auto-populate to version of EnergyPlus.
- Create Intermediate Version Files > No.
- Delete Original Files > Yes.
- Click Update File.
2 changes: 1 addition & 1 deletion resources/energyplus/5ZoneAirCooled/in.idf
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@
! Environmental Emissions: None
! Utility Tariffs: None

Version,24.1;
Version,24.2;

Building,
Building, !- Name
Expand Down
2 changes: 1 addition & 1 deletion resources/energyplus/AllFuelTypes/in.idf
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Version,24.1;
Version,24.2;

Timestep,6;

Expand Down
2 changes: 1 addition & 1 deletion resources/energyplus/BestestEx/in.idf
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
!BESTEST-EX Case L200EX-PH BASE-CASE, developed by NREL
!Use EnergyPlus IDFEditor to view inputs in IP units

Version,24.1;
Version,24.2;

SimulationControl,
No, !- Do Zone Sizing Calculation
Expand Down
10 changes: 5 additions & 5 deletions resources/energyplus/Daylighting_Office/in.idf
Original file line number Diff line number Diff line change
Expand Up @@ -140,7 +140,7 @@
! schedule types, always on schedule, misc
! ***GENERAL SIMULATION PARAMETERS***

Version,24.1;
Version,24.2;

SimulationControl,
YES, !- Do Zone Sizing Calculation
Expand Down Expand Up @@ -5155,7 +5155,7 @@

Output:IlluminanceMap,
561303, !- Name
Perimeter_ZN_1, !- Zone Name
Perimeter_ZN_1, !- Zone or Space Name
0.762000, !- Z height {m}
5.087288, !- X Minimum Coordinate {m}
22.407288, !- X Maximum Coordinate {m}
Expand All @@ -5166,7 +5166,7 @@

Output:IlluminanceMap,
77F9B2, !- Name
Perimeter_ZN_3, !- Zone Name
Perimeter_ZN_3, !- Zone or Space Name
0.762000, !- Z height {m}
5.294518, !- X Minimum Coordinate {m}
22.214518, !- X Maximum Coordinate {m}
Expand All @@ -5177,7 +5177,7 @@

Output:IlluminanceMap,
987B1B, !- Name
Perimeter_ZN_2, !- Zone Name
Perimeter_ZN_2, !- Zone or Space Name
0.762000, !- Z height {m}
23.289008, !- X Minimum Coordinate {m}
27.289008, !- X Maximum Coordinate {m}
Expand All @@ -5188,7 +5188,7 @@

Output:IlluminanceMap,
3C7C62, !- Name
Perimeter_ZN_4, !- Zone Name
Perimeter_ZN_4, !- Zone or Space Name
0.762000, !- Z height {m}
0.459146, !- X Minimum Coordinate {m}
4.619146, !- X Maximum Coordinate {m}
Expand Down
4 changes: 2 additions & 2 deletions resources/energyplus/Daylighting_School/in.idf
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@
! WeatherFileName=USA_CO_Boulder_TMY2.epw
! End SimMetaData

Version,24.1;
Version,24.2;

Timestep,6;

Expand Down Expand Up @@ -2483,7 +2483,7 @@

Output:IlluminanceMap,
Classroom Illuminance Map, !- Name
Classroom, !- Zone Name
Classroom, !- Zone or Space Name
0.762, !- Z height {m}
0.9144, !- X Minimum Coordinate {m}
8.2296, !- X Maximum Coordinate {m}
Expand Down
2 changes: 1 addition & 1 deletion resources/energyplus/FrameAndDivider/in.idf
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Version,24.1;
Version,24.2;

Timestep,4;

Expand Down
Loading