CYCLUS
Loading...
Searching...
No Matches
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:
cyclus::toolkit::AgentManaged

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)
inline

Definition at line 48 of file building_manager.h.

Member Function Documentation

◆ builders()

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

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.

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

Definition at line 16 of file building_manager.cc.

◆ Register()

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

Register a builder with the manager.

Parameters
builderthe builder

Definition at line 52 of file building_manager.h.

◆ Unregister()

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

Unregister a builder with the manager.

Parameters
builderthe builder

Definition at line 56 of file building_manager.h.


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