CYCAMORE
Loading...
Searching...
No Matches
build/cycamore/conversion.h
Go to the documentation of this file.
1
2#line 1 "/cycamore/src/conversion.h"
3#ifndef CYCAMORE_SRC_CONVERSION_H_
4#define CYCAMORE_SRC_CONVERSION_H_
5
6#include <algorithm>
7#include <string>
8#include <utility>
9#include <vector>
10
11#include "cyclus.h"
12#include "cycamore_version.h"
13
14// clang-format off
15#pragma cyclus exec from cyclus.system import CY_LARGE_DOUBLE, CY_LARGE_INT, CY_NEAR_ZERO
16// clang-format on
17
18namespace cycamore {
19
20class Context;
21
26 : public cyclus::Facility,
27 public cyclus::toolkit::Position {
28 public:
29 Conversion(cyclus::Context* ctx);
30
31 virtual ~Conversion();
32
33 virtual std::string version() { return CYCAMORE_VERSION; }
34
35 // clanag-format off
36 #pragma cyclus note { "doc": " A conversion facility that accepts materials and products and with a \n" " fixed throughput (per time step) converts them into its outcommod. " }
37#line 39 "/cycamore/src/conversion.h"
38
39 virtual void InitFrom(cycamore::Conversion* m);
40
41 virtual void InitFrom(cyclus::QueryableBackend* b);
42
43 virtual void InfileToDb(cyclus::InfileTree* tree, cyclus::DbInit di);
44
45 virtual cyclus::Agent* Clone();
46
47 virtual std::string schema();
48
49 virtual Json::Value annotations();
50
51 virtual void InitInv(cyclus::Inventories& inv);
52
53 virtual cyclus::Inventories SnapshotInv();
54
55 virtual void Snapshot(cyclus::DbInit di);
56#line 41 "/cycamore/src/conversion.h"
57 // clang-format on
58
59 virtual std::string str();
60
61 virtual void EnterNotify();
62
63 virtual void Tick();
64
65 virtual void Tock();
66
68
69 void Convert();
70
71
73 virtual std::set<cyclus::RequestPortfolio<cyclus::Material>::Ptr>
75
76 virtual std::set<cyclus::BidPortfolio<cyclus::Material>::Ptr>
77 GetMatlBids(cyclus::CommodMap<cyclus::Material>::type&
78 commod_requests);
79
80 virtual void GetMatlTrades(
81 const std::vector< cyclus::Trade<cyclus::Material> >& trades,
82 std::vector<std::pair<cyclus::Trade<cyclus::Material>,
83 cyclus::Material::Ptr> >& responses);
84
86 virtual void AcceptMatlTrades(
87 const std::vector< std::pair<cyclus::Trade<cyclus::Material>,
88 cyclus::Material::Ptr> >& responses);
89
90
91
92 private:
93 // Code Injection:
94 #include "toolkit/position.cycpp.h"
95
96 // clang-format off
98 #pragma cyclus var { "tooltip": "input commodities", "doc": "commodities that the conversion facility accepts", "uilabel": "List of Input Commodities", "uitype": ["oneormore", "incommodity"] }
99#line 88 "/cycamore/src/conversion.h"
100 std::vector<std::string> incommods;
101 std::vector<int> cycpp_shape_incommods;
102#line 89 "/cycamore/src/conversion.h"
103
104
105 #pragma cyclus var { "tooltip": "output commodity", "doc": "Output commodity on which the conversion facility offers material.", "uilabel": "Output Commodity", "uitype": "outcommodity", }
106#line 96 "/cycamore/src/conversion.h"
107 std::string outcommod;
108 std::vector<int> cycpp_shape_outcommod;
109
110#line 97 "/cycamore/src/conversion.h"
111
113 #pragma cyclus var { "default": CY_LARGE_DOUBLE, "tooltip": "conversion throughput per timestep", "uilabel": "Maximum conversion throughput", "uitype": "range", "range": [0.0, CY_LARGE_DOUBLE], "doc": "throughput the facility can convert at each time step" }
114#line 107 "/cycamore/src/conversion.h"
116 std::vector<int> cycpp_shape_throughput;
117#line 108 "/cycamore/src/conversion.h"
118
119
120 #pragma cyclus var { "default": CY_LARGE_DOUBLE, "tooltip": "input buffer capacity", "uilabel": "Maximum Storage of Input Buffer", "uitype": "range", "range": [0.0, CY_LARGE_DOUBLE], "doc": "Total capacity of the input buffer. The amount requested per " "time step is the minimum the conversion throughput and this capacity " "minus the amount of material in the input buffer." }
121#line 119 "/cycamore/src/conversion.h"
124
125#line 120 "/cycamore/src/conversion.h"
126
128 #pragma cyclus var {'capacity': 'input_capacity'}
129 cyclus::toolkit::ResBuf<cyclus::Material> input;
130 std::vector<int> cycpp_shape_input;
131
132#line 124 "/cycamore/src/conversion.h"
133
135 cyclus::toolkit::ResBuf<cyclus::Material> output;
136 // clang-format on
137
138};
139
140} // namespace cycamore
141
142#endif // CYCAMORE_SRC_CONVERSION_H_
#define CYCAMORE_VERSION
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()
std::vector< int > cycpp_shape_input
virtual std::set< cyclus::RequestPortfolio< cyclus::Material >::Ptr > GetMatlRequests()
Conversion Facilities request Materials of their given commodity.
virtual void InitInv(cyclus::Inventories &inv)
virtual void Snapshot(cyclus::DbInit di)
virtual void InfileToDb(cyclus::InfileTree *tree, cyclus::DbInit di)
virtual cyclus::Agent * Clone()
virtual Json::Value annotations()
cyclus::toolkit::ResBuf< cyclus::Material > output
a buffer for outgoing material
std::vector< int > cycpp_shape_outcommod
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 InitFrom(cycamore::Conversion *m)
virtual cyclus::Inventories SnapshotInv()
virtual void GetMatlTrades(const std::vector< cyclus::Trade< cyclus::Material > > &trades, std::vector< std::pair< cyclus::Trade< cyclus::Material >, cyclus::Material::Ptr > > &responses)
std::vector< int > cycpp_shape_throughput
std::vector< int > cycpp_shape_input_capacity
Conversion(cyclus::Context *ctx)
std::vector< int > cycpp_shape_incommods
std::vector< std::string > incommods
all facilities must have at least one input commodity