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

Fix #10895 - Expand IDF bug with HVACTemplate:System:DedicatedOutdoorAir for Heat Recovery Type 'Enthalpy' #10904

Open
wants to merge 2 commits into
base: develop
Choose a base branch
from

Conversation

jmarrec
Copy link
Contributor

@jmarrec jmarrec commented Jan 23, 2025

Pull request overview

Pull Request Author

Add to this list or remove from it as applicable. This is a simple templated set of guidelines.

  • Title of PR should be user-synopsis style (clearly understandable in a standalone changelog context)
  • Label the PR with at least one of: Defect, Refactoring, NewFeature, Performance, and/or DoNoPublish
  • Pull requests that impact EnergyPlus code must also include unit tests to cover enhancement or defect repair
  • Author should provide a "walkthrough" of relevant code changes using a GitHub code review comment process
  • If any diffs are expected, author must demonstrate they are justified using plots and descriptions
  • If changes fix a defect, the fix should be demonstrated in plots and descriptions
  • If any defect files are updated to a more recent version, upload new versions here or on DevSupport
  • If IDD requires transition, transition source, rules, ExpandObjects, and IDFs must be updated, and add IDDChange label
  • If structural output changes, add to output rules file and add OutputChange label
  • If adding/removing any LaTeX docs or figures, update that document's CMakeLists file dependencies

Reviewer

This will not be exhaustively relevant to every PR.

  • Perform a Code Review on GitHub
  • If branch is behind develop, merge develop and build locally to check for side effects of the merge
  • If defect, verify by running develop branch and reproducing defect, then running PR and reproducing fix
  • If feature, test running new feature, try creative ways to break it
  • CI status: all green or justified
  • Check that performance is not impacted (CI Linux results include performance check)
  • Run Unit Test(s) locally
  • Check any new function arguments for performance impacts
  • Verify IDF naming conventions and styles, memos and notes and defaults
  • If new idf included, locally check the err file and other outputs

