2 #line 1 "/Users/khuff/repos/cyclus/commodconverter/src/commodconverter.h"
3 #ifndef CYCLUS_COMMODCONVERTERS_COMMODCONVERTER_H_
4 #define CYCLUS_COMMODCONVERTERS_COMMODCONVERTER_H_
11 namespace commodconverter {
12 class CommodConverter;
16 namespace commodconverter {
69 :
public cyclus::Facility,
70 public cyclus::toolkit::CommodityProducer {
81 #line 81 "/Users/khuff/repos/cyclus/commodconverter/src/commodconverter.h"
85 virtual void InitFrom(cyclus::QueryableBackend* b);
87 virtual void InfileToDb(cyclus::InfileTree* tree, cyclus::DbInit di);
89 virtual cyclus::Agent*
Clone();
91 virtual std::string
schema();
95 virtual void InitInv(cyclus::Inventories& inv);
99 virtual void Snapshot(cyclus::DbInit di);
101 #pragma cyclus note {"doc": "A commodconverter facility converts from one " "commodity to another, with an optional delay."}
102 #line 84 "/Users/khuff/repos/cyclus/commodconverter/src/commodconverter.h"
105 virtual std::string
str();
122 virtual std::set<cyclus::RequestPortfolio<cyclus::Material>::Ptr>
GetMatlRequests();
127 const std::vector< std::pair<cyclus::Trade<cyclus::Material>,
128 cyclus::Material::Ptr> >& responses);
133 virtual std::set<cyclus::BidPortfolio<cyclus::Material>::Ptr>
134 GetMatlBids(cyclus::CommodMap<cyclus::Material>::type&
142 const std::vector< cyclus::Trade<cyclus::Material> >& trades,
143 std::vector<std::pair<cyclus::Trade<cyclus::Material>,
144 cyclus::Material::Ptr> >& responses);
145 #line 132 "/Users/khuff/repos/cyclus/commodconverter/src/commodconverter.h"
151 void AddMat_(cyclus::Material::Ptr mat);
160 cyclus::BidPortfolio<cyclus::Material>::Ptr
GetBids_(
161 cyclus::CommodMap<cyclus::Material>::type& commod_requests,
163 cyclus::toolkit::ResourceBuff* buffer);
168 cyclus::toolkit::ResourceBuff* buffer);
177 inline void crctx(
const cyclus::toolkit::CommodityRecipeContext&
crctx) {
181 inline cyclus::toolkit::CommodityRecipeContext
crctx()
const {
187 #line 173 "/Users/khuff/repos/cyclus/commodconverter/src/commodconverter.h"
189 #pragma cyclus var {"tooltip":"input commodity", "doc":"commodity accepted by this facility"}
190 #line 178 "/Users/khuff/repos/cyclus/commodconverter/src/commodconverter.h"
193 #pragma cyclus var {"tooltip":"output commodity", "doc":"commodity produced by this facility"}
194 #line 182 "/Users/khuff/repos/cyclus/commodconverter/src/commodconverter.h"
197 #pragma cyclus var {"default":"", "tooltip":"input recipe", "doc":"recipe accepted by this facility"}
198 #line 187 "/Users/khuff/repos/cyclus/commodconverter/src/commodconverter.h"
201 #pragma cyclus var {"default":"", "tooltip":"output recipe", "doc":"recipe to be generated by this facility"}
202 #line 192 "/Users/khuff/repos/cyclus/commodconverter/src/commodconverter.h"
205 #pragma cyclus var {"default": 0, "tooltip":"process time (timesteps)", "doc":"the time it takes to convert a received commodity (timesteps)."}
206 #line 197 "/Users/khuff/repos/cyclus/commodconverter/src/commodconverter.h"
209 #pragma cyclus var {"default": 1e299, "tooltip":"maximum inventory size (kg)", "doc":"the amount of material that can be in storage at " "one time (kg)."}
210 #line 203 "/Users/khuff/repos/cyclus/commodconverter/src/commodconverter.h"
213 #pragma cyclus var{"default": 1e299, "tooltip":"capacity per timestep (kg)", "doc":"the maximumamount that can be processed per timestep (kg)"}
214 #line 208 "/Users/khuff/repos/cyclus/commodconverter/src/commodconverter.h"
217 #pragma cyclus var{"default": 0, "tooltip":"cost per kg of production", "doc":"cost per kg of produced out_commod"}
218 #line 213 "/Users/khuff/repos/cyclus/commodconverter/src/commodconverter.h"
227 cyclus::toolkit::CommodityRecipeContext
crctx_;
270 #endif // CYCLUS_COMMODCONVERTERS_COMMODCONVERTER_H_
double current_capacity() const
current maximum amount that can be added to processing
void capacity_(double c)
the maximum amount processed per timestep
cyclus::BidPortfolio< cyclus::Material >::Ptr GetBids_(cyclus::CommodMap< cyclus::Material >::type &commod_requests, std::string commod, cyclus::toolkit::ResourceBuff *buffer)
gathers information about bids
virtual void Snapshot(cyclus::DbInit di)
virtual void InfileToDb(cyclus::InfileTree *tree, cyclus::DbInit di)
virtual void InitFrom(commodconverter::CommodConverter *m)
The Prime Directive Generates code that handles all input file reading and restart operations (e...
cyclus::toolkit::ResourceBuff inventory
std::string in_recipe_() const
virtual void GetMatlTrades(const std::vector< cyclus::Trade< cyclus::Material > > &trades, std::vector< std::pair< cyclus::Trade< cyclus::Material >, cyclus::Material::Ptr > > &responses)
respond to each trade with a material of out_commod and out_recipe
virtual std::string schema()
int process_time_() const
cyclus::toolkit::CommodityRecipeContext crctx_
cyclus::Material::Ptr TradeResponse_(double qty, cyclus::toolkit::ResourceBuff *buffer)
suggests, based on the buffer, a material response to an offer
std::string out_commod_() const
virtual std::set< cyclus::RequestPortfolio< cyclus::Material >::Ptr > GetMatlRequests()
The CommodConverter request Materials of its given commodity.
void out_recipe_(std::string c)
the out recipe
void Convert_()
Convert one ready resource in processing.
void in_recipe_(std::string c)
the in recipe
void in_commod_(std::string c)
the in commodity
virtual void AcceptMatlTrades(const std::vector< std::pair< cyclus::Trade< cyclus::Material >, cyclus::Material::Ptr > > &responses)
The CommodConverter place accepted trade Materials in their Inventory.
cyclus::toolkit::CommodityRecipeContext crctx() const
virtual std::set< cyclus::BidPortfolio< cyclus::Material >::Ptr > GetMatlBids(cyclus::CommodMap< cyclus::Material >::type &commod_requests)
Responds to each request for this facility's commodity.
virtual cyclus::Agent * Clone()
void BeginProcessing_()
Move all unprocessed inventory to processing.
double max_inv_size_() const
virtual std::string str()
A verbose printer for the CommodConverter.
virtual void Tock()
The handleTick function specific to the CommodConverter.
void cost_(double c)
the cost per unit out_commod
void process_time_(int t)
the processing time required for a full process
void AddMat_(cyclus::Material::Ptr mat)
adds a material into the incoming commodity inventory
int ready()
returns the time key for ready materials
virtual void InitInv(cyclus::Inventories &inv)
cyclus::Material::Ptr Request_()
generates a request for this facility given its current state.
CommodConverter(cyclus::Context *ctx)
Constructor for CommodConverter Class.
std::string in_commod_() const
cyclus::toolkit::ResourceBuff stocks
This Facility is intended to convert a resource from one commodity to another.
virtual Json::Value annotations()
virtual void Tick()
The handleTick function specific to the CommodConverter.
void out_commod_(std::string c)
the out commodity
std::string out_recipe_() const
void max_inv_size_(double c)
the maximum amount allowed in inventory
void crctx(const cyclus::toolkit::CommodityRecipeContext &crctx)
this facility's commodity-recipe context
std::map< int, cyclus::toolkit::ResourceBuff > processing
map from ready time to resource buffers
virtual cyclus::Inventories SnapshotInv()
virtual void EnterNotify()