CYCAMORE
Public Member Functions | Private Member Functions | Private Attributes | List of all members
cycamore::FuelFab Class Reference

FuelFab takes in 2 streams of material and mixes them in ratios in order to supply material that matches some neutronics properties of reqeusted material. More...

#include <fuel_fab.h>

Inheritance diagram for cycamore::FuelFab:
Inheritance graph
[legend]
Collaboration diagram for cycamore::FuelFab:
Collaboration graph
[legend]

Public Member Functions

virtual void AcceptMatlTrades (const std::vector< std::pair< cyclus::Trade< cyclus::Material >, cyclus::Material::Ptr > > &responses)
 
virtual void AcceptMatlTrades (const std::vector< std::pair< cyclus::Trade< cyclus::Material >, cyclus::Material::Ptr > > &responses)
 
virtual Json::Value annotations ()
 
virtual cyclus::Agent * Clone ()
 
virtual void EnterNotify ()
 
virtual void EnterNotify ()
 
 FuelFab (cyclus::Context *ctx)
 
 FuelFab (cyclus::Context *ctx)
 
virtual std::set< cyclus::BidPortfolio< cyclus::Material >::Ptr > GetMatlBids (cyclus::CommodMap< cyclus::Material >::type &commod_requests)
 
virtual std::set< cyclus::BidPortfolio< cyclus::Material >::Ptr > GetMatlBids (cyclus::CommodMap< cyclus::Material >::type &commod_requests)
 
virtual std::set< cyclus::RequestPortfolio< cyclus::Material >::Ptr > GetMatlRequests ()
 
virtual std::set< cyclus::RequestPortfolio< cyclus::Material >::Ptr > GetMatlRequests ()
 
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 GetMatlTrades (const std::vector< cyclus::Trade< cyclus::Material > > &trades, std::vector< std::pair< cyclus::Trade< cyclus::Material >, cyclus::Material::Ptr > > &responses)
 
virtual void InfileToDb (cyclus::InfileTree *tree, cyclus::DbInit di)
 
virtual void InitFrom (cycamore::FuelFab *m)
 
virtual void InitFrom (cyclus::QueryableBackend *b)
 
virtual void InitInv (cyclus::Inventories &inv)
 
virtual std::string schema ()
 
virtual void Snapshot (cyclus::DbInit di)
 
virtual cyclus::Inventories SnapshotInv ()
 
virtual void Tick ()
 
virtual void Tick ()
 
virtual void Tock ()
 
virtual void Tock ()
 
virtual std::string version ()
 
virtual std::string version ()
 
virtual ~FuelFab ()
 
virtual ~FuelFab ()
 

Private Member Functions

void RecordPosition ()
 Records an agent's latitude and longitude to the output db. More...
 
void RecordPosition ()
 Records an agent's latitude and longitude to the output db. More...
 

Private Attributes

cyclus::toolkit::Position coordinates
 
std::vector< intcycpp_shape_fill
 
std::vector< intcycpp_shape_fill_commod_prefs
 
std::vector< intcycpp_shape_fill_commods
 
std::vector< intcycpp_shape_fill_recipe
 
std::vector< intcycpp_shape_fill_size
 
std::vector< intcycpp_shape_fiss
 
std::vector< intcycpp_shape_fiss_commod_prefs
 
std::vector< intcycpp_shape_fiss_commods
 
std::vector< intcycpp_shape_fiss_recipe
 
std::vector< intcycpp_shape_fiss_size
 
std::vector< intcycpp_shape_latitude
 
std::vector< intcycpp_shape_longitude
 
std::vector< intcycpp_shape_outcommod
 
std::vector< intcycpp_shape_spectrum
 
std::vector< intcycpp_shape_throughput
 
std::vector< intcycpp_shape_topup
 
std::vector< intcycpp_shape_topup_commod
 
std::vector< intcycpp_shape_topup_pref
 
std::vector< intcycpp_shape_topup_recipe
 
std::vector< intcycpp_shape_topup_size
 
cyclus::toolkit::ResBuf< cyclus::Material > fill
 
std::vector< double > fill_commod_prefs
 
std::vector< std::string > fill_commods
 
std::string fill_recipe
 
double fill_size
 
cyclus::toolkit::ResBuf< cyclus::Material > fiss
 
std::vector< double > fiss_commod_prefs
 
std::vector< std::string > fiss_commods
 
std::string fiss_recipe
 
double fiss_size
 
double latitude
 
double longitude
 
std::string outcommod
 
