|
Geant4 11.4.0
Toolkit for the simulation of the passage of particles through matter
|
#include <MCGIDI.hpp>
Public Member Functions | |
| LUPI_HOST_DEVICE | HeatedCrossSectionsMultiGroup () |
| LUPI_HOST_DEVICE | ~HeatedCrossSectionsMultiGroup () |
| LUPI_HOST_DEVICE double | minimumEnergy () const |
| LUPI_HOST_DEVICE double | maximumEnergy () const |
| LUPI_HOST_DEVICE Vector< double > const & | temperatures () const |
| LUPI_HOST void | update (LUPI::StatusMessageReporting &a_smr, GIDI::ProtareSingle const &a_protare, SetupInfo &a_setupInfo, Transporting::MC const &a_settings, GIDI::Transporting::Particles const &a_particles, GIDI::Styles::TemperatureInfos const &a_temperatureInfos, std::vector< GIDI::Reaction const * > const &a_reactions, std::vector< GIDI::Reaction const * > const &a_orphanProducts, bool a_zeroReactions, GIDI::ExcludeReactionsSet const &a_reactionsToExclude) |
| LUPI_HOST_DEVICE int | multiGroupThresholdIndex (std::size_t a_index) const |
| LUPI_HOST_DEVICE Vector< double > const & | projectileMultiGroupBoundariesCollapsed () const |
| LUPI_HOST_DEVICE Vector< HeatedCrossSectionMultiGroup * > const & | heatedCrossSections () const |
| LUPI_HOST_DEVICE double | threshold (std::size_t a_index) const |
| LUPI_HOST_DEVICE double | crossSection (std::size_t a_hashIndex, double a_temperature, bool a_sampling=false) const |
| LUPI_HOST_DEVICE void | crossSectionVector (double a_temperature, double a_userFactor, std::size_t a_numberAllocated, double *a_crossSectionVector) const |
| LUPI_HOST_DEVICE double | reactionCrossSection (std::size_t a_reactionIndex, std::size_t a_hashIndex, double a_temperature, bool a_sampling=false) const |
| LUPI_HOST_DEVICE double | reactionCrossSection (std::size_t a_reactionIndex, double a_temperature, double a_energy_in) const |
| template<typename RNG> | |
| LUPI_HOST_DEVICE std::size_t | sampleReaction (std::size_t a_hashIndex, double a_temperature, double a_energy_in, double a_crossSection, RNG &&rng) const |
| LUPI_HOST_DEVICE double | depositionEnergy (std::size_t a_hashIndex, double a_temperature) const |
| LUPI_HOST_DEVICE double | depositionMomentum (std::size_t a_hashIndex, double a_temperature) const |
| LUPI_HOST_DEVICE double | productionEnergy (std::size_t a_hashIndex, double a_temperature) const |
| LUPI_HOST_DEVICE double | gain (std::size_t a_hashIndex, double a_temperature, int a_particleIndex) const |
| LUPI_HOST_DEVICE double | gainViaIntid (std::size_t a_hashIndex, double a_temperature, int a_particleIntid) const |
| LUPI_HOST void | setUserParticleIndex (int a_particleIndex, int a_userParticleIndex) |
| LUPI_HOST void | setUserParticleIndexViaIntid (int a_particleIntid, int a_userParticleIndex) |
| LUPI_HOST_DEVICE void | serialize (LUPI::DataBuffer &a_buffer, LUPI::DataBuffer::Mode a_mode) |
| LUPI_HOST void | write (FILE *a_file, int a_temperatureIndex) const |
| LUPI_HOST void | print () const |
Definition at line 881 of file MCGIDI.hpp.
| LUPI_HOST_DEVICE MCGIDI::HeatedCrossSectionsMultiGroup::HeatedCrossSectionsMultiGroup | ( | ) |
Generic constructor.
Definition at line 1889 of file MCGIDI_heatedCrossSections.cc.
Referenced by HeatedCrossSectionsMultiGroup().
| LUPI_HOST_DEVICE MCGIDI::HeatedCrossSectionsMultiGroup::~HeatedCrossSectionsMultiGroup | ( | ) |
Generic constructor.
Definition at line 1897 of file MCGIDI_heatedCrossSections.cc.
Referenced by ~HeatedCrossSectionsMultiGroup().
| LUPI_HOST_DEVICE double MCGIDI::HeatedCrossSectionsMultiGroup::crossSection | ( | std::size_t | a_hashIndex, |
| double | a_temperature, | ||
| bool | a_sampling = false ) const |
Returns the total multi-group cross section for target temperature a_temperature and projectile multi-group a_hashIndex.
| a_hashIndex | [in] The multi-group index. |
| a_temperature | [in] The temperature of the target. |
| a_sampling | [in] Used for multi-group look up. If true, use augmented cross sections. |
Definition at line 1951 of file MCGIDI_heatedCrossSections.cc.
Referenced by crossSection().
| LUPI_HOST_DEVICE void MCGIDI::HeatedCrossSectionsMultiGroup::crossSectionVector | ( | double | a_temperature, |
| double | a_userFactor, | ||
| std::size_t | a_numberAllocated, | ||
| double * | a_crossSectionVector ) const |
Adds the energy dependent, total cross section corresponding to the temperature a_temperature multiplied by a_userFactor to a_crossSectionVector.
| a_temperature | [in] Specifies the temperature of the material. |
| a_userFactor | [in] User factor which all cross sections are multiplied by. |
| a_numberAllocated | [in] The length of memory allocated for a_crossSectionVector. |
| a_crossSectionVector | [in/out] The energy dependent, total cross section to add cross section data to. |
Definition at line 1980 of file MCGIDI_heatedCrossSections.cc.
Referenced by crossSectionVector().
| LUPI_HOST_DEVICE double MCGIDI::HeatedCrossSectionsMultiGroup::depositionEnergy | ( | std::size_t | a_hashIndex, |
| double | a_temperature ) const |
Returns the multi-group deposition energy for target temperature a_temperature and projectile multi-group a_hashIndex.
| a_hashIndex | [in] The multi-group index. |
| a_temperature | [in] The temperature of the target. |
Definition at line 2068 of file MCGIDI_heatedCrossSections.cc.
Referenced by depositionEnergy().
| LUPI_HOST_DEVICE double MCGIDI::HeatedCrossSectionsMultiGroup::depositionMomentum | ( | std::size_t | a_hashIndex, |
| double | a_temperature ) const |
Returns the multi-group deposition momentum for target temperature a_temperature and projectile multi-group a_hashIndex.
| a_hashIndex | [in] The multi-group index. |
| a_temperature | [in] The temperature of the target. |
Definition at line 2096 of file MCGIDI_heatedCrossSections.cc.
Referenced by depositionMomentum().
| LUPI_HOST_DEVICE double MCGIDI::HeatedCrossSectionsMultiGroup::gain | ( | std::size_t | a_hashIndex, |
| double | a_temperature, | ||
| int | a_particleIndex ) const |
Returns the multi-group gain for particle with index a_particleIndex. If no particle is found, a Vector of all 0's is returned.
| a_hashIndex | [in] The multi-group index. |
| a_temperature | [in] The temperature of the target. |
| a_particleIndex | [in] The index of the particle whose gain is to be returned. |
Definition at line 2154 of file MCGIDI_heatedCrossSections.cc.
Referenced by gain().
| LUPI_HOST_DEVICE double MCGIDI::HeatedCrossSectionsMultiGroup::gainViaIntid | ( | std::size_t | a_hashIndex, |
| double | a_temperature, | ||
| int | a_particleIntid ) const |
Returns the multi-group gain for particle with intid a_particleIntid. If no particle is found, a Vector of all 0's is returned.
| a_hashIndex | [in] The multi-group index. |
| a_temperature | [in] The temperature of the target. |
| a_particleIntid | [in] The intid of the particle whose gain is to be returned. |
Definition at line 2182 of file MCGIDI_heatedCrossSections.cc.
Referenced by gainViaIntid().
|
inline |
Definition at line 906 of file MCGIDI.hpp.
|
inline |
Definition at line 895 of file MCGIDI.hpp.
|
inline |
Definition at line 894 of file MCGIDI.hpp.
|
inline |
Returns the threshold for the reaction at index a_index.
Definition at line 902 of file MCGIDI.hpp.
| LUPI_HOST void MCGIDI::HeatedCrossSectionsMultiGroup::print | ( | ) | const |
This method calls write for every temperature dataset in this with the file type stdout.
Definition at line 2293 of file MCGIDI_heatedCrossSections.cc.
Referenced by print().
| LUPI_HOST_DEVICE double MCGIDI::HeatedCrossSectionsMultiGroup::productionEnergy | ( | std::size_t | a_hashIndex, |
| double | a_temperature ) const |
Returns the multi-group production energy for target temperature a_temperature and projectile multi-group a_hashIndex.
| a_hashIndex | [in] The multi-group index. |
| a_temperature | [in] The temperature of the target. |
Definition at line 2124 of file MCGIDI_heatedCrossSections.cc.
Referenced by productionEnergy().
|
inline |
Returns the value of the m_projectileMultiGroupBoundariesCollapsed.
Definition at line 904 of file MCGIDI.hpp.
| LUPI_HOST_DEVICE double MCGIDI::HeatedCrossSectionsMultiGroup::reactionCrossSection | ( | std::size_t | a_reactionIndex, |
| double | a_temperature, | ||
| double | a_energy_in ) const |
Returns the requested reaction's multi-group cross section for target temperature a_temperature and projectile multi-group a_hashIndex.
| a_reactionIndex | [in] The index of the reaction. |
| a_temperature | [in] The temperature of the target. |
| a_energy_in | [in] The energy of the projectile. |
Definition at line 2044 of file MCGIDI_heatedCrossSections.cc.
| LUPI_HOST_DEVICE double MCGIDI::HeatedCrossSectionsMultiGroup::reactionCrossSection | ( | std::size_t | a_reactionIndex, |
| std::size_t | a_hashIndex, | ||
| double | a_temperature, | ||
| bool | a_sampling = false ) const |
Returns the requested reaction's multi-group cross section for target temperature a_temperature and projectile multi-group a_hashIndex.
| a_reactionIndex | [in] The index of the reaction. |
| a_hashIndex | [in] The multi-group index. |
| a_temperature | [in] The temperature of the target. |
| a_sampling | [in] If true, use augmented cross sections. |
Definition at line 2017 of file MCGIDI_heatedCrossSections.cc.
Referenced by reactionCrossSection(), and reactionCrossSection().
|
inline |
Returns the requested reaction's multi-group cross section for target temperature a_temperature and projectile multi-group a_hashIndex.
| a_hashIndex | [in] The multi-group index. |
| a_temperature | [in] The temperature of the target. |
| a_energy | [in] The energy of the projectile. |
| a_crossSection | [in] The total cross section for the protare at a_temperature and a_energy. |
| a_rng | [in] The random number generator function that returns a double in the range [0, 1.0). |
Definition at line 2267 of file MCGIDI_headerSource.hpp.
| LUPI_HOST_DEVICE void MCGIDI::HeatedCrossSectionsMultiGroup::serialize | ( | LUPI::DataBuffer & | a_buffer, |
| LUPI::DataBuffer::Mode | a_mode ) |
This method serializes this for broadcasting as needed for MPI and GPUs. The method can count the number of required bytes, pack this or unpack this depending on a_mode.
| a_buffer | [in] The buffer to read or write data to depending on a_mode. |
| a_mode | [in] Specifies the action of this method. |
Definition at line 2232 of file MCGIDI_heatedCrossSections.cc.
Referenced by serialize().
| LUPI_HOST void MCGIDI::HeatedCrossSectionsMultiGroup::setUserParticleIndex | ( | int | a_particleIndex, |
| int | a_userParticleIndex ) |
Updates the m_userParticleIndex to a_userParticleIndex for all particles with PoPs index a_particleIndex.
| a_particleIndex | [in] The PoPs index of the particle whose user index is to be set. |
| a_userParticleIndex | [in] The particle index specified by the user. |
Definition at line 2207 of file MCGIDI_heatedCrossSections.cc.
Referenced by setUserParticleIndex().
| LUPI_HOST void MCGIDI::HeatedCrossSectionsMultiGroup::setUserParticleIndexViaIntid | ( | int | a_particleIntid, |
| int | a_userParticleIndex ) |
Updates the m_userParticleIndex to a_userParticleIndex for all particles with PoPs intid a_particleIntid.
| a_particleIntid | [in] The intid of the particle whose user index is to be set. |
| a_userParticleIndex | [in] The particle index specified by the user. |
Definition at line 2219 of file MCGIDI_heatedCrossSections.cc.
Referenced by setUserParticleIndexViaIntid().
|
inline |
Returns the value of the m_temperatures.
Definition at line 896 of file MCGIDI.hpp.
|
inline |
Returns the threshold for the reaction at index a_index.
Definition at line 908 of file MCGIDI.hpp.
Referenced by update().
| LUPI_HOST void MCGIDI::HeatedCrossSectionsMultiGroup::update | ( | LUPI::StatusMessageReporting & | a_smr, |
| GIDI::ProtareSingle const & | a_protare, | ||
| SetupInfo & | a_setupInfo, | ||
| Transporting::MC const & | a_settings, | ||
| GIDI::Transporting::Particles const & | a_particles, | ||
| GIDI::Styles::TemperatureInfos const & | a_temperatureInfos, | ||
| std::vector< GIDI::Reaction const * > const & | a_reactions, | ||
| std::vector< GIDI::Reaction const * > const & | a_orphanProducts, | ||
| bool | a_zeroReactions, | ||
| GIDI::ExcludeReactionsSet const & | a_reactionsToExclude ) |
Fills in this with the requested temperature data.
| a_smr | [Out] If errors are not to be thrown, then the error is reported via this instance. |
| a_protare | [in] The GIDI::Protare used to constuct the Protare that this is a part of. |
| a_setupInfo | [in] Used internally when constructing a Protare to pass information to other components. |
| a_settings | [in] Used to pass user options to the this to instruct it which data are desired. |
| a_particles | [in] List of transporting particles and their information (e.g., multi-group boundaries and fluxes). |
| a_temperatureInfos | [in] The list of temperatures to use. |
| a_reactions | [in] The list of reactions to use. |
| a_orphanProducts | [in] The list of orphan products to use. |
| a_zeroReactions | [in] Special case where no reaction in a protare is wanted so the first one is used but its cross section is set to 0.0 at all energies. |
Definition at line 1916 of file MCGIDI_heatedCrossSections.cc.
Referenced by update().
| LUPI_HOST void MCGIDI::HeatedCrossSectionsMultiGroup::write | ( | FILE * | a_file, |
| int | a_temperatureIndex ) const |
This method writes the multi-group data at temperature index a_temperatureIndex to a_file.
| a_file | [in] The buffer to read or write data to depending on a_mode. |
| a_temperatureIndex | [in] The index of the temperature whose data are written. |
Definition at line 2269 of file MCGIDI_heatedCrossSections.cc.