Skip to content

Commit

Permalink
Merge pull request #4355 from NREL/4354_ReliefComponents
Browse files Browse the repository at this point in the history
Fix #4354 - Issue in AirLoopHVACOutdoorAirSystem::reliefComponents with ZoneHVACComponents: wrong order
  • Loading branch information
kbenne authored Jun 21, 2021
2 parents cd0ed2f + fedc708 commit fd3fd61
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 5 deletions.
2 changes: 1 addition & 1 deletion src/model/AirLoopHVACOutdoorAirSystem.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -355,7 +355,7 @@ namespace model {
modelObjects.push_back(*comp);
modelObject = comp->airOutletModelObject();
} else if (auto comp = modelObject->optionalCast<ZoneHVACComponent>()) {
modelObjects.insert(modelObjects.begin(), *comp);
modelObjects.push_back(*comp);
modelObject = comp->outletNode();
} else {
// log unhandled component
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -219,21 +219,42 @@ TEST_F(ModelFixture, ZoneHVACTerminalUnitVariableRefrigerantFlow_AddToNodeOutdoo
EXPECT_EQ(1, outdoorAirSystem.oaComponents().size());
EXPECT_EQ(1, outdoorAirSystem.reliefComponents().size());

if (boost::optional<Node> OANode = outdoorAirSystem.outboardOANode()) {
{
boost::optional<Node> OANode = outdoorAirSystem.outboardOANode();
ASSERT_TRUE(OANode);
ZoneHVACTerminalUnitVariableRefrigerantFlow testObject(m);

EXPECT_TRUE(testObject.addToNode(OANode.get()));
EXPECT_EQ(3, airLoop.supplyComponents().size());
EXPECT_EQ(3, outdoorAirSystem.oaComponents().size());
auto oaComps = outdoorAirSystem.oaComponents();
ASSERT_EQ(3, oaComps.size());

EXPECT_TRUE(testObject.airLoopHVACOutdoorAirSystem());

// Test for #4354
EXPECT_EQ(testObject.inletNode().get(), oaComps[0]);
EXPECT_EQ(OANode.get(), oaComps[0]);
EXPECT_EQ(testObject, oaComps[1]);
EXPECT_EQ(testObject.outletNode().get(), oaComps[2]);
}

if (boost::optional<Node> reliefNode = outdoorAirSystem.outboardReliefNode()) {
{
boost::optional<Node> reliefNode = outdoorAirSystem.outboardReliefNode();
ASSERT_TRUE(reliefNode);

ZoneHVACTerminalUnitVariableRefrigerantFlow testObject(m);
EXPECT_TRUE(testObject.addToNode(reliefNode.get()));
EXPECT_EQ(3, airLoop.supplyComponents().size());
EXPECT_EQ(3, outdoorAirSystem.reliefComponents().size());
auto reliefComps = outdoorAirSystem.reliefComponents();
ASSERT_EQ(3, reliefComps.size());

EXPECT_TRUE(testObject.airLoopHVACOutdoorAirSystem());

// Test for #4354
EXPECT_EQ(testObject.inletNode().get(), reliefComps[0]);
EXPECT_EQ(testObject, reliefComps[1]);
EXPECT_EQ(testObject.outletNode().get(), reliefComps[2]);
EXPECT_EQ(reliefNode.get(), reliefComps[2]);
}
}

Expand Down

0 comments on commit fd3fd61

Please # to comment.