std::map< cyclus::Request< cyclus::Material > *, std::string > req_inventories_
 
std::string spectrum
 
double throughput
 
cyclus::toolkit::ResBuf< cyclus::Material > topup
 
std::string topup_commod
 
double topup_pref
 
std::string topup_recipe
 
double topup_size
 

Detailed Description

FuelFab takes in 2 streams of material and mixes them in ratios in order to supply material that matches some neutronics properties of reqeusted material.

It uses an equivalence type method [1] inspired by a similar approach in the COSI fuel cycle simulator.

The FuelFab has 3 input inventories: fissile stream, filler stream, and an optional top-up inventory. All materials received into each inventory are always combined into a single material (i.e. a single fissile material, a single filler material, etc.). The input streams and requested fuel composition are each assigned weights based on summing:

N * (p_i - p_U238) / (p_Pu239 - p_U238)

for each nuclide where:

- p = nu*sigma_f - sigma_a   for the nuclide
- p_U238 is p for pure U238
- p_Pu239 is p for pure Pu239
- N is the nuclide's atom fraction
- nu is the average # neutrons per fission
- sigma_f is the microscopic fission cross-section
- sigma_a is the microscopic neutron absorption cross-section

The cross sections are from the simple cross section library in PyNE. They can be set to either a thermal or fast neutron spectrum. A linear interpolation is performed using the weights of the fissile, filler, and target streams. The interpolation is used to compute a mixing ratio of the input streams that matches the target weight. In the event that the target weight is higher than the fissile stream weight, the FuelFab will attempt to use the top-up and fissile input streams together instead of the fissile and filler streams. All supplied material will always have the same weight as the requested material.

The supplying of mixed material is constrained by available inventory quantities and a per time step throughput limit. Requests for fuel material larger than the throughput can never be met. Fissile inventory can be requested/received via one or more commodities. The DRE request preference for each of these commodities can also optionally be specified. By default, the top-up inventory size is zero, and it is not used for mixing.

[1] Baker, A. R., and R. W. Ross. "Comparison of the value of plutonium and
uranium isotopes in fast reactors." Proceedings of the Conference on
Breeding. Economics, and Safety in Large Fast Power Reactors. 1963.

Definition at line 58 of file _tmp_build/cycamore/fuel_fab.h.

Constructor & Destructor Documentation

◆ FuelFab() [1/2]

cycamore::FuelFab::FuelFab ( cyclus::Context *  ctx)

◆ ~FuelFab() [1/2]

virtual cycamore::FuelFab::~FuelFab ( )
inlinevirtual

Definition at line 65 of file _tmp_build/cycamore/fuel_fab.h.

◆ FuelFab() [2/2]

cycamore::FuelFab::FuelFab ( cyclus::Context *  ctx)

◆ ~FuelFab() [2/2]

virtual cycamore::FuelFab::~FuelFab ( )
inlinevirtual

Definition at line 110 of file src/fuel_fab.h.

Member Function Documentation

◆ AcceptMatlTrades() [1/2]

virtual void cycamore::FuelFab::AcceptMatlTrades ( const std::vector< std::pair< cyclus::Trade< cyclus::Material >, cyclus::Material::Ptr > > &  responses)
virtual

◆ AcceptMatlTrades() [2/2]

virtual void cycamore::FuelFab::AcceptMatlTrades ( const std::vector< std::pair< cyclus::Trade< cyclus::Material >, cyclus::Material::Ptr > > &  responses)
virtual

◆ annotations()

virtual Json::Value cycamore::FuelFab::annotations ( )
inlinevirtual

Definition at line 535 of file _tmp_build/cycamore/fuel_fab.h.

◆ Clone()

virtual cyclus::Agent* cycamore::FuelFab::Clone ( )
inlinevirtual

Definition at line 436 of file _tmp_build/cycamore/fuel_fab.h.

References InitFrom().

Here is the call graph for this function:

◆ EnterNotify() [1/2]

virtual void cycamore::FuelFab::EnterNotify ( )
virtual

◆ EnterNotify() [2/2]

void cycamore::FuelFab::EnterNotify ( )
virtual

Definition at line 143 of file _tmp_build/cycamore/fuel_fab.cc.

References fill_commod_prefs, fill_commods, fiss_commod_prefs, fiss_commods, and RecordPosition().

Referenced by cycamore::TopupConverter::convert(), and Tock().

Here is the call graph for this function:

◆ GetMatlBids() [1/2]

