1 #ifndef CYCAMORE_SRC_SINK_H_ 2 #define CYCAMORE_SRC_SINK_H_ 22 :
public cyclus::Facility,
23 public cyclus::toolkit::Position {
25 Sink(cyclus::Context* ctx);
31 #pragma cyclus note { \ 33 " A sink facility that accepts materials and products with a fixed\n"\ 34 " throughput (per time step) capacity and a lifetime capacity defined by\n"\ 35 " a total inventory size. The inventory size and throughput capacity\n"\ 36 " both default to infinite. If a recipe is provided, it will request\n"\ 37 " material with that recipe. Requests are made for any number of\n"\ 38 " specified commodities.\n" \ 53 virtual std::set<cyclus::RequestPortfolio<cyclus::Material>::Ptr>
59 virtual std::set<cyclus::RequestPortfolio<cyclus::Product>::Ptr>
64 const std::vector< std::pair<cyclus::Trade<cyclus::Material>,
65 cyclus::Material::Ptr> >& responses);
69 const std::vector< std::pair<cyclus::Trade<cyclus::Product>,
70 cyclus::Product::Ptr> >& responses);
102 inline const std::vector<std::string>&
106 inline const std::vector<double>&
111 #pragma cyclus var {"tooltip": "input commodities", \ 112 "doc": "commodities that the sink facility accepts", \ 113 "uilabel": "List of Input Commodities", \ 114 "uitype": ["oneormore", "incommodity"]} 117 #pragma cyclus var {"default": [],\ 118 "doc":"preferences for each of the given commodities, in the same order."\ 119 "Defauts to 1 if unspecified",\ 120 "uilabel":"In Commody Preferences", \ 121 "range": [None, [1e-299, 1e299]], \ 122 "uitype":["oneormore", "range"]} 125 #pragma cyclus var {"default": "", \ 126 "tooltip": "requested composition", \ 127 "doc": "name of recipe to use for material requests, " \ 128 "where the default (empty string) is to accept " \ 130 "uilabel": "Input Recipe", \ 131 "uitype": "inrecipe"} 135 #pragma cyclus var {"default": 1e299, \ 136 "tooltip": "sink maximum inventory size", \ 137 "uilabel": "Maximum Inventory", \ 139 "range": [0.0, 1e299], \ 140 "doc": "total maximum inventory size of sink facility"} 144 #pragma cyclus var {"default": 1e299, \ 145 "tooltip": "sink capacity", \ 146 "uilabel": "Maximum Throughput", \ 148 "range": [0.0, 1e299], \ 149 "doc": "capacity the sink facility can " \ 150 "accept at each time step"} 154 #pragma cyclus var {'capacity': 'max_inv_size'} 155 cyclus::toolkit::ResBuf<cyclus::Resource>
inventory;
157 #pragma cyclus var { \ 159 "uilabel": "Geographical latitude in degrees as a double", \ 160 "doc": "Latitude of the agent's geographical position. The value should " \ 161 "be expressed in degrees as a double." \ 165 #pragma cyclus var { \ 167 "uilabel": "Geographical longitude in degrees as a double", \ 168 "doc": "Longitude of the agent's geographical position. The value should " \ 169 "be expressed in degrees as a double." \ 180 #endif // CYCAMORE_SRC_SINK_H_
virtual std::set< cyclus::RequestPortfolio< cyclus::Material >::Ptr > GetMatlRequests()
SinkFacilities request Materials of their given commodity.
cyclus::toolkit::ResBuf< cyclus::Resource > inventory
this facility holds material in storage.
double RequestAmt() const
determines the amount to request
cyclus::toolkit::Position coordinates
double InventorySize() const
double max_inv_size
max inventory size
Sink(cyclus::Context *ctx)
const std::vector< std::string > & input_commodities() const
virtual void EnterNotify()
void AddCommodity(std::string name)
add a commodity to the set of input commodities
virtual void AcceptGenRsrcTrades(const std::vector< std::pair< cyclus::Trade< cyclus::Product >, cyclus::Product::Ptr > > &responses)
SinkFacilities place accepted trade Materials in their Inventory.
void Capacity(double cap)
sets the capacity of a material generated at any given time step
const std::vector< double > & input_commodity_preferences() const
cycamore::GrowthRegion string
virtual std::string version()
virtual std::set< cyclus::RequestPortfolio< cyclus::Product >::Ptr > GetGenRsrcRequests()
SinkFacilities request Products of their given commodity.
std::vector< double > in_commod_prefs
double MaxInventorySize() const
virtual void AcceptMatlTrades(const std::vector< std::pair< cyclus::Trade< cyclus::Material >, cyclus::Material::Ptr > > &responses)
SinkFacilities place accepted trade Materials in their Inventory.
std::vector< std::string > in_commods
all facilities must have at least one input commodity
void SetMaxInventorySize(double size)
sets the size of the storage inventory for received material
double capacity
monthly acceptance capacity
virtual std::string str()