Skip to content

Commit

Permalink
remove string output of find_T
Browse files Browse the repository at this point in the history
  • Loading branch information
Yujie Xu committed Jul 17, 2024
1 parent ba01af9 commit 9abc1b9
Show file tree
Hide file tree
Showing 3 changed files with 6 additions and 17 deletions.
13 changes: 3 additions & 10 deletions src/EnergyPlus/ExtendedHI.cc
Original file line number Diff line number Diff line change
Expand Up @@ -266,16 +266,14 @@ namespace ExtendedHI {
}

// Convert the find_T function
std::pair<Real64, std::string> find_T(EnergyPlusData &state, std::string eqvar_name, Real64 eqvar)
Real64 find_T(EnergyPlusData &state, std::string eqvar_name, Real64 eqvar)
{
Real64 T;
std::string region;
int SolFla;

if (eqvar_name == "phi") {
General::SolveRoot(
state, tol, maxIter, SolFla, T, [&](Real64 T) { return std::get<1>(find_eqvar(state, T, 1.0)) - eqvar; }, 0.0, 240.0);
region = "I";
} else if (eqvar_name == "Rf") {
General::SolveRoot(
state,
Expand All @@ -286,18 +284,15 @@ namespace ExtendedHI {
[&](Real64 T) { return std::get<2>(find_eqvar(state, T, std::min(1.0, Pa0 / pvstar(T)))) - eqvar; },
230.0,
300.0);
region = (Pa0 > pvstar(T)) ? "II" : "III";
} else if (eqvar_name == "Rs" || eqvar_name == "Rs*") {
General::SolveRoot(
state, tol, maxIter, SolFla, T, [&](Real64 T) { return std::get<3>(find_eqvar(state, T, Pa0 / pvstar(T))) - eqvar; }, 295.0, 350.0);
region = (eqvar_name == "Rs") ? "IV" : "V";
} else {
General::SolveRoot(
state, tol, maxIter, SolFla, T, [&](Real64 T) { return std::get<4>(find_eqvar(state, T, Pa0 / pvstar(T))) - eqvar; }, 340.0, 1000.0);
region = "VI";
}

return std::make_pair(T, region);
return T;
}

Real64 heatindex(EnergyPlusData &state, Real64 Ta, Real64 RH)
Expand All @@ -324,9 +319,7 @@ namespace ExtendedHI {
eqvar_value = std::get<4>(eqvars);
}

auto result = find_T(state, eqvar_name, eqvar_value);
Real64 T = std::get<0>(result);
std::string region = std::get<1>(result);
Real64 T = find_T(state, eqvar_name, eqvar_value);

if (Ta == 0.0) T = 0.0;

Expand Down
2 changes: 1 addition & 1 deletion src/EnergyPlus/ExtendedHI.hh
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ namespace ExtendedHI {
Real64 Ra_bar(Real64 Tf, Real64 Ta);
Real64 Ra_un(Real64 Ts, Real64 Ta);
std::tuple<std::string, double, double, double, double> find_eqvar(EnergyPlusData &state, double Ta, double RH);
std::pair<Real64, std::string> find_T(EnergyPlusData &state, std::string eqvar_name, Real64 eqvar);
Real64 find_T(EnergyPlusData &state, std::string eqvar_name, Real64 eqvar);
Real64 heatindex(EnergyPlusData &state, Real64 Ta, Real64 RH);

} // namespace ExtendedHI
Expand Down
8 changes: 2 additions & 6 deletions tst/EnergyPlus/unit/ExtendedHI.unit.cc
Original file line number Diff line number Diff line change
Expand Up @@ -395,17 +395,13 @@ TEST_F(EnergyPlusFixture, extendedHI_find_T)
std::vector<Real64> Rf_values = {30, 32, 34, 36, 38};
std::vector<Real64> result_0_rf = {240.06754042464308, 239.971123727737, 239.88581076147966, 239.8097881616559, 239.7416166716721};
for (size_t i = 0; i < Rf_values.size(); ++i) {
auto const output = ExtendedHI::find_T(*state, "Rf", Rf_values[i]);
EXPECT_EQ(std::get<1>(output), "II");
EXPECT_NEAR(std::get<0>(output), result_0_rf[i], tol);
EXPECT_NEAR(ExtendedHI::find_T(*state, "Rf", Rf_values[i]), result_0_rf[i], tol);
}
std::vector<Real64> Rs_values = {0.01, 0.02, 0.03};
std::vector<Real64> result_0_rs = {337.8696502133971, 329.7586998442421, 307.4815719091566};
tol = 1e-4;
for (size_t i = 0; i < Rs_values.size(); ++i) {
auto const output = ExtendedHI::find_T(*state, "Rs", Rs_values[i]);
EXPECT_EQ(std::get<1>(output), "IV");
EXPECT_NEAR(std::get<0>(output), result_0_rs[i], tol);
EXPECT_NEAR(ExtendedHI::find_T(*state, "Rs", Rs_values[i]), result_0_rs[i], tol);
}
// fixme: this one has large diff, 347 vs 350, because of the difference in the root solvers between EnergyPlus and the heatindex.py code by Lu
// and Romps.
Expand Down

0 comments on commit 9abc1b9

Please sign in to comment.