virtual std::set<cyclus::BidPortfolio<cyclus::Material>::Ptr> cycamore::FuelFab::GetMatlBids ( cyclus::CommodMap< cyclus::Material >::type &  commod_requests)
virtual

◆ GetMatlBids() [2/2]

virtual std::set<cyclus::BidPortfolio<cyclus::Material>::Ptr> cycamore::FuelFab::GetMatlBids ( cyclus::CommodMap< cyclus::Material >::type &  commod_requests)
virtual

◆ GetMatlRequests() [1/2]

virtual std::set<cyclus::RequestPortfolio<cyclus::Material>::Ptr> cycamore::FuelFab::GetMatlRequests ( )
virtual

◆ GetMatlRequests() [2/2]

std::set< cyclus::RequestPortfolio< Material >::Ptr > cycamore::FuelFab::GetMatlRequests ( )
virtual

◆ GetMatlTrades() [1/2]

virtual void cycamore::FuelFab::GetMatlTrades ( const std::vector< cyclus::Trade< cyclus::Material > > &  trades,
std::vector< std::pair< cyclus::Trade< cyclus::Material >, cyclus::Material::Ptr > > &  responses 
)
virtual

◆ GetMatlTrades() [2/2]

virtual void cycamore::FuelFab::GetMatlTrades ( const std::vector< cyclus::Trade< cyclus::Material > > &  trades,
std::vector< std::pair< cyclus::Trade< cyclus::Material >, cyclus::Material::Ptr > > &  responses 
)
virtual

◆ InfileToDb()

virtual void cycamore::FuelFab::InfileToDb ( cyclus::InfileTree *  tree,
cyclus::DbInit  di 
)
inlinevirtual

◆ InitFrom() [1/2]

virtual void cycamore::FuelFab::InitFrom ( cycamore::FuelFab m)
inlinevirtual

◆ InitFrom() [2/2]

virtual void cycamore::FuelFab::InitFrom ( cyclus::QueryableBackend *  b)
inlinevirtual

◆ InitInv()

virtual void cycamore::FuelFab::InitInv ( cyclus::Inventories &  inv)
inlinevirtual

Definition at line 704 of file _tmp_build/cycamore/fuel_fab.h.

References fill, fiss, and topup.

◆ RecordPosition() [1/2]

void cycamore::FuelFab::RecordPosition ( )
private

Records an agent's latitude and longitude to the output db.

◆ RecordPosition() [2/2]

void cycamore::FuelFab::RecordPosition ( )
private

Records an agent's latitude and longitude to the output db.

Definition at line 499 of file _tmp_build/cycamore/fuel_fab.cc.

References latitude, longitude, and cycamore::string.

Referenced by cycamore::TopupConverter::convert(), EnterNotify(), and Tock().

◆ schema()

virtual std::string cycamore::FuelFab::schema ( )
inlinevirtual

Definition at line 442 of file _tmp_build/cycamore/fuel_fab.h.

◆ Snapshot()

virtual void cycamore::FuelFab::Snapshot ( cyclus::DbInit  di)
inlinevirtual

◆ SnapshotInv()

virtual cyclus::Inventories cycamore::FuelFab::SnapshotInv ( )
inlinevirtual

Definition at line 711 of file _tmp_build/cycamore/fuel_fab.h.

References fill, fiss, and topup.

◆ Tick() [1/2]

virtual void cycamore::FuelFab::Tick ( )
inlinevirtual

Definition at line 116 of file src/fuel_fab.h.

◆ Tick() [2/2]

virtual void cycamore::FuelFab::Tick ( )
inlinevirtual

Definition at line 745 of file _tmp_build/cycamore/fuel_fab.h.

◆ Tock() [1/2]

virtual void cycamore::FuelFab::Tock ( )
inlinevirtual

◆ Tock() [2/2]

virtual void cycamore::FuelFab::Tock ( )
inlinevirtual

Definition at line 746 of file _tmp_build/cycamore/fuel_fab.h.

References AcceptMatlTrades(), EnterNotify(), GetMatlBids(), GetMatlRequests(), and GetMatlTrades().

Here is the call graph for this function:

◆ version() [1/2]

virtual std::string cycamore::FuelFab::version ( )
inlinevirtual

Definition at line 67 of file _tmp_build/cycamore/fuel_fab.h.

References CYCAMORE_VERSION.

◆ version() [2/2]

virtual std::string cycamore::FuelFab::version ( )
inlinevirtual

Definition at line 112 of file src/fuel_fab.h.

References CYCAMORE_VERSION.

Member Data Documentation

