CYCLUS
Loading...
Searching...
No Matches
enrichment.h
Go to the documentation of this file.
1#ifndef CYCLUS_SRC_TOOLKIT_ENRICHMENT_H_
2#define CYCLUS_SRC_TOOLKIT_ENRICHMENT_H_
3
4#include <set>
5
6#include "material.h"
7
8namespace cyclus {
9namespace toolkit {
10
11/// A simple container class for enrichment assays
12class Assays {
13 public:
14 /// Constructor
15 Assays(double feed, double product, double tails);
16
17 /// @return the feed assay as an atomic fraction, i.e. for
18 /// 0.711% U-235 in natural uranium, this will return 0.00711.
19 double Feed() const;
20
21 /// @return the product assay as an atomic fraction, i.e. for
22 /// 3% U-235 in enriched uranium, this will return 0.03.
23 double Product() const;
24
25 /// @return the tails assay as an atomic fraction, i.e. for
26 /// 0.2% U-235 in depleted uranium, this will return 0.002.
27 double Tails() const;
28
29 private:
30 double feed_, product_, tails_;
31};
32
33/// @param mat the material inquired about
34/// @return the atom percent of U-235 w.r.t U-235+U-238 in a material
36
37/// @param mat the material inquired about
38/// @return the mass percent of U-235 w.r.t U-235+U-238 in a material
40
41/// @param mat the material inquired about
42/// @return the atom percent of U-235 w.r.t U-235+U-238 in a material
44
45/// inline double UraniumAssay(Material::Ptr mat) {
46/// return UraniumAssay(mat.get());
47/// }
48
49/// @param mat the material inquired about
50/// @return the quantity of uranium in a material whose units match
51/// those of the given material
53
54/// inline double UraniumQty(Material::Ptr mat) { return UraniumQty(mat.get()); }
55
56/// @param product_qty the amount of product Uranium,
57/// assuming feed is comprised of only U-235 and U-238
58/// @param assays the assay of product, feed, and tails
59/// @return the quantity of feedstock required to make the product
60/// whose units match those of the given product
61double FeedQty(double product_qty, const Assays& assays);
62
63/// @param product_qty the amount of product Uranium
64/// @param assays the assay of product, feed, and tails
65/// @return the quantity of tails resulting from enriching the product
66/// whose units match those of the given product; product_qty and assay
67/// must share the same units: both in mass or in atom
68double TailsQty(double product_qty, const Assays& assays);
69
70/// @param product_qty the amount of product Uranium
71/// @param assays the assay of product, feed, and tails
72/// @return the amount of swu required to enrich the product
73double SwuRequired(double product_qty, const Assays& assays);
74
75/// @param frac the fraction input, this will throw if the fraction
76/// value is not in [0,1)
77/// @return the value function for a given fraction in [0,1)
78double ValueFunc(double frac);
79
80} // namespace toolkit
81} // namespace cyclus
82
83#endif // CYCLUS_SRC_TOOLKIT_ENRICHMENT_H_
boost::shared_ptr< Material > Ptr
Definition material.h:75
A simple container class for enrichment assays.
Definition enrichment.h:12
double Tails() const
Definition enrichment.cc:31
double Feed() const
Definition enrichment.cc:21
double Product() const
Definition enrichment.cc:26
Assays(double feed, double product, double tails)
Constructor.
Definition enrichment.cc:15
double UraniumAssayMass(Material::Ptr rsrc)
Definition enrichment.cc:60
double UraniumQty(Material::Ptr rsrc)
inline double UraniumAssay(Material::Ptr mat) { return UraniumAssay(mat.get()); }
Definition enrichment.cc:79
double FeedQty(double product_qty, const Assays &assays)
inline double UraniumQty(Material::Ptr mat) { return UraniumQty(mat.get()); }
Definition enrichment.cc:85
double SwuRequired(double product_qty, const Assays &assays)
double ValueFunc(double frac)
double UraniumAssayAtom(Material::Ptr rsrc)
Definition enrichment.cc:41
double UraniumAssay(Material::Ptr rsrc)
Definition enrichment.cc:36
double TailsQty(double product_qty, const Assays &assays)
Definition enrichment.cc:94
taken directly from OsiSolverInterface.cpp on 2/17/14 from https://projects.coin-or....
Definition agent.cc:14
T OptionalQuery(InfileTree *tree, std::string query, T default_val)
a query method for optional parameters