Skip to content

Commit 51d6f61

Browse files
committed
Merge remote-tracking branch 'remotes/origin/develop' into 11061MissingNodesinWaterHeaterMixedErrorMessageLevel
2 parents ee7138b + 0200bea commit 51d6f61

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

50 files changed

+1140
-1039
lines changed

.github/workflows/build_documentation.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@ jobs:
2020
- os: ubuntu-24.04
2121
generator: "Unix Makefiles"
2222
pretty: 'Ubuntu 24.04'
23-
- os: windows-2019
24-
generator: "Visual Studio 16 2019"
23+
- os: windows-2022
24+
generator: "Visual Studio 17 2022"
2525
pretty: "Windows"
2626

2727
runs-on: ${{ matrix.os }}

CMakeLists.txt

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
cmake_minimum_required(VERSION 3.19)
1+
cmake_minimum_required(VERSION 3.19...4.0.3) # policy_max is set, so that will impliclty invoke cmake_policy(VERSION <min>[...<max>])
22

33
# Use ccache if available, has to be before "project()"
44
find_program(CCACHE_PROGRAM NAMES ccache sccache)
@@ -11,10 +11,6 @@ if(CCACHE_PROGRAM)
1111
set(CMAKE_C_COMPILER_LAUNCHER ${CCACHE_PROGRAM} CACHE FILEPATH "C compiler cache used")
1212
endif()
1313

14-
cmake_policy(SET CMP0048 NEW) # handling project_version_* variables
15-
16-
cmake_policy(SET CMP0087 NEW) # install(CODE) and install(SCRIPT) support generator expressions.
17-
1814
project(EnergyPlus)
1915

2016
# Raise an error if attempting to compile on macOS older than 10.15 - it does not work
@@ -26,12 +22,6 @@ if (APPLE)
2622
endif()
2723
endif()
2824

29-
if(${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} VERSION_GREATER "3.0")
30-
cmake_policy(SET CMP0054 NEW) # CMake 3.1 added this policy
31-
endif()
32-
33-
cmake_policy(SET CMP0012 NEW) # if() recognizes boolean constants
34-
3525
set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake" ${CMAKE_MODULE_PATH})
3626

3727
set(CMAKE_POSITION_INDEPENDENT_CODE ON)

cmake/PythonSetupAPIinBuild.cmake

Lines changed: 13 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,22 @@
11
# Sets up the pyenergyplus Python package, which is the EnergyPlus Python API wrapper, in the build tree, next to E+
2-
# set REPO_ROOT, EXECUTABLE_PATH (path to energyplus.exe), and E+ and API major/minor/etc version variables when calling
3-
4-
message("PYTHON: Path to built EnergyPlus binaries: ${EXECUTABLE_PATH}")
5-
6-
# get the parent path of the current EXE and drop the pyenergyplus stuff in there
7-
get_filename_component(EPLUS_EXE_DIR ${EXECUTABLE_PATH} DIRECTORY)
2+
# set REPO_ROOT, EPLUS_EXE_DIR (path to folder containing energyplus.exe), and E+ and API major/minor/etc version variables when calling
83

94
# informative messaging
105
message("PYTHON: Setting up API, creating pyenergyplus package at ${EPLUS_EXE_DIR}/pyenergyplus")
116

12-
# now do it
13-
if(NOT EXISTS "${EPLUS_EXE_DIR}/pyenergyplus")
14-
file(MAKE_DIRECTORY "${EPLUS_EXE_DIR}/pyenergyplus")
7+
set(API_TARGET_DIR "${EPLUS_EXE_DIR}/pyenergyplus")
8+
if(NOT EXISTS "${API_TARGET_DIR}")
9+
file(MAKE_DIRECTORY "${API_TARGET_DIR}")
1510
endif()
1611
set(API_SOURCE_DIR "${REPO_ROOT}/src/EnergyPlus/api")
17-
set(API_TARGET_DIR "${EPLUS_EXE_DIR}/pyenergyplus")
18-
configure_file("${API_SOURCE_DIR}/common.py" "${API_TARGET_DIR}/common.py")
19-
configure_file("${API_SOURCE_DIR}/datatransfer.py" "${API_TARGET_DIR}/datatransfer.py")
12+
# These two have CMake variable expansion in there
2013
configure_file("${API_SOURCE_DIR}/api.py" "${API_TARGET_DIR}/api.py")
21-
#configure_file( "${API_SOURCE_DIR}/autosizing.py" "${API_TARGET_DIR}/autosizing.py" )
2214
configure_file("${API_SOURCE_DIR}/func.py" "${API_TARGET_DIR}/func.py")
23-
configure_file("${API_SOURCE_DIR}/runtime.py" "${API_TARGET_DIR}/runtime.py")
24-
configure_file("${API_SOURCE_DIR}/plugin.py" "${API_TARGET_DIR}/plugin.py")
25-
configure_file("${API_SOURCE_DIR}/state.py" "${API_TARGET_DIR}/state.py")
26-
configure_file("${API_SOURCE_DIR}/__init__.py" "${API_TARGET_DIR}/__init__.py")
15+
# These are copy only
16+
configure_file("${API_SOURCE_DIR}/common.py" "${API_TARGET_DIR}/common.py" COPYONLY)
17+
configure_file("${API_SOURCE_DIR}/datatransfer.py" "${API_TARGET_DIR}/datatransfer.py" COPYONLY)
18+
#configure_file( "${API_SOURCE_DIR}/autosizing.py" "${API_TARGET_DIR}/autosizing.py" )
19+
configure_file("${API_SOURCE_DIR}/runtime.py" "${API_TARGET_DIR}/runtime.py" COPYONLY)
20+
configure_file("${API_SOURCE_DIR}/plugin.py" "${API_TARGET_DIR}/plugin.py" COPYONLY)
21+
configure_file("${API_SOURCE_DIR}/state.py" "${API_TARGET_DIR}/state.py" COPYONLY)
22+
configure_file("${API_SOURCE_DIR}/__init__.py" "${API_TARGET_DIR}/__init__.py" COPYONLY)

