#include <TransitionMatrixUpdater.h>

Public Member Functions

 TransitionMatrixUpdater ()
 
 TransitionMatrixUpdater (const Vec_Flt &storage_bounds)
 
 ~TransitionMatrixUpdater ()
 
void load (std::string library_definition, std::string aux_mg_library, std::string fission_yields)
 
void load (std::string library_definition, std::string aux_mg_library, std::string fission_yields, const std::vector< int > &user_nuclide_list, const std::vector< int > &user_num_mts, const std::vector< int > &user_mt_list)
 
void clear ()
 
bool initialized () const
 
void set_user_bounds (const Vec_Flt &user_bounds)
 
void unset_user_bounds ()
 
float update_mg_flux (const Vec_Flt &mg_flux)
 
float update_by_mix (const AmpxLibrary &main, int mix_id, const Vec_Flt &flux)
 
void update_user_xs (std::string id_form, const std::vector< int > &nuclide_list, const std::vector< int > &num_mts, const std::vector< int > &mt_list, const Vec_Flt &xs)
 
void update_fission_absorption_xs (std::string id_form, const std::vector< int > &nuclide_list, const Vec_Flt &fission_xs, const Vec_Flt &absorption_xs)
 
void get_xs (std::string id_form, const std::vector< int > &nuclide_list, const std::vector< int > &num_mts, const std::vector< int > &mt_list, Vec_Flt *xs)
 
void get_transition_matrix (TransitionMatrixP *trx)
 
void get_data_container (const AbstractDC *dc)
 
int get_errors (std::vector< std::string > *errors)
 
const ScaleUtils::IO::DB & status () const
 
const Librarylibrary () const
 
SP_Library sp_library ()
 
const TransitionSystemtransition_system () const
 
const ReactionResourcemg_database () const
 
int num_energy_groups () const
 
const Vec_Fltstorage_bounds () const
 
const Vec_Fltstorage_mg_flux () const
 
const Vec_Fltuser_bounds () const
 
const LibraryHeaderlibrary_header () const
 
const TransitionStructuretransition_structure () const
 
SP_TransitionMatrixP base_transition_matrix ()
 
void fetch_ts_nuclides (std::vector< SP_Nuclide > *ts_nuclides, std::string id_form, const std::vector< int > &nuclide_list)
 

Static Public Member Functions

static void fetch_ts_nuclides (std::vector< SP_Nuclide > *ts_nuclides, const TransitionSystem &ts, std::string id_form, const std::vector< int > &nuclide_list)
 

Private Attributes

TransitionSystemAdapter_AmpxN b_tsa
 
TransitionSystem_Gen b_ts
 
SP_Library b_lib
 
LibraryBuilder b_bld
 
SP_TransitionMatrixP b_trx
 
bool b_initialized
 
Vec_Flt b_storage_bounds
 
SP_Vec_Flt b_user_bounds
 
Vec_Flt b_storage_mg_flux
 
SP_MGFluxMapper b_flux_mapper
 
std::vector< SP_Nuclideb_nuclide_sequence
 
std::vector< std::vector< WP_Transition > > b_reaction_gain_sequence
 
std::vector< int > b_sizzzaaa_list
 
ScaleUtils::IO::DB b_status
 

Detailed Description

Constructor & Destructor Documentation

TransitionMatrixUpdater ( const Vec_Flt storage_bounds)

Member Function Documentation

void load ( std::string  library_definition,
std::string  aux_mg_library,
std::string  fission_yields 
)

Load resources and create a TransitionSystem.

See also
Overloaded version for a more detailed description.
Examples:
exNEAMS.cpp, and tstTransitionMatrixUpdater.cpp.

Referenced by Origen::test::TEST(), TEST(), and TEST_P().

void load ( std::string  library_definition,
std::string  aux_mg_library,
std::string  fission_yields,
const std::vector< int > &  user_nuclide_list,
const std::vector< int > &  user_num_mts,
const std::vector< int > &  user_mt_list 
)

