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

Extended HI followup: fix speed issue #10733

Merged
merged 39 commits into from
Feb 13, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
39 commits
Select commit Hold shift + click to select a range
28bdb41
change rootsolver to BisectionThenRegulaFalsi to speed up
Sep 12, 2024
b9fe27e
Merge remote-tracking branch 'origin/develop' into extendedHIspeedFix
Sep 12, 2024
6e8fcc8
Revert "Revert "Adopt the Extended Heat Index calculation in zone res…
Sep 12, 2024
b23f9ad
change root solver to BisectionThenRegulaFalsi for speed
Sep 12, 2024
bd97716
save Zs(Rs) value in a variable
Sep 12, 2024
5e96092
find eqvar name and value together
Sep 12, 2024
b96c3a5
update unit test find_eqvar_name and value
Sep 13, 2024
6600069
save Ra_bar calculation result
Sep 13, 2024
58a77d9
restrict domain of extended HI application
yujiex Sep 13, 2024
16faa31
Revert "restrict domain of extended HI application"
yujiex Sep 13, 2024
4f4809f
try using a shorter termination for bisection solver
yujiex Sep 13, 2024
aa7352d
Merge remote-tracking branch 'origin/extendedHIspeedFix' into extende…
Sep 13, 2024
ec8f0ba
Try using RegulaFalsiThenBisection
Sep 13, 2024
9e32af5
Revert "save Ra_bar calculation result"
Sep 13, 2024
f488176
Revert "Try using RegulaFalsiThenBisection"
Sep 13, 2024
b813d6e
Revert "Revert "restrict domain of extended HI application""
Sep 13, 2024
23c3005
fix application domain equation
Sep 13, 2024
ec88e02
Add global control of heat index method choice
Sep 26, 2024
88aa6fb
fix unit test
Sep 26, 2024
87081c2
Merge remote-tracking branch 'origin/develop' into extendedHIspeedFix
Oct 7, 2024
c445919
add back doc about Rothfusz-Steadman method, change version num
Feb 6, 2025
ac88314
change function args to const arg
Feb 6, 2025
e12b3a2
change local var to const
Feb 6, 2025
ea1eb0e
rename HVACSystemRootSolver to HVACSystemRootSolverMethod
Feb 6, 2025
56cf873
use existing F to C conversion function
Feb 6, 2025
663e087
Merge remote-tracking branch 'origin/develop' into extendedHIspeedFix
Feb 6, 2025
f22d31a
license year update
Feb 6, 2025
114c4f1
File rename ExtendedHI to ExtendedHeatIndex
Feb 6, 2025
5c7d6fa
Change idd obj name to OutputControl:ResilienceSummaries w doc change
Feb 10, 2025
70091eb
use getEnumValue for HVACSystemRootSolverMethod
Feb 10, 2025
d7d4539
remove global variables
Feb 10, 2025
02510f2
clang-format
Feb 10, 2025
ec56408
license year in .hh
Feb 10, 2025
53491a1
directly use the enum class EqvarName instead of casting
Feb 10, 2025
962608f
use ShowWarningInvalidKey for warning message
Feb 10, 2025
7e51320
more removal of global vars
Feb 10, 2025
6241263
clang-format, change enum EqvarName to start from 0
Feb 10, 2025
756096b
change root finding tolerance, clang-format
Feb 11, 2025
7cc4fd6
doc input section latex label fix
Feb 12, 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
Expand Up @@ -66,7 +66,7 @@ \subsubsection{Heat Index}\label{heat-index}
\end{tabular}
\end{table}

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

Starting from version 25.1, the heat index calculation allows the use of the extended heat
index method developed by Lu \& Romps [17]. By selecting ``Extended'' in the ``Algorithm''
field of HeatIndexAlgorithm, this extended heat index will be used. If the field is
``Simplified'' or left empty, the Rothfusz-Steadman method described above will be used.
The heat index calculated with Rothfusz-Steadman method can give
unrealistic results for very hot and humid or very cold and dry conditions. The
extended index extends the domain of the heat index calculation to all
combinations of temperature and relative humidity and gives a more realistic heat
index for the extreme conditions. The implementation in EnergyPlus is based on
the released Python code by Lu and Romps [18].