◆ coordinates

cyclus::toolkit::Position cycamore::FuelFab::coordinates
private

Definition at line 885 of file _tmp_build/cycamore/fuel_fab.h.

Referenced by Tock().

◆ cycpp_shape_fill

std::vector<int> cycamore::FuelFab::cycpp_shape_fill
private

Definition at line 787 of file _tmp_build/cycamore/fuel_fab.h.

Referenced by InfileToDb(), and InitFrom().

◆ cycpp_shape_fill_commod_prefs

std::vector<int> cycamore::FuelFab::cycpp_shape_fill_commod_prefs
private

Definition at line 772 of file _tmp_build/cycamore/fuel_fab.h.

Referenced by InfileToDb(), InitFrom(), and Snapshot().

◆ cycpp_shape_fill_commods

std::vector<int> cycamore::FuelFab::cycpp_shape_fill_commods
private

Definition at line 767 of file _tmp_build/cycamore/fuel_fab.h.

Referenced by InfileToDb(), InitFrom(), and Snapshot().

◆ cycpp_shape_fill_recipe

std::vector<int> cycamore::FuelFab::cycpp_shape_fill_recipe
private

Definition at line 777 of file _tmp_build/cycamore/fuel_fab.h.

Referenced by InfileToDb(), InitFrom(), and Snapshot().

◆ cycpp_shape_fill_size

std::vector<int> cycamore::FuelFab::cycpp_shape_fill_size
private

Definition at line 782 of file _tmp_build/cycamore/fuel_fab.h.

Referenced by InfileToDb(), InitFrom(), and Snapshot().

◆ cycpp_shape_fiss

std::vector<int> cycamore::FuelFab::cycpp_shape_fiss
private

Definition at line 814 of file _tmp_build/cycamore/fuel_fab.h.

Referenced by InfileToDb(), and InitFrom().

◆ cycpp_shape_fiss_commod_prefs

std::vector<int> cycamore::FuelFab::cycpp_shape_fiss_commod_prefs
private

Definition at line 799 of file _tmp_build/cycamore/fuel_fab.h.

Referenced by InfileToDb(), InitFrom(), and Snapshot().

◆ cycpp_shape_fiss_commods

std::vector<int> cycamore::FuelFab::cycpp_shape_fiss_commods
private

Definition at line 794 of file _tmp_build/cycamore/fuel_fab.h.

Referenced by InfileToDb(), InitFrom(), and Snapshot().

◆ cycpp_shape_fiss_recipe

std::vector<int> cycamore::FuelFab::cycpp_shape_fiss_recipe
private

Definition at line 804 of file _tmp_build/cycamore/fuel_fab.h.

Referenced by InfileToDb(), InitFrom(), and Snapshot().

◆ cycpp_shape_fiss_size

std::vector<int> cycamore::FuelFab::cycpp_shape_fiss_size
private

Definition at line 809 of file _tmp_build/cycamore/fuel_fab.h.

Referenced by InfileToDb(), InitFrom(), and Snapshot().

◆ cycpp_shape_latitude

std::vector<int> cycamore::FuelFab::cycpp_shape_latitude
private

Definition at line 874 of file _tmp_build/cycamore/fuel_fab.h.

Referenced by InfileToDb(), InitFrom(), and Snapshot().

◆ cycpp_shape_longitude

std::vector<int> cycamore::FuelFab::cycpp_shape_longitude
private

Definition at line 881 of file _tmp_build/cycamore/fuel_fab.h.

Referenced by InfileToDb(), InitFrom(), and Snapshot().

◆ cycpp_shape_outcommod

std::vector<int> cycamore::FuelFab::cycpp_shape_outcommod
private

Definition at line 849 of file _tmp_build/cycamore/fuel_fab.h.

Referenced by InfileToDb(), InitFrom(), and Snapshot().

◆ cycpp_shape_spectrum

std::vector<int> cycamore::FuelFab::cycpp_shape_spectrum
private

Definition at line 863 of file _tmp_build/cycamore/fuel_fab.h.

Referenced by InfileToDb(), InitFrom(), and Snapshot().

◆ cycpp_shape_throughput

std::vector<int> cycamore::FuelFab::cycpp_shape_throughput
private

Definition at line 856 of file _tmp_build/cycamore/fuel_fab.h.

Referenced by InfileToDb(), InitFrom(), and Snapshot().

◆ cycpp_shape_topup

std::vector<int> cycamore::FuelFab::cycpp_shape_topup
private

Definition at line 842 of file _tmp_build/cycamore/fuel_fab.h.