Load resources and create a TransitionSystem adding additional user defined reactions.

Additional reactions can be added by passing the user_* vectors.

-"Adding" a reaction that exists in the MG data has no effect. -This will never remove or alter existing reactions. -All daughters of new reactions are produced to ground state. -You cannot add reactions to nuclides that do not exist in the skeleton library. -If the daughter of a new reaction does not exist in the skeleton, it is added to the TransitionSystem, but will not be carried over to TransitionMatrix. The removal associated with such reactions is carried over to the TransitionMatrix, but will remove the nuclide without producing a daughter. -Fission may be added, but will have zero yields.

If fission is added for a nuclide that has no MG data but has yields in the skeleton library, inconsistencies will happen. This is supposed to never happen but there are some data concictency problems

An example of the user_* lists: -user_nuclide_list = {92235, 1092235, 94239, 54135}; -user_num_mts = {2, 1, 0, 2}; -user_mt_list = {MT1_92235, MT2_92235, MT1_92235m, MT1_Xe135, MT2_Xe135};

Parameters
[in]library_defienitionFilepath to a skeleton Origen library.
[in]aux_mg_libraryFilepath to a multi-group library.
[in]fission_yieldsFilepath to a fission yield library.
[in]user_nuclide_listList of nuclide identifiers for which to add reactions in izzzaaa format.
[in]user_num_mtsNumber of reactions to add for each nuclide.
[in]user_mt_listList of the reaction MT numbers to add indexed so that the reactions for the first nuclide are first, then those for the second and so on.

References TransitionSystem::add_nuclide(), TransitionMatrixUpdater::b_bld, TransitionMatrixUpdater::b_initialized, TransitionMatrixUpdater::b_lib, TransitionMatrixUpdater::b_nuclide_sequence, TransitionMatrixUpdater::b_reaction_gain_sequence, TransitionMatrixUpdater::b_sizzzaaa_list, TransitionMatrixUpdater::b_status, TransitionMatrixUpdater::b_storage_bounds, TransitionMatrixUpdater::b_trx, TransitionMatrixUpdater::b_ts, TransitionMatrixUpdater::b_tsa, TransitionMatrixUpdater::clear(), TransitionSystemAdapter_AmpxN::extend(), NuclideSet::get_ids(), Origen::NEUTRON_FIELD, LibraryHeader::nuclide_set(), TransitionStructure::num_decay_parents(), TransitionStructure::num_parents(), TransitionStructure::parent_positions(), LibraryBuilder::search_reaction_transitions(), TransitionSystemAdapter_AmpxN::set_reaction_resource(), and TransitionStructure::transition_ids().

bool initialized ( ) const

Return if data has been loaded correctly and initial setup performed, i.e. ready to calculate.

Examples:
tstTransitionMatrixUpdater.cpp.

References TransitionMatrixUpdater::b_initialized.

Referenced by Origen::test::TEST(), and TEST_P().

void set_user_bounds ( const Vec_Flt user_bounds)

Set the group structure energy bounds when multi-group flux is supplied.

The default, if this function is not used, is to deliver the flux in the storage group structure for the reaction resource. A mapping is used to map the user flux to the storage flux, to then calculate energy integrated data. The mapping can be cancelled by calling unset_user_bounds.

Examples:
tstTransitionMatrixUpdater.cpp.

References TransitionMatrixUpdater::b_flux_mapper, TransitionMatrixUpdater::b_user_bounds, and TransitionMatrixUpdater::storage_bounds().

Referenced by Origen::test::TEST().

void unset_user_bounds ( )
float update_by_mix ( const AmpxLibrary &  main,
int  mix_id,
const Vec_Flt flux 
)

Update local data using a specific mixture's cross sections on an AMPX library.

References TransitionMatrixUpdater::b_initialized, TransitionMatrixUpdater::b_ts, TransitionMatrixUpdater::b_tsa, and TransitionSystemAdapter_AmpxN::update_by_mix().

void update_user_xs ( std::string  id_form,
const std::vector< int > &  nuclide_list,
const std::vector< int > &  num_mts,
const std::vector< int > &  mt_list,
const Vec_Flt xs 
)

Update the system with a list of user-provided cross sections.

Examples:
exNEAMS.cpp, and tstTransitionMatrixUpdater.cpp.

References TransitionMatrixUpdater::b_initialized, TransitionMatrixUpdater::b_ts, and TransitionMatrixUpdater::fetch_ts_nuclides().

Referenced by TEST(), and Origen::test::TEST().

void update_fission_absorption_xs ( std::string  id_form,
const std::vector< int > &  nuclide_list,
const Vec_Flt fission_xs,
const Vec_Flt absorption_xs 
)

Special update of fission and absorption cross sections only.

Examples:
exNEAMS.cpp.

References TransitionMatrixUpdater::b_initialized, TransitionMatrixUpdater::b_ts, and TransitionMatrixUpdater::fetch_ts_nuclides().

Referenced by TEST().

void get_xs ( std::string  id_form,
const std::vector< int > &  nuclide_list,
const std::vector< int > &  num_mts,
const std::vector< int > &  mt_list,
Vec_Flt xs 
)
void get_data_container ( const AbstractDC dc)

Get internal status data container.

References TransitionMatrixUpdater::b_status.

int get_errors ( std::vector< std::string > *  errors)

Get list of errors.

References TransitionMatrixUpdater::b_status.

Referenced by TEST_P().

const ScaleUtils::IO::DB & status ( ) const

Return status.

References TransitionMatrixUpdater::b_status.

const Library * library ( ) const

Return a pointer to the skeleton library definition.

SP_Library sp_library ( )

Return mutable shared pointer to skeleton library definition.

Examples:
exNEAMS.cpp.

References TransitionMatrixUpdater::b_lib.

Referenced by TEST(), and TEST_P().

const TransitionSystem * transition_system ( ) const

Return a pointer to the transition system.

Examples:
tstTransitionMatrixUpdater.cpp.

References TransitionMatrixUpdater::b_ts.

Referenced by Origen::test::TEST().

int num_energy_groups ( ) const

Return number of energy groups for stored cross sections.

References TransitionMatrixUpdater::mg_database(), and ReactionResource::storage_bounds().

Referenced by TransitionMatrixUpdater::update_mg_flux().

const Vec_Flt * storage_bounds ( ) const
const Vec_Flt * storage_mg_flux ( ) const

Return stored multi-group flux.

References TransitionMatrixUpdater::b_storage_mg_flux.

const Vec_Flt * user_bounds ( ) const

Return user bounds.

const LibraryHeader * library_header ( ) const

Return library header on skeleton library (convenience method).

References TransitionMatrixUpdater::b_lib.

const TransitionStructure * transition_structure ( ) const

Return transition structure on skeleton library (convenience method).

References TransitionMatrixUpdater::b_lib.

SP_TransitionMatrixP base_transition_matrix ( )

Return base transition matrix.

Every transition matrix produced by this updater will have this format as the base.

Examples:
tstTransitionMatrixUpdater.cpp.

References TransitionMatrixUpdater::b_trx.

Referenced by Origen::test::TEST().

void fetch_ts_nuclides ( std::vector< SP_Nuclide > *  ts_nuclides,
std::string  id_form,
const std::vector< int > &  nuclide_list 
)
void fetch_ts_nuclides ( std::vector< SP_Nuclide > *  ts_nuclides,
const TransitionSystem ts,
std::string  id_form,
const std::vector< int > &  nuclide_list 
)
static

Return a list of mutable nuclide objects on the transition system from a list of nuclide ids.

References TransitionSystem::nuclide().

Member Data Documentation

Vec_Flt b_storage_bounds
private
std::vector<SP_Nuclide> b_nuclide_sequence
private
std::vector<std::vector<WP_Transition> > b_reaction_gain_sequence
private
std::vector<int> b_sizzzaaa_list
private

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