```bash
$ ninja && ctest -R TwoHX
test 800
    Start 800: integration.HVACTemplate-5ZonePTAC-DOAS-TwoHX

800: Test command: /usr/bin/cmake "-DSOURCE_DIR=/media/DataExt4/Software/Others/EnergyPlus" "-DBINARY_DIR=/media/DataExt4/Software/Others/EnergyPlus-build-release" "-DENERGYPLUS_EXE=/media/DataExt4/Software/Others/EnergyPlus-build-release/Products/energyplus-25.1.0" "-DIDF_FILE=HVACTemplate-5ZonePTAC-DOAS-TwoHX.idf" "-DEPW_FILE=USA_IL_Chicago-OHare.Intl.AP.725300_TMY3.epw" "-DENERGYPLUS_FLAGS=-x -D -r" "-DBUILD_FORTRAN=ON" "-DTEST_FILE_FOLDER=testfiles" "-DRUN_CALLGRIND:BOOL=FALSE" "-DVALGRIND=" "-DRUN_PERF_STAT:BOOL=FALSE" "-DPERF=" "-P" "/media/DataExt4/Software/Others/EnergyPlus/cmake/RunSimulation.cmake"
800: Working Directory: /media/DataExt4/Software/Others/EnergyPlus-build-release/testfiles
800: Test timeout computed to be: 10000000
800: ExpandObjects Started.
800:  Begin reading Energy+.idd file.
800:  Done reading Energy+.idd file.
800: ExpandObjects Finished with Error(s). Time:     0.046
800: EnergyPlus Starting
800: EnergyPlus, Version 25.1.0-92486d0f1f, YMD=2025.01.23 10:15
800: **FATAL:Errors occurred on processing input file. Preceding condition(s) cause termination.
800: EnergyPlus Run Time=00hr 00min  0.09sec
800: Program terminated: EnergyPlus Terminated--Error(s) Detected.
800: Test Failed
1/1 Test #800: integration.HVACTemplate-5ZonePTAC-DOAS-TwoHX ...***Failed  Error regular expression found in output. Regex=[Test Failed]  0.43 sec

0% tests passed, 1 tests failed out of 1

Total Test time (real) =   0.53 sec

The following tests FAILED:
	800 - integration.HVACTemplate-5ZonePTAC-DOAS-TwoHX (Failed)

$ cat testfiles/HVACTemplate-5ZonePTAC-DOAS-TwoHX/eplusout.err 
Program Version,EnergyPlus, Version 25.1.0-92486d0f1f, YMD=2025.01.23 10:15,
   ** Severe  ** Duplicate name found for object of type "Table:IndependentVariable" named "DOAS airFlowRatio". Overwriting existing object.
   ** Severe  ** Duplicate name found for object of type "Table:IndependentVariableList" named "DOAS effIndVarList". Overwriting existing object.
   ** Severe  ** Duplicate name found for object of type "Table:Lookup" named "DOAS SenEffectivenessTable". Overwriting existing object.
   **  Fatal  ** Errors occurred on processing input file. Preceding condition(s) cause termination.
   ...Summary of Errors that led to program termination:
   ..... Reference severe error count=3
   ..... Last severe error=Duplicate name found for object of type "Table:Lookup" named "DOAS SenEffectivenessTable". Overwriting existing object.
   ************* Warning:  Node connection errors not checked - most system input has not been read (see previous warning).
   ************* Fatal error -- final processing.  Program exited before simulations began.  See previous error messages.
   ************* EnergyPlus Warmup Error Summary. During Warmup: 0 Warning; 0 Severe Errors.
   ************* EnergyPlus Sizing Error Summary. During Sizing: 0 Warning; 0 Severe Errors.
   ************* EnergyPlus Terminated--Fatal Error Detected. 0 Warning; 3 Severe Errors; Elapsed Time=00hr 00min  0.09sec
```
```bash
diff -u testfiles/HVACTemplate-5ZonePTAC-DOAS-TwoHX-ori/eplusout.expidf testfiles/HVACTemplate-5ZonePTAC-DOAS-TwoHX/eplusout.expidf
```

