NREL / EnergyPlus

EnergyPlus™ is a whole building energy simulation program that engineers, architects, and researchers use to model both energy consumption and water use in buildings.

Home Page:https://energyplus.net

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

AirTerminal:SingleDuct:UserDefined cannot find matching outlet node in ZoneHVAC:AirDistributionUnit

rraustad opened this issue · comments

Issue overview

User file shows a severe warning that appears to be a result of reading in the UserDefined air terminal before the AirDistributionUnit object is read in. Also of note is that the UserDefined air terminal does not use the ADUNum struct variable as far as I can tell.

** Severe  ** GetUserDefinedComponents: No matching Air Distribution Unit for AirTerminal:SingleDuct:UserDefined = AIRMIXER
**   ~~~   ** ...should have outlet node=TUNNELINLET

https://unmethours.com/question/98954/error-in-userdefined-hvac-objects-assembled/?answer=99039#post-id-99039

UserDefinedNodeError

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 (test1.zip)
  • 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)

@rraustad There are some minor changes to UserDefined terminal units in #10372 to support the HVAC topology reports. Not sure if it has any impact on this issue.

@mjwitte I ran this defect file in that branch and this defect file crashes here just after where the ADUNum fails to match the outlet nodes as described in the description (same issue - AirDistUnit is not allocated). Line 2112 of UserDefinedComponents:

state.dataDefineEquipment->AirDistUnit(state.dataUserDefinedComponents->UserAirTerminal(CompLoop).ADUNum)
    .TermUnitSizingNum = state.dataZoneEquip->ZoneEquipConfig(CtrlZone).AirDistUnitCool(SupAirIn).TermUnitSizingIndex;

So, how does EMSUserDefined5ZoneAirCooled.idf run without error?

EMSUserDefined5ZoneAirCooled gets the ADU inputs before UserDefined getInput. This defect file seems to take a different path.