CYCLUS
Public Types | Public Member Functions | List of all members
cyclus::ExchangeNodeGroup Class Reference

Detailed Description

A ExchangeNodeGroup is a collection of ExchangeNodes, and is the ExchangeGraph representation of a BidPortfolio or RequestPortfolio.

It houses information about the concrete capacities associated with either portfolio.

Definition at line 118 of file exchange_graph.h.

#include <exchange_graph.h>

Inheritance diagram for cyclus::ExchangeNodeGroup:
Inheritance graph
[legend]

Public Types

typedef boost::shared_ptr< ExchangeNodeGroupPtr
 

Public Member Functions

void AddCapacity (double c)
 
virtual void AddExchangeNode (ExchangeNode::Ptr node)
 
void AddExclGroup (std::vector< ExchangeNode::Ptr > &nodes)
 
void AddExclNode (ExchangeNode::Ptr n)
 
const std::vector< double > & capacities () const
 
std::vector< double > & capacities ()
 
const std::vector< std::vector< ExchangeNode::Ptr > > & excl_node_groups () const
 
std::vector< std::vector< ExchangeNode::Ptr > > & excl_node_groups ()
 
bool HasArcs ()
 
const std::vector< ExchangeNode::Ptr > & nodes () const
 
std::vector< ExchangeNode::Ptr > & nodes ()
 

Member Typedef Documentation

◆ Ptr

Definition at line 120 of file exchange_graph.h.

Member Function Documentation

◆ AddCapacity()

void cyclus::ExchangeNodeGroup::AddCapacity ( double  c)
inline

Add a flow capacity to the group.

Definition at line 168 of file exchange_graph.h.

◆ AddExchangeNode()

void cyclus::ExchangeNodeGroup::AddExchangeNode ( ExchangeNode::Ptr  node)
virtual

Add the node to the ExchangeNodeGroup and informs the node it is a member of this ExchangeNodeGroup.

Reimplemented in cyclus::RequestGroup.

Definition at line 90 of file exchange_graph.cc.

◆ AddExclGroup()

void cyclus::ExchangeNodeGroup::AddExclGroup ( std::vector< ExchangeNode::Ptr > &  nodes)
inline

Adds a node grouping to the set of exclusive node groups, in general this function is used for bid exclusivity.

An exclusive group implies that for all nodes in that group, flow is only allowed to flow over one. This is the case for multiple bids that refer to the same exclusive object.

Definition at line 148 of file exchange_graph.h.

◆ AddExclNode()

void cyclus::ExchangeNodeGroup::AddExclNode ( ExchangeNode::Ptr  n)

adds a single node to the set of exclusive node groupings, in general this function is used for demand exclusivity

Definition at line 96 of file exchange_graph.cc.

◆ capacities() [1/2]

const std::vector<double>& cyclus::ExchangeNodeGroup::capacities ( ) const
inline

the flow capacities assocaited with this group

Definition at line 136 of file exchange_graph.h.

◆ capacities() [2/2]

std::vector<double>& cyclus::ExchangeNodeGroup::capacities ( )
inline

Definition at line 137 of file exchange_graph.h.

◆ excl_node_groups() [1/2]

const std::vector< std::vector<ExchangeNode::Ptr> >& cyclus::ExchangeNodeGroup::excl_node_groups ( ) const
inline

exclusive node groups represent nodes over whose combined arcs flow can only exist on one arc

Definition at line 128 of file exchange_graph.h.

◆ excl_node_groups() [2/2]

std::vector< std::vector<ExchangeNode::Ptr> >& cyclus::ExchangeNodeGroup::excl_node_groups ( )
inline

Definition at line 131 of file exchange_graph.h.

◆ HasArcs()

bool cyclus::ExchangeNodeGroup::HasArcs ( )
inline
Returns
true of any nodes have arcs associated with them

Definition at line 153 of file exchange_graph.h.

◆ nodes() [1/2]

const std::vector<ExchangeNode::Ptr>& cyclus::ExchangeNodeGroup::nodes ( ) const
inline

Definition at line 122 of file exchange_graph.h.

◆ nodes() [2/2]

std::vector<ExchangeNode::Ptr>& cyclus::ExchangeNodeGroup::nodes ( )
inline

Definition at line 123 of file exchange_graph.h.


The documentation for this class was generated from the following files: