OpenStudio:model
 AllClasses Namespaces Functions Variables Typedefs Enumerations Enumerator Pages

#include "Loop.hpp"

Inheritance diagram for openstudio::model::Loop:

Public Member Functions

void applySizingValues ()
void autosize ()
virtual std::vector< ModelObjectchildren () const
virtual ModelObject clone (Model model) const
virtual boost::optional
< ModelObject
component (openstudio::Handle handle)
virtual std::vector< ModelObjectcomponents (openstudio::IddObjectType type=openstudio::IddObjectType("Catchall"))
std::vector< ModelObjectcomponents (HVACComponent inletComp, HVACComponent outletComp, openstudio::IddObjectType type=openstudio::IddObjectType("Catchall"))
virtual boost::optional
< ModelObject
demandComponent (openstudio::Handle handle) const
virtual std::vector< ModelObjectdemandComponents (std::vector< HVACComponent > inletComps, std::vector< HVACComponent > outletComps, openstudio::IddObjectType type=openstudio::IddObjectType("Catchall")) const
virtual std::vector< ModelObjectdemandComponents (HVACComponent inletComp, HVACComponent outletComp, openstudio::IddObjectType type=openstudio::IddObjectType("Catchall")) const
virtual std::vector< ModelObjectdemandComponents (openstudio::IddObjectType type=openstudio::IddObjectType("Catchall")) const
virtual Node demandInletNode () const
virtual std::vector< NodedemandInletNodes () 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< ModelObjectsupplyComponents (std::vector< HVACComponent > inletComps, std::vector< HVACComponent > outletComps, openstudio::IddObjectType type=openstudio::IddObjectType("Catchall")) const
virtual std::vector< ModelObjectsupplyComponents (HVACComponent inletComp, HVACComponent outletComp, openstudio::IddObjectType type=openstudio::IddObjectType("Catchall")) const
virtual std::vector< ModelObjectsupplyComponents (openstudio::IddObjectType type=openstudio::IddObjectType("Catchall")) const
virtual Node supplyInletNode () const
virtual Node supplyOutletNode () const
virtual std::vector< NodesupplyOutletNodes () const
virtual ~Loop ()

Detailed Description

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() );

Constructor & Destructor Documentation

virtual openstudio::model::Loop::~Loop ( )
inlinevirtual

Member Function Documentation

void openstudio::model::Loop::applySizingValues ( )
void openstudio::model::Loop::autosize ( )
virtual std::vector<ModelObject> openstudio::model::Loop::children ( ) const
virtual
virtual ModelObject openstudio::model::Loop::clone ( Model  model) const
virtual
virtual boost::optional<ModelObject> openstudio::model::Loop::component ( openstudio::Handle  handle)
virtual

Returns an optional ModelObject with the given handle.

If the handle is not within the Loop then the optional will be false

virtual std::vector<ModelObject> openstudio::model::Loop::components ( openstudio::IddObjectType  type = openstudio::IddObjectType("Catchall"))
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 boost::optional<ModelObject> openstudio::model::Loop::demandComponent ( openstudio::Handle  handle) const
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 std::vector<ModelObject> openstudio::model::Loop::demandComponents ( std::vector< HVACComponent inletComps,
std::vector< HVACComponent outletComps,
openstudio::IddObjectType  type = openstudio::IddObjectType("Catchall") 
) const
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 std::vector<ModelObject> openstudio::model::Loop::demandComponents ( HVACComponent  inletComp,
HVACComponent  outletComp,
openstudio::IddObjectType  type = openstudio::IddObjectType("Catchall") 
) const
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 std::vector<ModelObject> openstudio::model::Loop::demandComponents ( openstudio::IddObjectType  type = openstudio::IddObjectType("Catchall")) const
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 Node openstudio::model::Loop::demandInletNode ( ) const
virtual
virtual std::vector<Node> openstudio::model::Loop::demandInletNodes ( ) const
virtual
Mixer openstudio::model::Loop::demandMixer ( ) const
virtual Node openstudio::model::Loop::demandOutletNode ( ) const
virtual
Splitter openstudio::model::Loop::demandSplitter ( ) const
virtual std::vector<openstudio::IdfObject> openstudio::model::Loop::remove ( )
virtual
virtual boost::optional<ModelObject> openstudio::model::Loop::supplyComponent ( openstudio::Handle  handle)
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 std::vector<ModelObject> openstudio::model::Loop::supplyComponents ( std::vector< HVACComponent inletComps,
std::vector< HVACComponent outletComps,
openstudio::IddObjectType  type = openstudio::IddObjectType("Catchall") 
) const
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 std::vector<ModelObject> openstudio::model::Loop::supplyComponents ( HVACComponent  inletComp,
HVACComponent  outletComp,
openstudio::IddObjectType  type = openstudio::IddObjectType("Catchall") 
) const
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 std::vector<ModelObject> openstudio::model::Loop::supplyComponents ( openstudio::IddObjectType  type = openstudio::IddObjectType("Catchall")) const
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 Node openstudio::model::Loop::supplyInletNode ( ) const
virtual
virtual Node openstudio::model::Loop::supplyOutletNode ( ) const
virtual
virtual std::vector<Node> openstudio::model::Loop::supplyOutletNodes ( ) const
virtual