```diff
--- testfiles/HVACTemplate-5ZonePTAC-DOAS-TwoHX-ori/eplusout.expidf	2025-01-23 10:15:14.389466278 +0100
+++ testfiles/HVACTemplate-5ZonePTAC-DOAS-TwoHX/eplusout.expidf	2025-01-23 10:17:46.386621036 +0100
@@ -3469,13 +3469,13 @@
   ,                                                        !- Initial Defrost Time Fraction {dimensionless}
   ,                                                        !- Rate of Defrost Time Fraction Increase {1/K}
   No,                                                      !- Economizer Lockout
-  DOAS SenEffectivenessTable,                              !- Sensible Effectiveness of Heating Air Flow Curve Name
+  DOAS Cooling Coil Heat Exchanger SenEffectivenessTable,  !- Sensible Effectiveness of Heating Air Flow Curve Name
   ,                                                        !- Latent Effectiveness of Heating Air Flow Curve Name
-  DOAS SenEffectivenessTable,                              !- Sensible Effectiveness of Cooling Air Flow Curve Name
+  DOAS Cooling Coil Heat Exchanger SenEffectivenessTable,  !- Sensible Effectiveness of Cooling Air Flow Curve Name
   ;                                                        !- Latent Effectiveness of Cooling Air Flow Curve Name

 Table:IndependentVariable,
-  DOAS airFlowRatio,                                       !- Name
+  DOAS Cooling Coil Heat Exchanger airFlowRatio,           !- Name
   Linear,                                                  !- Interpolation Method
   Linear,                                                  !- Extrapolation Method
   0.0,                                                     !- Minimum Value
@@ -3489,12 +3489,12 @@
   1.0;                                                     !- Value 2

 Table:IndependentVariableList,
-  DOAS effIndVarList,                                      !- Name
-  DOAS airFlowRatio;                                       !- Independent Variable 1 Name
+  DOAS Cooling Coil Heat Exchanger effIndVarList,          !- Name
+  DOAS Cooling Coil Heat Exchanger airFlowRatio;           !- Independent Variable 1 Name

 Table:Lookup,
-  DOAS SenEffectivenessTable,                              !- Name
-  DOAS effIndVarList,                                      !- Independent Variable List Name
+  DOAS Cooling Coil Heat Exchanger SenEffectivenessTable,  !- Name
+  DOAS Cooling Coil Heat Exchanger effIndVarList,          !- Independent Variable List Name
   DivisorOnly,                                             !- Normalization Method
   0.699999988,                                             !- Normalization Divisor
   0.0,                                                     !- Minimum Output
@@ -3719,13 +3719,13 @@
   0.083,                                                   !- Initial Defrost Time Fraction
   0.012,                                                   !- Rate of Defrost Time Fraction Increase
   Yes,                                                     !- Economizer Lockout
-  DOAS SenEffectivenessTable,                              !- Sensible Effectiveness of Heating Air Flow Curve Name
-  DOAS LatEffectivenessTable,                              !- Latent Effectiveness of Heating Air Flow Curve Name
-  DOAS SenEffectivenessTable,                              !- Sensible Effectiveness of Cooling Air Flow Curve Name
-  DOAS LatEffectivenessTable;                              !- Latent Effectiveness of Cooling Air Flow Curve Name
+  DOAS Heat Recovery SenEffectivenessTable,                !- Sensible Effectiveness of Heating Air Flow Curve Name
+  DOAS Heat Recovery LatEffectivenessTable,                !- Latent Effectiveness of Heating Air Flow Curve Name
+  DOAS Heat Recovery SenEffectivenessTable,                !- Sensible Effectiveness of Cooling Air Flow Curve Name
+  DOAS Heat Recovery LatEffectivenessTable;                !- Latent Effectiveness of Cooling Air Flow Curve Name

 Table:IndependentVariable,
-  DOAS airFlowRatio,                                       !- Name
+  DOAS Heat Recovery airFlowRatio,                         !- Name
   Linear,                                                  !- Interpolation Method
   Linear,                                                  !- Extrapolation Method
   0.0,                                                     !- Minimum Value
@@ -3739,12 +3739,12 @@
   1.0;                                                     !- Value 2

 Table:IndependentVariableList,
-  DOAS effIndVarList,                                      !- Name
-  DOAS airFlowRatio;                                       !- Independent Variable 1 Name
+  DOAS Heat Recovery effIndVarList,                        !- Name
+  DOAS Heat Recovery airFlowRatio;                         !- Independent Variable 1 Name

 Table:Lookup,
-  DOAS SenEffectivenessTable,                              !- Name
-  DOAS effIndVarList,                                      !- Independent Variable List Name
+  DOAS Heat Recovery SenEffectivenessTable,                !- Name
+  DOAS Heat Recovery effIndVarList,                        !- Independent Variable List Name
   DivisorOnly,                                             !- Normalization Method
   0.699999988,                                             !- Normalization Divisor
   0.0,                                                     !- Minimum Output
@@ -3757,8 +3757,8 @@
   0.699999988;                                             !- Value 2

 Table:Lookup,
-  DOAS LatEffectivenessTable,                              !- Name
-  DOAS effIndVarList,                                      !- Independent Variable List Name
+  DOAS Heat Recovery LatEffectivenessTable,                !- Name
+  DOAS Heat Recovery effIndVarList,                        !- Independent Variable List Name
   DivisorOnly,                                             !- Normalization Method
   0.649999976,                                             !- Normalization Divisor
   0.0,                                                     !- Minimum Output
```
@jmarrec jmarrec added Defect Includes code to repair a defect in EnergyPlus AuxiliaryTool Related to an auxiliary tool, not EnergyPlus itself (readvars, preprocessor, ep-launch, etc.) labels Jan 23, 2025
@jmarrec jmarrec self-assigned this Jan 23, 2025
, !- Baseboard Heating Capacity {W}
None; !- Capacity Control Method