doc/input-output-reference/src/overview/group-airflow.tex

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,17 +6,17 @@ \section{Group -- Airflow}\label{group-airflow}
66

77
\subsection{ZoneInfiltration:DesignFlowRate}\label{zoneinfiltrationdesignflowrate}
88

9-
Infiltration is the unintended flow of air from the outdoor environment directly into a thermal zone. Infiltration is generally caused by the opening and closing of exterior doors, cracks around windows, and even in very small amounts through building elements. The basic equation used to calculate infiltration with this object is:
9+
Infiltration is the unintended flow of air from the outdoor environment directly into a thermal zone. Infiltration is generally caused by the opening and closing of exterior doors, cracks around windows and exterior doors, and even in very small amounts through building elements. The basic equation used to calculate infiltration with this object is:
1010

1111
\begin{equation}
1212
\rm{Infiltration} = \left( {{I_{design}}} \right)\left( {{F_{schedule}}} \right)\left[ {A + B\left| {\left( {{T_{zone}} - {T_{odb}}} \right)} \right| + C\left( {WindSpeed} \right) + D\left( {Windspee{d^2}} \right)} \right]
1313
\end{equation}
1414

1515
More advanced infiltration calculations are possible using the EnergyPlus AirflowNetwork model for natural infiltration driven by wind and/or by forced air. Infiltration described by the equation shown above is entered into EnergyPlus using the following syntax. Exfiltration (the leakage of zone air to the outside) is generally handled better as zone exhaust air in the zone equipment description. The equation must always yield a non-negative results; negative values are set to 0.0.
1616

17-
The question of typical values for these coefficients is subject to debate. Ideally, one should do a detailed analysis of the infiltration situation and then determine a custom set of coefficients using methods such as those laid out in Chapter 26 of the ASHRAE Handbook of Fundamentals. The EnergyPlus defaults are 1,0,0,0 which give a constant volume flow of infiltration under all conditions.
17+
The question of typical values for these coefficients is subject to debate. Ideally, one should do a detailed analysis of the infiltration situation and then determine a custom set of coefficients using methods such as those laid out in Chapter 26 of the ASHRAE Handbook of Fundamentals. The EnergyPlus defaults are 1,0,0,0 which give a constant volumetric flow of infiltration under all conditions.
1818

19-
BLAST (one of the EnergyPlus predecessors) used the following values as defaults: 0.606, 0.03636, 0.1177, 0. These coefficients produce a value of 1.0 at 0$^\circ$C deltaT and 3.35 m/s (7.5 mph) windspeed, which corresponds to a typical summer condition. At a winter condition of 40$^\circ$C deltaT and 6 m/s (13.4 mph) windspeed, these coefficients would increase the infiltration rate by a factor of 2.75.
19+
BLAST (one of the EnergyPlus predecessors) used the following values as defaults: 0.606, 0.03636, 0.1177, 0. These coefficients produce a value of 1.0 at 0$^\circ$C temperature difference between the inside and outside air temperatures and 3.35 m/s (7.5 mph) windspeed, which corresponds to a typical summer condition. At a winter condition of 40$^\circ$C temperature difference between the inside and outside air temperatures and 6 m/s (13.4 mph) windspeed, these coefficients would increase the infiltration rate by a factor of 2.75.
2020

2121
In DOE-2 (the other EnergyPlus predecessor), the air change method defaults are (adjusted to SI units) 0, 0, 0.224 (windspeed), 0. With these coefficients, the summer conditions above would give a factor of 0.75, and the winter conditions would give 1.34. A windspeed of 4.47 m/s (10 mph) gives a factor of 1.0.
2222

