1#ifndef CYCAMORE_SRC_CONVERSION_H_
2#define CYCAMORE_SRC_CONVERSION_H_
13#pragma cyclus exec from cyclus.system import CY_LARGE_DOUBLE, CY_LARGE_INT, CY_NEAR_ZERO
24 :
public cyclus::Facility,
25 public cyclus::toolkit::Position {
34 #pragma cyclus note { \
36 " A conversion facility that accepts materials and products and with a \n"\
37 " fixed throughput (per time step) converts them into its outcommod. " \
43 virtual std::string
str();
57 virtual std::set<cyclus::RequestPortfolio<cyclus::Material>::Ptr>
60 virtual std::set<cyclus::BidPortfolio<cyclus::Material>::Ptr>
65 const std::vector< cyclus::Trade<cyclus::Material> >& trades,
66 std::vector<std::pair<cyclus::Trade<cyclus::Material>,
67 cyclus::Material::Ptr> >& responses);
71 const std::vector< std::pair<cyclus::Trade<cyclus::Material>,
72 cyclus::Material::Ptr> >& responses);
78 #include "toolkit/position.cycpp.h"
82 #pragma cyclus var { \
83 "tooltip": "input commodities", \
84 "doc": "commodities that the conversion facility accepts", \
85 "uilabel": "List of Input Commodities", \
86 "uitype": ["oneormore", "incommodity"] \
90 #pragma cyclus var { \
91 "tooltip": "output commodity", \
92 "doc": "Output commodity on which the conversion facility offers material.", \
93 "uilabel": "Output Commodity", \
94 "uitype": "outcommodity", \
99 #pragma cyclus var { \
100 "default": CY_LARGE_DOUBLE, \
101 "tooltip": "conversion throughput per timestep", \
102 "uilabel": "Maximum conversion throughput", \
104 "range": [0.0, CY_LARGE_DOUBLE], \
105 "doc": "throughput the facility can convert at each time step" \
109 #pragma cyclus var { \
110 "default": CY_LARGE_DOUBLE, \
111 "tooltip": "input buffer capacity", \
112 "uilabel": "Maximum Storage of Input Buffer", \
114 "range": [0.0, CY_LARGE_DOUBLE], \
115 "doc": "Total capacity of the input buffer. The amount requested per " \
116 "time step is the minimum the conversion throughput and this capacity " \
117 "minus the amount of material in the input buffer." \
122 #pragma cyclus var {'capacity': 'input_capacity'}
123 cyclus::toolkit::ResBuf<cyclus::Material>
input;
126 cyclus::toolkit::ResBuf<cyclus::Material>
output;
This facility acts as a simple conversion facility from its input commodity to its output commodity.
double throughput
Conversion throughput per timestep.
cyclus::toolkit::ResBuf< cyclus::Material > input
this facility holds a certain amount of material
virtual std::string version()
double AvailableFeedstockCapacity()
virtual std::string str()
virtual std::set< cyclus::RequestPortfolio< cyclus::Material >::Ptr > GetMatlRequests()
Conversion Facilities request Materials of their given commodity.
cyclus::toolkit::ResBuf< cyclus::Material > output
a buffer for outgoing material
virtual std::set< cyclus::BidPortfolio< cyclus::Material >::Ptr > GetMatlBids(cyclus::CommodMap< cyclus::Material >::type &commod_requests)
virtual void AcceptMatlTrades(const std::vector< std::pair< cyclus::Trade< cyclus::Material >, cyclus::Material::Ptr > > &responses)
Conversion Facilities place accepted trade Materials in their Inventory.
virtual void GetMatlTrades(const std::vector< cyclus::Trade< cyclus::Material > > &trades, std::vector< std::pair< cyclus::Trade< cyclus::Material >, cyclus::Material::Ptr > > &responses)
virtual void EnterNotify()
Conversion(cyclus::Context *ctx)
std::vector< std::string > incommods
all facilities must have at least one input commodity