HVACTemplate:System:DedicatedOutdoorAir,
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I took HVACTemplate-5ZonePTAC-DOAS.idf and switch two params to make it use 2 HeatExchanger:AirToAir:SensibleAndLatent: one of the DOAS itself, and one of the Coil:Cooling:DX:HeatExchangerAssisted

image

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Without the fix, this fails:

$ ninja && ctest -R TwoHX

test 800
    Start 800: integration.HVACTemplate-5ZonePTAC-DOAS-TwoHX

800: Test command: /usr/bin/cmake "-DSOURCE_DIR=/media/DataExt4/Software/Others/EnergyPlus" "-DBINARY_DIR=/media/DataExt4/Software/Others/EnergyPlus-build-release" "-DENERGYPLUS_EXE=/media/DataExt4/Software/Others/EnergyPlus-build-release/Products/energyplus-25.1.0" "-DIDF_FILE=HVACTemplate-5ZonePTAC-DOAS-TwoHX.idf" "-DEPW_FILE=USA_IL_Chicago-OHare.Intl.AP.725300_TMY3.epw" "-DENERGYPLUS_FLAGS=-x -D -r" "-DBUILD_FORTRAN=ON" "-DTEST_FILE_FOLDER=testfiles" "-DRUN_CALLGRIND:BOOL=FALSE" "-DVALGRIND=" "-DRUN_PERF_STAT:BOOL=FALSE" "-DPERF=" "-P" "/media/DataExt4/Software/Others/EnergyPlus/cmake/RunSimulation.cmake"
800: Working Directory: /media/DataExt4/Software/Others/EnergyPlus-build-release/testfiles
800: Test timeout computed to be: 10000000
800: ExpandObjects Started.
800:  Begin reading Energy+.idd file.
800:  Done reading Energy+.idd file.
800: ExpandObjects Finished with Error(s). Time:     0.046
800: EnergyPlus Starting
800: EnergyPlus, Version 25.1.0-92486d0f1f, YMD=2025.01.23 10:15
800: **FATAL:Errors occurred on processing input file. Preceding condition(s) cause termination.
800: EnergyPlus Run Time=00hr 00min  0.09sec
800: Program terminated: EnergyPlus Terminated--Error(s) Detected.
800: Test Failed
1/1 Test #800: integration.HVACTemplate-5ZonePTAC-DOAS-TwoHX ...***Failed  Error regular expression found in output. Regex=[Test Failed]  0.43 sec

0% tests passed, 1 tests failed out of 1

Total Test time (real) =   0.53 sec

The following tests FAILED:
	800 - integration.HVACTemplate-5ZonePTAC-DOAS-TwoHX (Failed)

$ cat testfiles/HVACTemplate-5ZonePTAC-DOAS-TwoHX/eplusout.err

Program Version,EnergyPlus, Version 25.1.0-92486d0f1f, YMD=2025.01.23 10:15,
   ** Severe  ** Duplicate name found for object of type "Table:IndependentVariable" named "DOAS airFlowRatio". Overwriting existing object.
   ** Severe  ** Duplicate name found for object of type "Table:IndependentVariableList" named "DOAS effIndVarList". Overwriting existing object.
   ** Severe  ** Duplicate name found for object of type "Table:Lookup" named "DOAS SenEffectivenessTable". Overwriting existing object.
   **  Fatal  ** Errors occurred on processing input file. Preceding condition(s) cause termination.
   ...Summary of Errors that led to program termination:
   ..... Reference severe error count=3
   ..... Last severe error=Duplicate name found for object of type "Table:Lookup" named "DOAS SenEffectivenessTable". Overwriting existing object.
   ************* Warning:  Node connection errors not checked - most system input has not been read (see previous warning).
   ************* Fatal error -- final processing.  Program exited before simulations began.  See previous error messages.
   ************* EnergyPlus Warmup Error Summary. During Warmup: 0 Warning; 0 Severe Errors.
   ************* EnergyPlus Sizing Error Summary. During Sizing: 0 Warning; 0 Severe Errors.
   ************* EnergyPlus Terminated--Fatal Error Detected. 0 Warning; 3 Severe Errors; Elapsed Time=00hr 00min  0.09sec

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

