#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 Library * | library () const |
SP_Library | sp_library () |
const TransitionSystem * | transition_system () const |
const ReactionResource * | mg_database () const |
int | num_energy_groups () const |
const Vec_Flt * | storage_bounds () const |
const Vec_Flt * | storage_mg_flux () const |
const Vec_Flt * | user_bounds () const |
const LibraryHeader * | library_header () const |
const TransitionStructure * | transition_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_Nuclide > | b_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
- Examples:
- exNEAMS.cpp, and tstTransitionMatrixUpdater.cpp.
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_defienition Filepath to a skeleton Origen library. [in] aux_mg_library Filepath to a multi-group library. [in] fission_yields Filepath to a fission yield library. [in] user_nuclide_list List of nuclide identifiers for which to add reactions in izzzaaa format. [in] user_num_mts Number of reactions to add for each nuclide. [in] user_mt_list List 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().
void clear | ( | ) |
Clear all class data.
- Examples:
- tstTransitionMatrixUpdater.cpp.
References TransitionMatrixUpdater::b_initialized, and TransitionMatrixUpdater::b_status.
Referenced by TransitionMatrixUpdater::load(), and Origen::test::TEST().
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 | ( | ) |
Clear the mapping of user flux to storage flux.
References TransitionMatrixUpdater::b_flux_mapper, TransitionMatrixUpdater::b_storage_mg_flux, and TransitionMatrixUpdater::b_user_bounds.
float update_mg_flux | ( | const Vec_Flt & | mg_flux | ) |
Recalculate energy-integrated quantities using new flux.
- Examples:
- exNEAMS.cpp, and tstTransitionMatrixUpdater.cpp.
References TransitionMatrixUpdater::b_flux_mapper, TransitionMatrixUpdater::b_initialized, TransitionMatrixUpdater::b_storage_mg_flux, TransitionMatrixUpdater::b_ts, TransitionMatrixUpdater::b_tsa, TransitionMatrixUpdater::num_energy_groups(), and TransitionSystemAdapter_AmpxN::update().
Referenced by Origen::test::TEST(), TEST(), and TEST_P().
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 | ||
) |
Get values of cross sections currently stored.
- Examples:
- tstTransitionMatrixUpdater.cpp.
References TransitionMatrixUpdater::b_initialized, TransitionMatrixUpdater::b_ts, and TransitionMatrixUpdater::fetch_ts_nuclides().
Referenced by Origen::test::TEST().
void get_transition_matrix | ( | TransitionMatrixP * | trx | ) |
Pass non-null pointer to have it filled with current cross section data based on loaded transition definition.
- Examples:
- exNEAMS.cpp, and tstTransitionMatrixUpdater.cpp.
References TransitionMatrixUpdater::b_bld, TransitionMatrixUpdater::b_initialized, TransitionMatrixUpdater::b_nuclide_sequence, TransitionMatrixUpdater::b_reaction_gain_sequence, TransitionMatrixUpdater::b_sizzzaaa_list, TransitionMatrixUpdater::b_trx, TransitionMatrixUpdater::b_ts, TransitionSystem::field(), TransitionMatrixP::get_a(), TransitionMatrixP::get_fiss(), TransitionMatrixP::get_genneu(), TransitionMatrixP::get_iact(), TransitionMatrixP::get_kd_(), TransitionMatrixP::get_loc(), TransitionMatrixP::get_mt(), TransitionMatrixP::get_non0_(), TransitionMatrixP::get_tocap(), Origen::NEUTRON_FIELD, and LibraryBuilder::update_reaction_transitions().
Referenced by Origen::test::TEST(), TEST(), and TEST_P().
void get_data_container | ( | const AbstractDC * | dc | ) |
Get internal status data container.
References TransitionMatrixUpdater::b_status.
int get_errors | ( | std::vector< std::string > * | errors | ) |
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.
const TransitionSystem * transition_system | ( | ) | const |
Return a pointer to the transition system.
- Examples:
- tstTransitionMatrixUpdater.cpp.
References TransitionMatrixUpdater::b_ts.
Referenced by Origen::test::TEST().
const ReactionResource * mg_database | ( | ) | const |
Return a pointer to reaction resource.
- Examples:
- tstTransitionMatrixUpdater.cpp.
References TransitionMatrixUpdater::b_tsa, TransitionSystemAdapter_AmpxN::has_reaction_resource(), and TransitionSystemAdapter_AmpxN::reaction_resource().
Referenced by TransitionMatrixUpdater::num_energy_groups(), TransitionMatrixUpdater::storage_bounds(), and 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 |
Return stored energy bounds.
References TransitionMatrixUpdater::mg_database(), and ReactionResource::storage_bounds().
Referenced by TransitionMatrixUpdater::set_user_bounds().
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 | ||
) |
Return a list of mutable nuclide objects on the transition system from a list of nuclide ids.
- Examples:
- tstTransitionMatrixUpdater.cpp.
References TransitionMatrixUpdater::b_initialized, and TransitionMatrixUpdater::b_ts.
Referenced by TransitionMatrixUpdater::get_xs(), Origen::test::TEST(), TransitionMatrixUpdater::update_fission_absorption_xs(), and TransitionMatrixUpdater::update_user_xs().
|
static |
Return a list of mutable nuclide objects on the transition system from a list of nuclide ids.
References TransitionSystem::nuclide().
Member Data Documentation
|
private |
|
private |
Referenced by TransitionMatrixUpdater::fetch_ts_nuclides(), TransitionMatrixUpdater::get_transition_matrix(), TransitionMatrixUpdater::get_xs(), TransitionMatrixUpdater::load(), TransitionMatrixUpdater::transition_system(), TransitionMatrixUpdater::update_by_mix(), TransitionMatrixUpdater::update_fission_absorption_xs(), TransitionMatrixUpdater::update_mg_flux(), and TransitionMatrixUpdater::update_user_xs().
|
private |
|
private |
Referenced by TransitionMatrixUpdater::get_transition_matrix(), and TransitionMatrixUpdater::load().
|
private |
|
private |
Referenced by TransitionMatrixUpdater::clear(), TransitionMatrixUpdater::fetch_ts_nuclides(), TransitionMatrixUpdater::get_transition_matrix(), TransitionMatrixUpdater::get_xs(), TransitionMatrixUpdater::initialized(), TransitionMatrixUpdater::load(), TransitionMatrixUpdater::update_by_mix(), TransitionMatrixUpdater::update_fission_absorption_xs(), TransitionMatrixUpdater::update_mg_flux(), and TransitionMatrixUpdater::update_user_xs().
|
private |
Referenced by TransitionMatrixUpdater::load().
|
private |
|
private |
|
private |
|
private |
Referenced by TransitionMatrixUpdater::get_transition_matrix(), and TransitionMatrixUpdater::load().
|
private |
Referenced by TransitionMatrixUpdater::get_transition_matrix(), and TransitionMatrixUpdater::load().
|
private |
Referenced by TransitionMatrixUpdater::get_transition_matrix(), and TransitionMatrixUpdater::load().
|
private |
The documentation for this class was generated from the following files:
- Manager/libld/TransitionMatrixUpdater.h
- Manager/libld/TransitionMatrixUpdater.cpp