Public Member Functions | List of all members
cyclus::toolkit::BuildingManager Class Reference

Detailed Description

The BuildingManager class is a managing entity that makes decisions about which objects to build given certain conditions.

Specifically, the BuildingManager queries the SupplyDemandManager to determine if there exists unmet demand for a Commodity, and then decides which object(s) amongst that Commodity's producers should be built to meet that demand. This decision takes the form of an integer program:

\[ \min \sum_{i=1}^{N}c_i*y_i \\ s.t. \sum_{i=1}^{N}\phi_i*y_i \ge \Phi \\ n_i \in [0,\infty) \forall i \in I, y_i integer \]

Where y_i is the number of objects of type i to build, c_i is the cost to build the object of type i, $\phi_i$ is the nameplate capacity of the object, and $\Phi$ is the capacity demand. Here the set I corresponds to all producers of a given commodity.

Definition at line 46 of file building_manager.h.

#include <building_manager.h>

Inheritance diagram for cyclus::toolkit::BuildingManager:
Inheritance graph

Public Member Functions

const std::set< Builder * > & builders () const
 BuildingManager (Agent *agent=NULL)
std::vector< BuildOrderMakeBuildDecision (Commodity &commodity, double demand)
void Register (Builder *builder)
void Unregister (Builder *builder)
- Public Member Functions inherited from cyclus::toolkit::AgentManaged
Agentagent () const
 AgentManaged (Agent *agent=NULL)

Constructor & Destructor Documentation

◆ BuildingManager()

cyclus::toolkit::BuildingManager::BuildingManager ( Agent agent = NULL)

Definition at line 48 of file building_manager.h.

Member Function Documentation

◆ builders()

const std::set<Builder*>& cyclus::toolkit::BuildingManager::builders ( ) const

Definition at line 68 of file building_manager.h.

◆ MakeBuildDecision()

std::vector< BuildOrder > cyclus::toolkit::BuildingManager::MakeBuildDecision ( Commodity commodity,
double  demand 

Given a certain commodity and demand, a decision is made as to how many producers of each available type to build this function constructs an integer program through the SolverInterface.

commoditythe commodity being demanded
demandthe additional capacity required
a vector of build orders as decided

Definition at line 18 of file

◆ Register()

void cyclus::toolkit::BuildingManager::Register ( Builder builder)

Register a builder with the manager.

builderthe builder

Definition at line 52 of file building_manager.h.

◆ Unregister()

void cyclus::toolkit::BuildingManager::Unregister ( Builder builder)

Unregister a builder with the manager.

builderthe builder

Definition at line 56 of file building_manager.h.

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