After fix, it works, and here is the diff between the expanded IDFs before& after fix

diff -u testfiles/HVACTemplate-5ZonePTAC-DOAS-TwoHX-ori/eplusout.expidf testfiles/HVACTemplate-5ZonePTAC-DOAS-TwoHX/eplusout.expidf
--- testfiles/HVACTemplate-5ZonePTAC-DOAS-TwoHX-ori/eplusout.expidf	2025-01-23 10:15:14.389466278 +0100
+++ testfiles/HVACTemplate-5ZonePTAC-DOAS-TwoHX/eplusout.expidf	2025-01-23 10:17:46.386621036 +0100
@@ -3469,13 +3469,13 @@
   ,                                                        !- Initial Defrost Time Fraction {dimensionless}
   ,                                                        !- Rate of Defrost Time Fraction Increase {1/K}
   No,                                                      !- Economizer Lockout
-  DOAS SenEffectivenessTable,                              !- Sensible Effectiveness of Heating Air Flow Curve Name
+  DOAS Cooling Coil Heat Exchanger SenEffectivenessTable,  !- Sensible Effectiveness of Heating Air Flow Curve Name
   ,                                                        !- Latent Effectiveness of Heating Air Flow Curve Name
-  DOAS SenEffectivenessTable,                              !- Sensible Effectiveness of Cooling Air Flow Curve Name
+  DOAS Cooling Coil Heat Exchanger SenEffectivenessTable,  !- Sensible Effectiveness of Cooling Air Flow Curve Name
   ;                                                        !- Latent Effectiveness of Cooling Air Flow Curve Name

 Table:IndependentVariable,
-  DOAS airFlowRatio,                                       !- Name
+  DOAS Cooling Coil Heat Exchanger airFlowRatio,           !- Name
   Linear,                                                  !- Interpolation Method
   Linear,                                                  !- Extrapolation Method
   0.0,                                                     !- Minimum Value
@@ -3489,12 +3489,12 @@
   1.0;                                                     !- Value 2

 Table:IndependentVariableList,
-  DOAS effIndVarList,                                      !- Name
-  DOAS airFlowRatio;                                       !- Independent Variable 1 Name
+  DOAS Cooling Coil Heat Exchanger effIndVarList,          !- Name
+  DOAS Cooling Coil Heat Exchanger airFlowRatio;           !- Independent Variable 1 Name

 Table:Lookup,
-  DOAS SenEffectivenessTable,                              !- Name
-  DOAS effIndVarList,                                      !- Independent Variable List Name
+  DOAS Cooling Coil Heat Exchanger SenEffectivenessTable,  !- Name
+  DOAS Cooling Coil Heat Exchanger effIndVarList,          !- Independent Variable List Name
   DivisorOnly,                                             !- Normalization Method
   0.699999988,                                             !- Normalization Divisor
   0.0,                                                     !- Minimum Output
@@ -3719,13 +3719,13 @@
   0.083,                                                   !- Initial Defrost Time Fraction
   0.012,                                                   !- Rate of Defrost Time Fraction Increase
   Yes,                                                     !- Economizer Lockout