@@ -30,10 +30,10 @@ \subsection{ZoneInfiltration:DesignFlowRate}\label{zoneinfiltrationdesignflowrat
3030

3131
The local outdoor dry-bulb temperature used in the above basic equation (T\(_{odb}\)) is typically a function of the height of the zone centroid above ground. The corresponding zone name is given in the second field. The local outdoor dry-bulb temperature calculation procedure is given in the section of ``Local Outdoor Air Temperature Calculation'' in the Engineering Reference.
3232

33-
The local outdoor wind speed used in the above basic equation (WindSpeed) is also a function of the height of the zone centroid above ground. The corresponding zone name is given in the second filed. The local outdoor wind speed calculation procedure is given in the section of ``Local Wind Speed Calculation'' in the Engineering Reference.
33+
The local outdoor wind speed used in the above basic equation (WindSpeed) is also a function of the height of the zone centroid above ground. The corresponding zone name is given in the second field. The local outdoor wind speed calculation procedure is given in the section of ``Local Wind Speed Calculation'' in the Engineering Reference.
3434

3535
\begin{callout}
36-
Note: When the value of the Wind Speed Profile Exponent field in the \hyperref[siteheightvariation]{Site:HeightVariation} is equal to 0.0. The local wind speed is always equal to the wind speed given in the weather data and will not be dependent on zone centroid height. Similarly, if the value of the Air Temperature Gradient Coefficient is set equal to 0 the local air dry-bulb temperature is also always equal to the air dry-bulb temperature given in the weather data and will not be dependent on zone centroid height.
36+
Note: When the value of the Wind Speed Profile Exponent field in the \hyperref[siteheightvariation]{Site:HeightVariation} is equal to 0.0, the local wind speed is always equal to the wind speed given in the weather data and will not be dependent on zone centroid height. Similarly, if the value of the Air Temperature Gradient Coefficient is set equal to 0, the local air dry-bulb temperature is also always equal to the air dry-bulb temperature given in the weather data and will not be dependent on zone centroid height.
3737
\end{callout}
3838

3939
One or more infiltration objects can be defined for each zone, and the resulting infiltration rate for the zone will simply be the summation of the flow rates specified by the infiltration objects.

doc/input-output-reference/src/overview/group-coil-cooling-dx.tex

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,11 @@ \subsubsection{Inputs}\label{inputs-02}
105105

106106
This numeric field defines the crankcase heater capacity in Watts. When the outdoor air dry-bulb temperature is below the value specified in the input field Maximum Outdoor Dry-bulb Temperature for Crankcase Heater Operation (described below), the crankcase heater is enabled during the time that the compressor is not running. If this cooling coil is used as part of an air-to-air heat pump (Ref. AirLoopHVAC:UnitaryHeatPump:AirToAir or PackageTerminal: HeatPump:AirToAir), the crankcase heater defined for this DX cooling coil is ignored and the crankcase heater power defined for the DX heating coil (Ref. Coil:Heating:DX:SingleSpeed) is enabled during the time that the compressor is not running for either heating or cooling. The value for this input field must be greater than or equal to 0, and the default value is 0. To simulate a DX cooling coil without a crankcase heater, enter a value of 0.
107107

108+
\paragraph{Field: Crankcase Heater Capacity Function of Temperature Curve Name}
109+
110+
The name of a normalized Curve:* or Table:Lookup object encoding the relationship between the crankcase heater capacity and the outdoor air temperature. This curve can be any uni-variate curve or table. The output of this curve is multiplied by the value in the field ``Crankcase Heater Capacity'. If this field is missing or empty, constant crankcase heater capacity will be
111+
assumed.
112+
108113
\paragraph{Field: Minimum Outdoor Dry-Bulb Temperature for Compressor Operation}
109114
110115
This numeric field defines the minimum outdoor air dry-bulb temperature where the cooling coil compressor turns off. If this input field is left blank, the default value is -25 °C (-13 °F).
@@ -154,15 +159,6 @@ \subsubsection{Inputs}\label{inputs-02}
154159

155160
If there are 3 operating modes, it represents a subcool-reheat mode coil. The Operating Mode 1 represents a base operating mode coil. The Operating Mode 2 represents a subcool mode coil with lower SHR than the Operating Mode 1. The Operating Mode 3 represents a reheat mode coil with lower SHR than the Operating Mode 2. All 3 operation modes work together to represent a subcool reheat coil model. The operation procedure is described in \ref{coilcoolingdx}
156161

157-
\paragraph{Field: Crankcase Heater Capacity Function of Temperature Curve Name}\label{outdoor-temperature-dependent-crankcase-heater-capacity-curve-name-0}
158-
159-
The name of a normalized Curve:* or Table:Lookup object encoding the
160-
relationship between the crankcase heater capacity and the outdoor air
161-
temperature. This curve can be any uni-variate curve or table. The output of
162-
this curve is multiplied by the value in the field ``Crankcase Heater Capacity'.
163-
If this field is missing or empty, constant crankcase heater capacity will be
164-
assumed.
165-
166162
\subsection{Coil:Cooling:DX:CurveFit:OperatingMode}\label{coilcoolingdxcurvefitoperatingmode}
167163

168164
This object defines DX cooling coil performance for a single operating mode at rated conditions. Each operating mode may have one or more speeds, which are defined using the Coil:Cooling:DX:CurveFit:Speed object. Each operation mode can reference a maximum of 10 Coil:Cooling:DX:CurveFit:Speed objects.

doc/input-output-reference/src/overview/group-daylighting.tex

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,8 @@ \subsection{Daylighting:ReferencePoint}\label{daylightingreferencepoint-000}
158158

159159
When the DElight Daylighting Method is used, there may be up to a maximum of 100 reference points for each zone. Each Reference Point that is input does NOT need to be included in the control of the electric lighting system within the zone. This is determined by the fraction of the zone controlled by each Reference Point, which can be input as 0. Note when the DElight Daylighting Method is used, that the sum of all Reference Point control fractions must equal 1 to obtain correct overall results.
160160

161+
It should also be noted that daylighting factors cannot be accurately calculated for reference points that are very close to a wall or window (less than 0.15 m or 6 inches). While an error is reported for a reference point that is too close to a window, no error message is generated when the user defines a point that is too close to a wall.
162+
161163
\subsubsection{Inputs}\label{inputs-010}
162164

163165
\paragraph{Field: Name}\label{field-name-002}
@@ -507,6 +509,13 @@ \subsection{Output:IlluminanceMap}\label{outputilluminancemap}
507509

508510
The Output:IlluminanceMap object expands on the reporting capabilities of the daylighting simulation. For any space or zone simulated with \hyperref[daylightingcontrols-000]{Daylighting:Controls}, the illuminance map can generate up to 2,500 points of additional daylighting illuminance values. The resulting map is output as a comma delimited text file that can be imported into a spreadsheet program for rapid visualization of the daylighting illuminance patterns in a space or zone. The values are produced on an hourly basis. The Z height of the map is constant (parallel to a flat floor). More than one illuminance map can be created for a space or zone. IlluminanceMap output is available only when SplitFlux daylighting method is selected in \hyperref[daylightingcontrols-000]{Daylighting:Controls} object.
509511

512+
When using the Output:IlluminanceMap object, the user should note the following:
513+
514+
\begin{itemize}
515+
\item Daylighting factors cannot be accurately calculated for reference points that are very close to a wall or window (less than 0.15 m or 6 inches). An error is reported for a reference point that is too close to a window, but no error is reported for a point that is too close to a wall.
516+
\item Since not all zones are rectangular, it is possible to have map points that are outside the zone. Any illuminance registered at these points is inaccurate and, additionally, a ``*'' marks these values for easy observance.
517+
\end{itemize}
518+
510519
\subsubsection{Inputs}\label{inputs-4-006}
511520

512521
\paragraph{Field: Name}\label{field-name-2-007}
@@ -545,8 +554,6 @@ \subsubsection{Inputs}\label{inputs-4-006}
545554

546555
The number of daylighting reference points in the Y direction from the minimum to the maximum boundaries. The maximum number of points that can be generated is 2500 (Number of X Grid Points X Number of Y Grid Points).
547556

548-
Note:~ Daylighting factors cannot be accurately calculated for reference points that are very close to a wall or window (less than 0.15 m or 6 inches). An error is reported for a reference point that is too close to a window, but no error is reported for a point that is too close to a wall.
549-
550557
\begin{lstlisting}
551558

552559
Output:IlluminanceMap,
@@ -561,8 +568,6 @@ \subsubsection{Inputs}\label{inputs-4-006}
561568
10; ! Number of Y grid Points
562569
\end{lstlisting}
563570

564-
Since not all zones are rectangular, it is possible to have map points that are outside the zone. Any illuminance registered at these points is inaccurate and, additionally, a ``*'' marks these values for easy observance.
565-
566571
\subsection{OutputControl:IlluminanceMap:Style}\label{outputcontrolilluminancemapstyle}
567572

568573
This object specifies the ``style'' for the illuminance map output (described in the Output Details and Examples document). As described early in the document (see: EnergyPlus Output Processing), the user may select the ``style'' for the daylighting illuminance map output file (eplusmap.\textless{}ext\textgreater{}).

0 commit comments

Comments
 (0)