Skip to content

Update UnitarySystem warning messages to better reflect cause of simulation termination.#7465

Merged
Myoldmopar merged 9 commits intodevelopfrom
7353-previous-errors-cause-termination-but-no-previous-errors
Aug 31, 2019
Merged

Update UnitarySystem warning messages to better reflect cause of simulation termination.#7465
Myoldmopar merged 9 commits intodevelopfrom
7353-previous-errors-cause-termination-but-no-previous-errors

Conversation

@rraustad
Copy link
Copy Markdown
Collaborator

@rraustad rraustad commented Aug 21, 2019

Pull request overview

Fixes #7353. Some warning messages were commented out when Air:oopHVAC:UnitarySystem was last updated. These warnings have been corrected.

For example:

   ** Warning ** AirLoopHVAC:UnitarySystem = ASHP UNITARY SYSTEM
   **  Fatal  ** Previous condition causes termination.

was changed to:

   ** Warning ** AirLoopHVAC:UnitarySystem = ASHP UNITARY SYSTEM
   **   ~~~   ** Input for Cooling Supply Air Flow Rate Method = SupplyAirFlowRate.
   **   ~~~   ** Suspicious Cooling Supply Air Flow Rate = 2.6415317E-008 when cooling coil is present.
   ** Severe  ** SizeAirLoopBranches: AirLoopHVAC ASHP AIRLOOP has air flow less than 1.0000E-003 m3/s.
   **   ~~~   ** Primary air system volumetric flow rate = 2.6415E-008 m3/s.
   **   ~~~   ** Check flow rate inputs for components in this air loop and,
   **   ~~~   ** if autosized, check Sizing:Zone and Sizing:System objects and related inputs.
   **  Fatal  ** Previous condition causes termination.

Work Checklist

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)
  • At least one of the following appropriate labels must be added to this PR to be consumed into the changelog:
    • Defect: This pull request repairs a github defect issue. The github issue should be referenced in the PR description
    • Refactoring: This pull request includes code changes that don't change the functionality of the program, just perform refactoring
    • NewFeature: This pull request includes code to add a new feature to EnergyPlus
    • Performance: This pull request includes code changes that are directed at improving the runtime performance of EnergyPlus
    • DoNoPublish: This pull request includes changes that shouldn't be included in the changelog

Review Checklist

This will not be exhaustively relevant to every PR.

  • Functional code review (it has to work!)
  • If defect, results of running current develop vs this branch should exhibit the fix
  • CI status: all green or justified
  • Performance: CI Linux results include performance check
  • Unit Test(s)
  • C++ checks:
    • Argument types
    • If any virtual classes, ensure virtual destructor included, other things
  • IDD changes:
    • Verify naming conventions and styles, memos and notes and defaults
    • Open windows IDF Editor with modified IDD to check for errors
    • If transition, add to input rules file for interfaces
    • If transition, add transition source
    • If transition, update idfs
  • If new idf included, locally check the err file and other outputs
  • Required documentation updates?
  • ExpandObjects changes?
  • If output changes, including tabular output structure, add to output rules file for interfaces

@rraustad rraustad added the Defect Includes code to repair a defect in EnergyPlus label Aug 21, 2019
@rraustad rraustad added this to the EnergyPlus 9.2.0 milestone Aug 21, 2019
@rraustad
Copy link
Copy Markdown
Collaborator Author

Defect error file in develop:

   ** Warning ** AirLoopHVAC:UnitarySystem = ASHP UNITARY SYSTEM
   **  Fatal  ** Previous condition causes termination.

Defect error file in this branch:

   ** Warning ** AirLoopHVAC:UnitarySystem = ASHP UNITARY SYSTEM
   **   ~~~   ** Input for Cooling Supply Air Flow Rate Method = SupplyAirFlowRate.
   **   ~~~   ** Suspicious Cooling Supply Air Flow Rate = 2.6415317E-008 when cooling coil is present.
   ** Warning ** AirLoopHVAC:UnitarySystem = ASHP UNITARY SYSTEM
   **   ~~~   ** Input for Heating Supply Air Flow Rate Method = SupplyAirFlowRate.
   **   ~~~   ** Suspicious Heating Supply Air Flow Rate = 0.0000000 when heating coil is present.
   ** Severe  ** SizeAirLoopBranches: AirLoopHVAC ASHP AIRLOOP has air flow less than 1.0000E-003 m3/s.
   **   ~~~   ** Primary air system volumetric flow rate = 2.6415E-008 m3/s.
   **   ~~~   ** Check flow rate inputs for components in this air loop and,
   **   ~~~   ** if autosized, check Sizing:Zone and Sizing:System objects and related inputs.
   **  Fatal  ** Previous condition causes termination.