-  DOAS SenEffectivenessTable,                              !- Sensible Effectiveness of Heating Air Flow Curve Name
-  DOAS LatEffectivenessTable,                              !- Latent Effectiveness of Heating Air Flow Curve Name
-  DOAS SenEffectivenessTable,                              !- Sensible Effectiveness of Cooling Air Flow Curve Name
-  DOAS LatEffectivenessTable;                              !- Latent Effectiveness of Cooling Air Flow Curve Name
+  DOAS Heat Recovery SenEffectivenessTable,                !- Sensible Effectiveness of Heating Air Flow Curve Name
+  DOAS Heat Recovery LatEffectivenessTable,                !- Latent Effectiveness of Heating Air Flow Curve Name
+  DOAS Heat Recovery SenEffectivenessTable,                !- Sensible Effectiveness of Cooling Air Flow Curve Name
+  DOAS Heat Recovery LatEffectivenessTable;                !- Latent Effectiveness of Cooling Air Flow Curve Name

 Table:IndependentVariable,
-  DOAS airFlowRatio,                                       !- Name
+  DOAS Heat Recovery airFlowRatio,                         !- Name
   Linear,                                                  !- Interpolation Method
   Linear,                                                  !- Extrapolation Method
   0.0,                                                     !- Minimum Value
@@ -3739,12 +3739,12 @@
   1.0;                                                     !- Value 2

 Table:IndependentVariableList,
-  DOAS effIndVarList,                                      !- Name
-  DOAS airFlowRatio;                                       !- Independent Variable 1 Name
+  DOAS Heat Recovery effIndVarList,                        !- Name
+  DOAS Heat Recovery airFlowRatio;                         !- Independent Variable 1 Name

 Table:Lookup,
-  DOAS SenEffectivenessTable,                              !- Name
-  DOAS effIndVarList,                                      !- Independent Variable List Name
+  DOAS Heat Recovery SenEffectivenessTable,                !- Name
+  DOAS Heat Recovery effIndVarList,                        !- Independent Variable List Name
   DivisorOnly,                                             !- Normalization Method
   0.699999988,                                             !- Normalization Divisor
   0.0,                                                     !- Minimum Output
@@ -3757,8 +3757,8 @@
   0.699999988;                                             !- Value 2

 Table:Lookup,
-  DOAS LatEffectivenessTable,                              !- Name
-  DOAS effIndVarList,                                      !- Independent Variable List Name
+  DOAS Heat Recovery LatEffectivenessTable,                !- Name
+  DOAS Heat Recovery effIndVarList,                        !- Independent Variable List Name
   DivisorOnly,                                             !- Normalization Method
   0.649999976,                                             !- Normalization Divisor
   0.0,                                                     !- Minimum Output

Visually :

image

image

0.9, !- Supply Fan Motor Efficiency
1, !- Supply Fan Motor in Air Stream Fraction
BlowThrough, !- Supply Fan Placement
HeatExchangerAssistedDX, !- Cooling Coil Type
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

from HVACTemplate-5ZonePTAC-DOAS.idf

-    TwoStageHumidityControlDX,  !- Cooling Coil Type
+    HeatExchangerAssistedDX, !- Cooling Coil Type

12.2, !- Heating Coil Reset Outdoor Dry-Bulb High {C}
0.8, !- Gas Heating Coil Efficiency
, !- Gas Heating Coil Parasitic Electric Load {W}
Enthalpy, !- Heat Recovery Type
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

from HVACTemplate-5ZonePTAC-DOAS.idf

-    None,                    !- Heat Recovery Type
+    Enthalpy,                !- Heat Recovery Type

@jmarrec jmarrec requested a review from Myoldmopar January 23, 2025 09:31
@jmarrec
Copy link
Contributor Author

jmarrec commented Jan 23, 2025

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
AuxiliaryTool Related to an auxiliary tool, not EnergyPlus itself (readvars, preprocessor, ep-launch, etc.) Defect Includes code to repair a defect in EnergyPlus
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Expand IDF bug with HVACTemplate:System:DedicatedOutdoorAir for Heat Recovery Type 'Enthalpy' (v24.2)
2 participants