The Heat Index Hours (accumulated hours for a space) and Heat Index
OccupantHours (accumulated hours for the sum of all occupants in a space) of
each level for each zone and the whole building are reported under the Annual
Expand Down Expand Up @@ -516,3 +527,11 @@ \subsection{References}

{[}16{]} ACGIH, Threshold Limit Values (TLVs) and Biological Exposure Indices
(BEIs), 2012. doi:10.1073/pnas.0703993104.

{[}17{]} Lu, Yi-Chuan, and David M. Romps. ``Extending the heat index''. Journal
of Applied Meteorology and Climatology 61, no. 10 (2022): 1367-1383.
doi:10.1073/pnas.0703993104.

{[}18{]} Lu, Yi-Chuan, and David M. Romps. ``Lu and Romps, Extending the heat index, JAMC, 2022'',
Physics of Climate, February 23, 2023.
https://romps.berkeley.edu/papers/pubs-2020-heatindex.html.
15 changes: 15 additions & 0 deletions doc/input-output-reference/src/input-for-output.tex
Original file line number Diff line number Diff line change
Expand Up @@ -346,6 +346,21 @@ \subsubsection{Inputs}\label{inputs-7-021}
OutputControl:ReportingTolerances,.21,.21;
\end{lstlisting}

\subsection{OutputControl:ResilienceSummaries}\label{OutputControlResilienceSummaries}

This input specifies methods or algorithms used in certain resilience reporting variables.

\subsubsection{Inputs}\label{inputs-OutputControlResilienceSummaries}

\paragraph{Field: Heat Index Algorithm}\label{Heat-Index-Algorithm}

This field has two choices: \textbf{Simplified} and \textbf{Extended}. The
Simplified option is the default and by choosing this, the heat index will be
calculated using the method based on regression analysis carried out by Lans P.
Rothfusz. When Extended is selected, the heat index will be computed using the
extended heat index method developed by Lu \& Romps. Note that using the
Extended method is slower to simulate.

\subsection{Output:Variable}\label{outputvariable}

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.
Expand Down
12 changes: 12 additions & 0 deletions idd/Energy+.idd.in
Original file line number Diff line number Diff line change
Expand Up @@ -107028,6 +107028,18 @@ OutputControl:ReportingTolerances,
\minimum 0
\maximum 10

OutputControl:ResilienceSummaries,
\memo Specifies methods for resilience reporting variables
\unique-object
A1 ; \field Heat Index Algorithm
\note Whether the simplified or the extended method should be used for heat index
\note Simplified: based on regression analysis carried out by Lans P. Rothfusz
\note Extended: Based on paper by Lu & Romps
\type choice
\key Simplified
\key Extended
\default Simplified

Output:Variable,
\memo each Output:Variable command picks variables to be put onto the standard output file (.eso)
\memo some variables may not be reported for every simulation.
Expand Down
2 changes: 2 additions & 0 deletions src/EnergyPlus/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -265,6 +265,8 @@ set(SRC
EvaporativeFluidCoolers.hh
ExhaustAirSystemManager.cc
ExhaustAirSystemManager.hh
ExtendedHeatIndex.cc
ExtendedHeatIndex.hh
ExteriorEnergyUse.cc
ExteriorEnergyUse.hh
ExternalInterface.cc
Expand Down
14 changes: 14 additions & 0 deletions src/EnergyPlus/DataHeatBalance.hh
Original file line number Diff line number Diff line change
Expand Up @@ -547,6 +547,19 @@ namespace DataHeatBalance {
{
}
};

enum class HeatIndexMethod : int
{
Invalid = -1,
Simplified,
Extended,
Num
};
static constexpr std::array<std::string_view, static_cast<int>(HeatIndexMethod::Num)> HeatIndexMethodUC = {
"SIMPLIFIED",
"EXTENDED",
};

struct ZoneData : ZoneSpaceData
{
// Members
Expand Down Expand Up @@ -1849,6 +1862,7 @@ struct HeatBalanceData : BaseGlobalStruct
bool NoRegularMaterialsUsed = true;
bool DoLatentSizing = false; // true when latent sizing is performed during zone sizing
bool isAnyLatentLoad = false;
DataHeatBalance::HeatIndexMethod heatIndexMethod = DataHeatBalance::HeatIndexMethod::Simplified;

Array1D<Real64> ZoneListSNLoadHeatEnergy;
Array1D<Real64> ZoneListSNLoadCoolEnergy;
Expand Down
Loading
Loading