MCPcopy Create free account
hub / github.com/NatLabRockies/OpenStudio / removeReturnPlenum

Method removeReturnPlenum

src/model/ThermalZone.cpp:2444–2468  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2442 }
2443
2444 void ThermalZone_Impl::removeReturnPlenum(AirLoopHVAC& airLoop) {
2445 Model t_model = model();
2446
2447 auto zoneMixer = airLoop.zoneMixer();
2448 auto modelObjects = airLoop.demandComponents(getObject<ThermalZone>(), zoneMixer);
2449 auto plenums = subsetCastVector<AirLoopHVACReturnPlenum>(modelObjects);
2450 boost::optional<AirLoopHVACReturnPlenum> plenum;
2451
2452 if (!plenums.empty()) {
2453 plenum = plenums.front();
2454 }
2455
2456 if (plenum) {
2457 if (plenum->inletModelObjects().size() == 1u) {
2458 plenum->remove();
2459 } else {
2460 auto it = std::find(modelObjects.begin(), modelObjects.end(), plenum.get());
2461 ModelObject plenumInletModelObject = *(it - 1);
2462 unsigned branchIndex = plenum->branchIndexForInletModelObject(plenumInletModelObject);
2463 unsigned port = plenum->connectedObjectPort(plenum->inletPort(branchIndex)).get();
2464 plenum->removePortForBranch(branchIndex);
2465 t_model.connect(plenumInletModelObject, port, zoneMixer, zoneMixer.nextInletPort());
2466 }
2467 }
2468 }
2469
2470 void ThermalZone_Impl::removeReturnPlenum() {
2471 auto loop = airLoopHVAC();

Callers 2

removeBranchForZoneMethod · 0.45
removeMethod · 0.45

Calls 15

zoneMixerMethod · 0.80
demandComponentsMethod · 0.80
inletModelObjectsMethod · 0.80
beginMethod · 0.80
connectedObjectPortMethod · 0.80
emptyMethod · 0.45
sizeMethod · 0.45
removeMethod · 0.45
endMethod · 0.45
getMethod · 0.45
inletPortMethod · 0.45

Tested by

no test coverage detected