#include "Loop.hpp"
Public Member Functions | |
void | applySizingValues () |
void | autosize () |
virtual std::vector< ModelObject > | children () const |
virtual ModelObject | clone (Model model) const |
virtual boost::optional < ModelObject > | component (openstudio::Handle handle) |
virtual std::vector< ModelObject > | components (openstudio::IddObjectType type=openstudio::IddObjectType("Catchall")) |
std::vector< ModelObject > | components (HVACComponent inletComp, HVACComponent outletComp, openstudio::IddObjectType type=openstudio::IddObjectType("Catchall")) |
virtual boost::optional < ModelObject > | demandComponent (openstudio::Handle handle) const |
virtual std::vector< ModelObject > | demandComponents (std::vector< HVACComponent > inletComps, std::vector< HVACComponent > outletComps, openstudio::IddObjectType type=openstudio::IddObjectType("Catchall")) const |
virtual std::vector< ModelObject > | demandComponents (HVACComponent inletComp, HVACComponent outletComp, openstudio::IddObjectType type=openstudio::IddObjectType("Catchall")) const |
virtual std::vector< ModelObject > | demandComponents (openstudio::IddObjectType type=openstudio::IddObjectType("Catchall")) const |
virtual Node | demandInletNode () const |
virtual std::vector< Node > | demandInletNodes () const |
Mixer | demandMixer () const |
virtual Node | demandOutletNode () const |
Splitter | demandSplitter () const |
virtual std::vector < openstudio::IdfObject > | remove () |
virtual boost::optional < ModelObject > | supplyComponent (openstudio::Handle handle) |
virtual std::vector< ModelObject > | supplyComponents (std::vector< HVACComponent > inletComps, std::vector< HVACComponent > outletComps, openstudio::IddObjectType type=openstudio::IddObjectType("Catchall")) const |
virtual std::vector< ModelObject > | supplyComponents (HVACComponent inletComp, HVACComponent outletComp, openstudio::IddObjectType type=openstudio::IddObjectType("Catchall")) const |
virtual std::vector< ModelObject > | supplyComponents (openstudio::IddObjectType type=openstudio::IddObjectType("Catchall")) const |
virtual Node | supplyInletNode () const |
virtual Node | supplyOutletNode () const |
virtual std::vector< Node > | supplyOutletNodes () const |
virtual | ~Loop () |
Loop is the base class for HVAC air and water loops.
This class provides basic functionality to traverse a loop and locate components. Currently there are two types of loops AirLoopHVAC and PlantLoop. This interface reflects the commonality between the two. Loops in combination with HVACComponents offer a very simple interface to create new systems in EnergyPlus.
The following is an example of building a new HVAC system composed of an AirLoopHVAC with this c++ interface.
Model model = Model(); AirLoopHVAC airLoop = AirLoopHVAC(model); AirLoopHVACOutdoorAirSystem oaSystem = AirLoopHVACOutdoorAirSystem(model); FanConstantVolume fan = FanConstantVolume(model); CoilCoolingDXSingleSpeed coolCoil = CoilCoolingDXSingleSpeed(model); CoilHeatingGas heatingCoil = CoilHeatingGas(model); oaSystem.addToNode( airLoop.supplyOutletNode() ); fan.addToNode( airLoop.supplyOutletNode() ); coolCoil.addToNode( airLoop.supplyOutletNode() ); heatingCoil.addToNode( airLoop.supplyOutletNode() ); airLoop.addBranchForZone("Zone1");
The interface also allows you to retrieve a ModelObject and clone it into a new model thereby making a new copy. The clone algorithm is intellegent enough to bring along all of the connected pieces as it is appropriate.
Model newModel(); AirLoopHVAC newAirLoop = model.getModelObject(airLoop.handle())->clone(newModel);
The HVACComponent::addToNode function is intellegent. The add routine is context sensitive so for example adding a WaterToAirComponent to an air node will connect the air side ports, adding it to a plant loop node will connect the water side ports.
Model model = Model(); AirLoopHVAC airLoop = AirLoopHVAC(model); PlantLoop plantLoop = PlantLoop(model); CoilCoolingWater waterCoolingCoil = CoilCoolingWater(model); waterCoolingCoil.addToNode( airLoop.supplyOutletNode() ); waterCoolingCoil.addToSplitter( plantLoop.demandSplitter() );
|
inlinevirtual |
void openstudio::model::Loop::applySizingValues | ( | ) |
void openstudio::model::Loop::autosize | ( | ) |
|
virtual |
|
virtual |
Reimplemented in openstudio::model::AirLoopHVAC, and openstudio::model::PlantLoop.
|
virtual |
Returns an optional ModelObject with the given handle.
If the handle is not within the Loop then the optional will be false
|
virtual |
Returns all of the HVAC equipment within the air loop including both the supply and demand sides of the loop.
If type is given then the results will be limited to the given IddObjectType.
std::vector<ModelObject> openstudio::model::Loop::components | ( | HVACComponent | inletComp, |
HVACComponent | outletComp, | ||
openstudio::IddObjectType | type = openstudio::IddObjectType("Catchall") |
||
) |
Returns supplyComponents() or demandComponents(), depending on if the inlet and outlet component arugments are on the supply or demand side.
If they are from opposite sides of the loop then an empty vector will be returned.
|
virtual |
Returns an optional ModelObject with the given handle.
If the handle is not within demand side of the Loop then the optional will be false
|
virtual |
Returns all of the demand side hvac equipment between inletComps and outletComps.
If type is given then the results will be limited to the given IddObjectType. Multiple inlet and outlet nodes can be provided.
|
virtual |
Returns all of the demand side hvac equipment between inletComp and outletComp.
If type is given then the results will be limited to the given IddObjectType. Only one inlet and outlet node can be given.
|
virtual |
Returns all of the demand side HVAC equipment within the air loop.
If type is given then the results will be limited to the given IddObjectType.
|
virtual |
Reimplemented in openstudio::model::PlantLoop, and openstudio::model::AirLoopHVAC.
|
virtual |
Reimplemented in openstudio::model::PlantLoop, and openstudio::model::AirLoopHVAC.
Mixer openstudio::model::Loop::demandMixer | ( | ) | const |
|
virtual |
Reimplemented in openstudio::model::PlantLoop, and openstudio::model::AirLoopHVAC.
Splitter openstudio::model::Loop::demandSplitter | ( | ) | const |
|
virtual |
Reimplemented in openstudio::model::AirLoopHVAC, and openstudio::model::PlantLoop.
|
virtual |
Returns an optional ModelObject with the given handle.
If the handle is not within supply side of the Loop then the optional will be false
|
virtual |
Returns all of the supply side hvac equipment between inletComps and outletComps.
If type is given then the results will be limited to the given IddObjectType. Multiple inlet and outlet nodes can be provided.
|
virtual |
Returns all of the supply side hvac equipment between inletComp and outletComp.
If type is given then the results will be limited to the given IddObjectType. Only one inlet and outlet node can be given.
|
virtual |
Returns all of the supply side HVAC equipment within the air loop.
If type is given then the results will be limited to the given IddObjectType.
|
virtual |
Reimplemented in openstudio::model::PlantLoop, and openstudio::model::AirLoopHVAC.
|
virtual |
Reimplemented in openstudio::model::PlantLoop, and openstudio::model::AirLoopHVAC.
|
virtual |
Reimplemented in openstudio::model::PlantLoop, and openstudio::model::AirLoopHVAC.