Referenced by InfileToDb(), and InitFrom().

◆ cycpp_shape_topup_commod

std::vector<int> cycamore::FuelFab::cycpp_shape_topup_commod
private

Definition at line 821 of file _tmp_build/cycamore/fuel_fab.h.

Referenced by InfileToDb(), InitFrom(), and Snapshot().

◆ cycpp_shape_topup_pref

std::vector<int> cycamore::FuelFab::cycpp_shape_topup_pref
private

Definition at line 826 of file _tmp_build/cycamore/fuel_fab.h.

Referenced by InfileToDb(), InitFrom(), and Snapshot().

◆ cycpp_shape_topup_recipe

std::vector<int> cycamore::FuelFab::cycpp_shape_topup_recipe
private

Definition at line 832 of file _tmp_build/cycamore/fuel_fab.h.

Referenced by InfileToDb(), InitFrom(), and Snapshot().

◆ cycpp_shape_topup_size

std::vector<int> cycamore::FuelFab::cycpp_shape_topup_size
private

Definition at line 837 of file _tmp_build/cycamore/fuel_fab.h.

Referenced by InfileToDb(), InitFrom(), and Snapshot().

◆ fill

cyclus::toolkit::ResBuf< cyclus::Material > cycamore::FuelFab::fill
private

◆ fill_commod_prefs

std::vector< double > cycamore::FuelFab::fill_commod_prefs
private

◆ fill_commods

std::vector< std::string > cycamore::FuelFab::fill_commods
private

◆ fill_recipe

std::string cycamore::FuelFab::fill_recipe
private

◆ fill_size

double cycamore::FuelFab::fill_size
private

Definition at line 781 of file _tmp_build/cycamore/fuel_fab.h.

Referenced by InfileToDb(), InitFrom(), Snapshot(), and Tock().

◆ fiss

cyclus::toolkit::ResBuf< cyclus::Material > cycamore::FuelFab::fiss
private

◆ fiss_commod_prefs

std::vector< double > cycamore::FuelFab::fiss_commod_prefs
private

◆ fiss_commods

std::vector< std::string > cycamore::FuelFab::fiss_commods
private

◆ fiss_recipe

std::string cycamore::FuelFab::fiss_recipe
private

◆ fiss_size

double cycamore::FuelFab::fiss_size
private

Definition at line 808 of file _tmp_build/cycamore/fuel_fab.h.

Referenced by InfileToDb(), InitFrom(), Snapshot(), and Tock().

◆ latitude

double cycamore::FuelFab::latitude
private

Definition at line 873 of file _tmp_build/cycamore/fuel_fab.h.

Referenced by InfileToDb(), InitFrom(), RecordPosition(), Snapshot(), and Tock().

◆ longitude

double cycamore::FuelFab::longitude
private

Definition at line 880 of file _tmp_build/cycamore/fuel_fab.h.

Referenced by InfileToDb(), InitFrom(), RecordPosition(), Snapshot(), and Tock().

◆ outcommod

std::string cycamore::FuelFab::outcommod
private

◆ req_inventories_

std::map< cyclus::Request< cyclus::Material > *, std::string > cycamore::FuelFab::req_inventories_
private

Definition at line 869 of file _tmp_build/cycamore/fuel_fab.h.

Referenced by cycamore::Contains(), GetMatlRequests(), and Tock().

◆ spectrum

std::string cycamore::FuelFab::spectrum
private

◆ throughput

double cycamore::FuelFab::throughput
private

◆ topup

cyclus::toolkit::ResBuf< cyclus::Material > cycamore::FuelFab::topup
private

◆ topup_commod

std::string cycamore::FuelFab::topup_commod
private

Definition at line 820 of file _tmp_build/cycamore/fuel_fab.h.

Referenced by GetMatlRequests(), InfileToDb(), InitFrom(), Snapshot(), and Tock().

◆ topup_pref

double cycamore::FuelFab::topup_pref
private

Definition at line 825 of file _tmp_build/cycamore/fuel_fab.h.

Referenced by GetMatlRequests(), InfileToDb(), InitFrom(), Snapshot(), and Tock().

◆ topup_recipe

std::string cycamore::FuelFab::topup_recipe
private

◆ topup_size

double cycamore::FuelFab::topup_size
private

Definition at line 836 of file _tmp_build/cycamore/fuel_fab.h.

Referenced by InfileToDb(), InitFrom(), Snapshot(), and Tock().


The documentation for this class was generated from the following files: