Skip to content

Commit d9c2553

Browse files
authored
Merge 756096b into 35a008a
2 parents 35a008a + 756096b commit d9c2553

File tree

17 files changed

+1388
-56
lines changed

17 files changed

+1388
-56
lines changed

doc/engineering-reference/src/special-modules-reporting/resilience-metrics.tex

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ \subsubsection{Heat Index}\label{heat-index}
6666
\end{tabular}
6767
\end{table}
6868

69-
The computation of the heat index is a refinement of a result obtained by
69+
Before version 25.1, the computation of the heat index is a refinement of a result obtained by
7070
multiple regression analysis carried out by Lans P. Rothfusz and described in a
7171
1990 National Weather Service (NWS) Technical Attachment (SR 90-23) [4-5]. The
7272
calculation is based on degree Fahrenheit.
@@ -130,6 +130,17 @@ \subsubsection{Heat Index}\label{heat-index}
130130
regression is not valid for extreme temperature and relative humidity conditions
131131
beyond the range of data considered by Steadman.
132132

133+
Starting from version 25.1, the heat index calculation allows the use of the extended heat
134+
index method developed by Lu \& Romps [17]. By selecting ``Extended'' in the ``Algorithm''
135+
field of HeatIndexAlgorithm, this extended heat index will be used. If the field is
136+
``Simplified'' or left empty, the Rothfusz-Steadman method described above will be used.
137+
The heat index calculated with Rothfusz-Steadman method can give
138+
unrealistic results for very hot and humid or very cold and dry conditions. The
139+
extended index extends the domain of the heat index calculation to all
140+
combinations of temperature and relative humidity and gives a more realistic heat
141+
index for the extreme conditions. The implementation in EnergyPlus is based on
142+
the released Python code by Lu and Romps [18].
143+
133144
The Heat Index Hours (accumulated hours for a space) and Heat Index
134145
OccupantHours (accumulated hours for the sum of all occupants in a space) of
135146
each level for each zone and the whole building are reported under the Annual
@@ -516,3 +527,11 @@ \subsection{References}
516527

517528
{[}16{]} ACGIH, Threshold Limit Values (TLVs) and Biological Exposure Indices
518529
(BEIs), 2012. doi:10.1073/pnas.0703993104.
530+
531+
{[}17{]} Lu, Yi-Chuan, and David M. Romps. ``Extending the heat index''. Journal
532+
of Applied Meteorology and Climatology 61, no. 10 (2022): 1367-1383.
533+
doi:10.1073/pnas.0703993104.
534+
535+
{[}18{]} Lu, Yi-Chuan, and David M. Romps. ``Lu and Romps, Extending the heat index, JAMC, 2022'',
536+
Physics of Climate, February 23, 2023.
537+
https://romps.berkeley.edu/papers/pubs-2020-heatindex.html.

doc/input-output-reference/src/input-for-output.tex

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -346,6 +346,21 @@ \subsubsection{Inputs}\label{inputs-7-021}
346346
OutputControl:ReportingTolerances,.21,.21;
347347
\end{lstlisting}
348348

349+
\subsection{OutputControl:ResilienceSummaries}\label{OutputControlResilienceSummaries}
350+
351+
This input specifies methods or algorithms used in certain resilience reporting variables.
352+
353+
\subsubsection{Inputs}\label{inputs-8-020}
354+
355+
\paragraph{Field: Heat Index Algorithm}\label{Heat-Index-Algorithm}
356+
357+
This field has two choices: \textbf{Simplified} and \textbf{Extended}. The
358+
Simplified option is the default and by choosing this, the heat index will be
359+
calculated using the method based on regression analysis carried out by Lans P.
360+
Rothfusz. When Extended is selected, the heat index will be computed using the
361+
extended heat index method developed by Lu \& Romps. Note that using the
362+
Extended method is slower to simulate.
363+
349364
\subsection{Output:Variable}\label{outputvariable}
350365

351366
This input object is used request results reporting.~ As shown above in the Variable Dictionary Report section, there are many different output variables available for reporting results from EnergyPlus.~ The Output:Variable object is primarily used for reporting time series data at various frequencies.

idd/Energy+.idd.in

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107028,6 +107028,18 @@ OutputControl:ReportingTolerances,
107028107028
\minimum 0
107029107029
\maximum 10
107030107030

107031+
OutputControl:ResilienceSummaries,
107032+
\memo Specifies methods for resilience reporting variables
107033+
\unique-object
107034+
A1 ; \field Heat Index Algorithm
107035+
\note Whether the simplified or the extended method should be used for heat index
107036+
\note Simplified: based on regression analysis carried out by Lans P. Rothfusz
107037+
\note Extended: Based on paper by Lu & Romps
107038+
\type choice
107039+
\key Simplified
107040+
\key Extended
107041+
\default Simplified
107042+
107031107043
Output:Variable,
107032107044
\memo each Output:Variable command picks variables to be put onto the standard output file (.eso)
107033107045
\memo some variables may not be reported for every simulation.

src/EnergyPlus/CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -265,6 +265,8 @@ set(SRC
265265
EvaporativeFluidCoolers.hh
266266
ExhaustAirSystemManager.cc
267267
ExhaustAirSystemManager.hh
268+
ExtendedHeatIndex.cc
269+
ExtendedHeatIndex.hh
268270
ExteriorEnergyUse.cc
269271
ExteriorEnergyUse.hh
270272
ExternalInterface.cc

src/EnergyPlus/DataHeatBalance.hh

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -547,6 +547,19 @@ namespace DataHeatBalance {
547547
{
548548
}
549549
};
550+
551+
enum class HeatIndexMethod : int
552+
{
553+
Invalid = -1,
554+
Simplified,
555+
Extended,
556+
Num
557+
};
558+
static constexpr std::array<std::string_view, static_cast<int>(HeatIndexMethod::Num)> HeatIndexMethodUC = {
559+
"SIMPLIFIED",
560+
"EXTENDED",
561+
};
562+
550563
struct ZoneData : ZoneSpaceData
551564
{
552565
// Members
@@ -1849,6 +1862,7 @@ struct HeatBalanceData : BaseGlobalStruct
18491862
bool NoRegularMaterialsUsed = true;
18501863
bool DoLatentSizing = false; // true when latent sizing is performed during zone sizing
18511864
bool isAnyLatentLoad = false;
1865+
DataHeatBalance::HeatIndexMethod heatIndexMethod = DataHeatBalance::HeatIndexMethod::Simplified;
18521866

18531867
Array1D<Real64> ZoneListSNLoadHeatEnergy;
18541868
Array1D<Real64> ZoneListSNLoadCoolEnergy;

0 commit comments

Comments
 (0)