Update UnitarySystem warning messages to better reflect cause of simulation termination.#7465
Conversation
…3-previous-errors-cause-termination-but-no-previous-errors
|
Defect error file in develop: Defect error file in this branch: |
…3-previous-errors-cause-termination-but-no-previous-errors
| 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."); |
There was a problem hiding this comment.
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 && |
There was a problem hiding this comment.
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); |
There was a problem hiding this comment.
Gets rid of need to call getObjectItem simply to mark item as read.
| loc_controlZoneName); | ||
| errorsFound = true; | ||
| } | ||
| } |
There was a problem hiding this comment.
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); |
There was a problem hiding this comment.
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); |
There was a problem hiding this comment.
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; |
There was a problem hiding this comment.
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; |
There was a problem hiding this comment.
Not sure why these were commented out, but configuration errors are definitely fatal.
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:
was changed to:
Work Checklist
Add to this list or remove from it as applicable. This is a simple templated set of guidelines.
Review Checklist
This will not be exhaustively relevant to every PR.