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

Method setReturnPlenum

src/model/ZoneHVACComponent.cpp:166–206  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

164 }
165
166 bool ZoneHVACComponent_Impl::setReturnPlenum(const ThermalZone& plenumZone) {
167
168 bool result = true;
169
170 if (!plenumZone.canBePlenum()) {
171 result = false;
172 }
173
174 auto node = inletNode();
175 if (!node) {
176 result = false;
177 }
178
179 auto m = model();
180
181 boost::optional<AirLoopHVACReturnPlenum> plenum;
182
183 if (result) {
184 plenum = plenumZone.getImpl<ThermalZone_Impl>()->airLoopHVACReturnPlenum();
185
186 if (!plenum) {
187 plenum = AirLoopHVACReturnPlenum(m);
188 plenum->setThermalZone(plenumZone);
189 }
190
191 OS_ASSERT(plenum);
192 OS_ASSERT(node);
193 }
194
195 // don't let a plenum connect to ZoneHVAC and AirLoopHVAC at the same time
196 if (plenum->airLoopHVAC()) {
197 result = false;
198 }
199
200 if (result) {
201 removeReturnPlenum();
202 result = plenum->addToNode(node.get());
203 }
204
205 return result;
206 }
207
208 bool ZoneHVACComponent_Impl::addToThermalZone(ThermalZone& thermalZone) {
209 Model m = this->model();

Callers

nothing calls this directly

Calls 8

inletNodeFunction · 0.85
canBePlenumMethod · 0.80
setThermalZoneMethod · 0.45
airLoopHVACMethod · 0.45
addToNodeMethod · 0.45
getMethod · 0.45

Tested by

no test coverage detected