-
Notifications
You must be signed in to change notification settings - Fork 457
Description
Issue overview
While workiing on a PIU input file I mistakening entered an incorrect node name for the PIU reheat coil inlet node name in the AirTerminal:SingleDuct:SeriesPIU:Reheat object. In fact this node name was not used anywhere else in the input.
AirTerminal:SingleDuct:SeriesPIU:Reheat,
Zone 1 SPIU ATU, !- Name
ON, !- Availability Schedule Name
autosize, !- Maximum Air Flow Rate {m3/s}
autosize, !- Maximum Primary Air Flow Rate {m3/s}
autosize, !- Minimum Primary Air Flow Fraction
Zone 1 PIU Pri Air Inlet Node, !- Supply Air Inlet Node Name
Zone 1 PIU Sec Air Inlet Node, !- Secondary Air Inlet Node Name
Zone 1 PIU Air Outlet Node, !- Outlet Node Name
Node Name Not Used Anywhere, !- Reheat Coil Air Inlet Node Name
Zone 1 PIU Mixer, !- Zone Mixer Name
Zone 1 PIU Fan, !- Fan Name
Coil:Heating:Water, !- Reheat Coil Object Type
Reheat Coil Zone 1, !- Reheat Coil Name
autosize, !- Maximum Hot Water or Steam Flow Rate {m3/s}
0.0, !- Minimum Hot Water or Steam Flow Rate {m3/s}
0.0001; !- Convergence Tolerance
Program execution stopped and the warnings described an issue with the heating coil or the fan objects node names, including the water coil water nodes which added to the confusion. It took some time to figure out the problem was in the PIU object itself.
** Severe ** Same component name and type has differing Node Names.
** ~~~ ** Component: Coil:Heating:Water, name=REHEAT COIL ZONE 1
** ~~~ ** Nodes, inlet: ZONE 1 REHEAT WATER INLET NODE, outlet: ZONE 1 REHEAT WATER OUTLET NODE
** ~~~ ** & Nodes, inlet: NODE NAME NOT USED ANYWHERE, outlet: ZONE 1 PIU AIR OUTLET NODE
** ~~~ ** Node Types: Water Nodes & UNDEFINED
** Warning ** Node Connection Error for object COIL:HEATING:WATER=REHEAT COIL ZONE 1
** ~~~ ** Air Nodes not on any Branch or Parent Object
** ~~~ ** Inlet Node : ZONE 1 REHEAT AIR INLET NODE
** ~~~ ** Outlet Node: ZONE 1 PIU AIR OUTLET NODE
** Warning ** Node Connection Error for object FAN:SYSTEMMODEL=ZONE 1 PIU FAN
** ~~~ ** Air Nodes not on any Branch or Parent Object
** ~~~ ** Inlet Node : ZONE 1 PIU MIXER AIR OUTLET NODE
** ~~~ ** Outlet Node: ZONE 1 REHEAT AIR INLET NODE
** Warning ** Node Connection Error for object UNDEFINED=ZONE 1 PIU FAN
** ~~~ ** UNDEFINED not on any Branch or Parent Object
** ~~~ ** Inlet Node : UNDEFINED
** ~~~ ** Outlet Node: NODE NAME NOT USED ANYWHERE
** Warning ** Potential Node Connection Error for object UNDEFINED, name=ZONE 1 PIU FAN
** ~~~ ** Node Types are still UNDEFINED -- See Branch/Node Details file for further information
** ~~~ ** Inlet Node : UNDEFINED
** ~~~ ** Outlet Node: NODE NAME NOT USED ANYWHERE
** Warning ** Potential Node Connection Error for object COIL:HEATING:WATER, name=REHEAT COIL ZONE 1
** ~~~ ** Node Types are still UNDEFINED -- See Branch/Node Details file for further information
** ~~~ ** Inlet Node : NODE NAME NOT USED ANYWHERE
** ~~~ ** Outlet Node: ZONE 1 PIU AIR OUTLET NODE
A simple check in PIU could report something like this, and save other users from decrypting these messages.
** Severe ** Illegal Reheat Coil Air Inlet Node Name = NODE NAME NOT USED ANYWHERE
** ~~~ ** Occurs in AirTerminal:SingleDuct:SeriesPIU:Reheat = ZONE 1 SPIU ATU
** ~~~ ** Actual Heating Coil Inlet Node Name = ZONE 1 REHEAT AIR INLET NODE
Tentative location for warning message:
// The reheat coil control node is necessary for hot water reheat, but not necessary for
// electric or gas reheat.
if (thisPIU.HCoilType == HtgCoilType::SimpleHeating) {
thisPIU.HotControlNode =
GetCoilWaterInletNode(state, state.dataIPShortCut->cAlphaArgs(9), state.dataIPShortCut->cAlphaArgs(10), ErrorsFound);
bool errFound = false;
int coilIndex = WaterCoils::GetWaterCoilIndex(state, state.dataIPShortCut->cAlphaArgs(9), state.dataIPShortCut->cAlphaArgs(10), errFound);
if (thisPIU.HCoilInAirNode != state.dataWaterCoils->WaterCoil(coilIndex).AirInletNodeNum) {
ShowSevereError(state, format("Illegal {} = {}", state.dataIPShortCut->cAlphaFieldNames(6), state.dataIPShortCut->cAlphaArgs(6)));
ShowContinueError(state, format("Occurs in {} = {}", cCurrentModuleObject, thisPIU.Name));
ShowContinueError(state,
format("Actual Heating Coil Inlet Node Name = {}",
state.dataLoopNodes->NodeID(state.dataWaterCoils->WaterCoil(coilIndex).AirInletNodeNum)));
//ErrorsFound = true;
}
}
Note that this node name is not actually needed since the heating coil type and name are provided. The only thing this node name is used for is to register this node as an internal node to the PIU unit. This node name could be found in the heating coil object.
thisPIU.HCoilInAirNode = GetOnlySingleNode(state,
state.dataIPShortCut->cAlphaArgs(6),
ErrorsFound,
DataLoopNode::ConnectionObjectType::AirTerminalSingleDuctSeriesPIUReheat,
state.dataIPShortCut->cAlphaArgs(1),
DataLoopNode::NodeFluidType::Air,
DataLoopNode::ConnectionType::Internal,
NodeInputManager::CompFluidStream::Primary,
ObjectIsParent,
state.dataIPShortCut->cAlphaFieldNames(6));
Details
Some additional details for this issue (if relevant):
- Platform (Operating system, version)
- Version of EnergyPlus (if using an intermediate build, include SHA)
- Unmethours link or helpdesk ticket number
Checklist
Add to this list or remove from it as applicable. This is a simple templated set of guidelines.
- Defect file added (https://github.com/NREL/EnergyPlus/files/11262803/PIUAuto_changeReheatInletNodeName.idf.txt)
- Ticket added to Pivotal for defect (development team task)
- Pull request created (the pull request will have additional tasks related to reviewing changes that fix this defect)