@rraustad rraustad requested a review from Myoldmopar August 27, 2019 01:21
ShowSevereError("SizeAirLoopBranches: AirLoopHVAC " + PrimaryAirSystem(AirLoopNum).Name + " has air flow less than " +
General::RoundSigDigits(DataHVACGlobals::SmallAirVolFlow, 4) + " m3/s.");
ShowContinueError("Primary air system volumetric flow rate = " +
General::RoundSigDigits(PrimaryAirSystem(AirLoopNum).DesignVolFlowRate, 4) + " m3/s.");
Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

More detail on why Primary air system volumetric flow rate has no air flow.

this->m_FrostControlStatus = 1;
}
} else if (ControlMode == RunOnLatent && AirMassFlow > MinAirMassFlow &&
} else if (ControlMode == RunOnLatent && AirMassFlow > DataHVACGlobals::SmallAirVolFlow &&
Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Change eliminates local var = 0.001 and instead uses global var = 0.001.

if (sysNum == -1) {
++numUnitarySystems;
auto const &thisObjName = instance.key();
inputProcessor->markObjectAsUsed(cCurrentModuleObject, thisObjName);
Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Gets rid of need to call getObjectItem simply to mark item as read.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Yes!

loc_controlZoneName);
errorsFound = true;
}
}
Copy link
Copy Markdown
Collaborator Author

@rraustad rraustad Aug 28, 2019

Choose a reason for hiding this comment

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

Example of how commented warnings were revived. Lot's of these warnings were commented out during UnitarySystem refactor, some that maybe shouldn't have been and some that needed to mine the IDD field name. Since JSON is now used, there is no CAlphaFields or Alphas to populate the messages, so they was commented out until a method existed to mine info. Since that method was never developed, hard coded warning messages now replace the old messages. The remaining changes are similar to this example.

ShowSevereError("Input errors for " + cCurrentModuleObject + ":" + thisObjectName);
ShowContinueError("Did not find Air Node (Zone with Humidistat).");
ShowContinueError("specified Control Zone Name = " + loc_controlZoneName);
ShowContinueError("specified Controlling Zone or Thermostat Location name = " + loc_controlZoneName);
Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Note that the changes use explicit field names from the IDD.

if (thisSys.m_HeatingCoilIndex == 0) {
ShowSevereError(cCurrentModuleObject + " = " + thisObjectName);
// ShowContinueError("Illegal " + cAlphaFields(iHeatingCoilNameAlphaNum) + " = " + HeatingCoilName);
ShowContinueError("Illegal Heating Coil Name = " + loc_m_HeatingCoilName);
Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

This is a perfect example of a severe error that would show:

** Warning ** AirLoopHVAC:UnitarySystem = ASHP UNITARY SYSTEM
** Fatal ** Previous condition causes termination.

and will now show additional information, in this case a bad heating coil name.

Stopping with comments here unless there is a change to something other than messages.

ShowContinueError("Suspicious Cooling Supply Air Flow Rate = " +
General::RoundSigDigits(thisSys.m_MaxCoolAirVolFlow, 7) + " when cooling coil is present.");
}
if (thisSys.m_MaxCoolAirVolFlow < 0.0) errorsFound = true;
Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Slight rework to code structure.

ShowContinueError("...Reheat coil outlet node name = " + DataLoopNode::NodeID(SupHeatCoilOutletNode));
ShowContinueError("...UnitarySystem outlet node name = " + DataLoopNode::NodeID(thisSys.AirOutNode));
// ErrorsFound=.TRUE.
errorsFound = true;
Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Not sure why these were commented out, but configuration errors are definitely fatal.

@Myoldmopar Myoldmopar merged commit d939b13 into develop Aug 31, 2019
@Myoldmopar Myoldmopar deleted the 7353-previous-errors-cause-termination-but-no-previous-errors branch August 31, 2019 11:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Defect Includes code to repair a defect in EnergyPlus

Projects

None yet

Development

Successfully merging this pull request may close these issues.

"previous errors cause termination" but no previous errors

7 participants