From 2cf975bd38b3ba70ebf22a30db6c205098c21bba Mon Sep 17 00:00:00 2001 From: Scott Horowitz Date: Fri, 22 Dec 2023 14:58:04 -0700 Subject: [PATCH] Add warnings, update docs. --- .../src/overview/group-plant-equipment.tex | 2 +- src/EnergyPlus/Boilers.cc | 6 ++++++ src/EnergyPlus/WaterThermalTanks.cc | 14 ++++++++++++++ 3 files changed, 21 insertions(+), 1 deletion(-) diff --git a/doc/input-output-reference/src/overview/group-plant-equipment.tex b/doc/input-output-reference/src/overview/group-plant-equipment.tex index 8b9e1b999ee..f9590871252 100644 --- a/doc/input-output-reference/src/overview/group-plant-equipment.tex +++ b/doc/input-output-reference/src/overview/group-plant-equipment.tex @@ -4089,7 +4089,7 @@ \subsubsection{Inputs}\label{inputs-10-013} \paragraph{Field: Nominal Thermal Efficiency}\label{field-nominal-thermal-efficiency} -This required numeric field contains the heating efficiency (as a fraction between 0 and 1) of the boiler's burner.~ This is the efficiency relative to the higher heating value (HHV) of fuel at a part load ratio of 1.0. Manufacturers typically specify the efficiency of a boiler using the higher heating value of the fuel. For the rare occurrences when a manufacturers (or particular data set) thermal efficiency is based on the lower heating value (LHV) of the fuel, multiply the thermal efficiency by the lower-to-higher heating value ratio. For example, assume a fuel's lower and higher heating values are approximately 45,450 and 50,000 kJ/kg, respectively. For a manufacturers thermal efficiency rating of 0.90 (based on the LHV), the nominal thermal efficiency entered here is 0.82 (i.e.~0.9 multiplied by 45,450/50,000). +This required numeric field contains the heating efficiency of the boiler's burner.~ This is the efficiency relative to the higher heating value (HHV) of fuel at a part load ratio of 1.0. Manufacturers typically specify the efficiency of a boiler using the higher heating value of the fuel. For the rare occurrences when a manufacturers (or particular data set) thermal efficiency is based on the lower heating value (LHV) of the fuel, multiply the thermal efficiency by the lower-to-higher heating value ratio. For example, assume a fuel's lower and higher heating values are approximately 45,450 and 50,000 kJ/kg, respectively. For a manufacturers thermal efficiency rating of 0.90 (based on the LHV), the nominal thermal efficiency entered here is 0.82 (i.e.~0.9 multiplied by 45,450/50,000). \paragraph{Field: Efficiency Curve Temperature Evaluation Variable}\label{field-efficiency-curve-temperature-evaluation-variable} diff --git a/src/EnergyPlus/Boilers.cc b/src/EnergyPlus/Boilers.cc index 91dc27ffa02..21f4a31ed4c 100644 --- a/src/EnergyPlus/Boilers.cc +++ b/src/EnergyPlus/Boilers.cc @@ -227,6 +227,12 @@ void GetBoilerInput(EnergyPlusData &state) ShowContinueError(state, format("Invalid {}={:.3R}", state.dataIPShortCut->cNumericFieldNames(2), state.dataIPShortCut->rNumericArgs(2))); ShowSevereError(state, format("...{} must be greater than 0.0", state.dataIPShortCut->cNumericFieldNames(2))); ErrorsFound = true; + } else if (state.dataIPShortCut->rNumericArgs(2) > 1.0) { + ShowWarningError(state, + fmt::format("{} = {}: {} should not typically be greater than 1.", + state.dataIPShortCut->cCurrentModuleObject, + state.dataIPShortCut->cAlphaArgs(1), + state.dataIPShortCut->cNumericFieldNames(2))); } if (state.dataIPShortCut->cAlphaArgs(3) == "ENTERINGBOILER") { diff --git a/src/EnergyPlus/WaterThermalTanks.cc b/src/EnergyPlus/WaterThermalTanks.cc index 87c0dba4f03..4c9ec81472d 100644 --- a/src/EnergyPlus/WaterThermalTanks.cc +++ b/src/EnergyPlus/WaterThermalTanks.cc @@ -2451,6 +2451,13 @@ bool getWaterHeaterMixedInputs(EnergyPlusData &state) if (state.dataIPShortCut->rNumericArgs(8) > 0.0) { Tank.Efficiency = state.dataIPShortCut->rNumericArgs(8); + if (state.dataIPShortCut->rNumericArgs(8) > 1.0) { + ShowWarningError(state, + fmt::format("{} = {}: {} should not typically be greater than 1.", + state.dataIPShortCut->cCurrentModuleObject, + state.dataIPShortCut->cAlphaArgs(1), + state.dataIPShortCut->cNumericFieldNames(8))); + } } else { ShowSevereError(state, format("{} = {}: Heater Thermal Efficiency must be greater than zero", @@ -3016,6 +3023,13 @@ bool getWaterHeaterStratifiedInput(EnergyPlusData &state) if (state.dataIPShortCut->rNumericArgs(11) > 0.0) { Tank.Efficiency = state.dataIPShortCut->rNumericArgs(11); + if (state.dataIPShortCut->rNumericArgs(11) > 1.0) { + ShowWarningError(state, + fmt::format("{} = {}: {} should not typically be greater than 1.", + state.dataIPShortCut->cCurrentModuleObject, + state.dataIPShortCut->cAlphaArgs(1), + state.dataIPShortCut->cNumericFieldNames(11))); + } } else { ShowSevereError(state, format("{} = {}: Heater Thermal Efficiency must be greater than zero",