CYCLUS
|
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:
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, is the nameplate capacity of the object, and 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>
Public Member Functions | |
const std::set< Builder * > & | builders () const |
BuildingManager (Agent *agent=NULL) | |
std::vector< BuildOrder > | MakeBuildDecision (Commodity &commodity, double demand) |
void | Register (Builder *builder) |
void | Unregister (Builder *builder) |
Public Member Functions inherited from cyclus::toolkit::AgentManaged | |
Agent * | agent () const |
AgentManaged (Agent *agent=NULL) | |
Definition at line 48 of file building_manager.h.
Definition at line 68 of file building_manager.h.
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.
commodity | the commodity being demanded |
demand | the additional capacity required |
Definition at line 16 of file building_manager.cc.
Register a builder with the manager.
builder | the builder |
Definition at line 52 of file building_manager.h.
Unregister a builder with the manager.
builder | the builder |
Definition at line 56 of file building_manager.h.