|
Geant4 11.4.0
Toolkit for the simulation of the passage of particles through matter
|
#include <MCGIDI.hpp>
Public Member Functions | |
| LUPI_HOST_DEVICE | HeatedCrossSectionsContinuousEnergy () |
| LUPI_HOST_DEVICE | ~HeatedCrossSectionsContinuousEnergy () |
| LUPI_HOST_DEVICE void | clear () |
| LUPI_HOST void | update (LUPI::StatusMessageReporting &a_smr, SetupInfo &a_setupInfo, Transporting::MC const &a_settings, GIDI::Transporting::Particles const &a_particles, DomainHash const &a_domainHash, GIDI::Styles::TemperatureInfos const &a_temperatureInfos, std::vector< GIDI::Reaction const * > const &a_reactions, std::vector< GIDI::Reaction const * > const &a_orphanProducts, bool a_fixedGrid, bool a_zeroReactions) |
| LUPI_HOST_DEVICE double | minimumEnergy () const |
| LUPI_HOST_DEVICE double | maximumEnergy () const |
| LUPI_HOST_DEVICE Vector< double > const & | temperatures () const |
| Vector< HeatedCrossSectionContinuousEnergy * > & | heatedCrossSections () |
| LUPI_HOST_DEVICE double | threshold (std::size_t a_index) const |
| LUPI_HOST_DEVICE bool | hasURR_probabilityTables () const |
| LUPI_HOST_DEVICE double | URR_domainMin () const |
| LUPI_HOST_DEVICE double | URR_domainMax () const |
| LUPI_HOST_DEVICE bool | reactionHasURR_probabilityTables (std::size_t a_index) const |
| LUPI_HOST_DEVICE double | crossSection (URR_protareInfos const &a_URR_protareInfos, int a_URR_index, std::size_t a_hashIndex, double a_temperature, double a_energy, 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 GIDI::Functions::XYs1d | crossSectionAsGIDI_XYs1d (double a_temperature) const |
| LUPI_HOST_DEVICE double | reactionCrossSection (std::size_t a_reactionIndex, URR_protareInfos const &a_URR_protareInfos, int a_URR_index, std::size_t a_hashIndex, double a_temperature, double a_energy, bool a_sampling=false) const |
| LUPI_HOST_DEVICE double | reactionCrossSection (std::size_t a_reactionIndex, URR_protareInfos const &a_URR_protareInfos, int a_URR_index, double a_temperature, double a_energy_in) const |
| LUPI_HOST GIDI::Functions::XYs1d | reactionCrossSectionAsGIDI_XYs1d (std::size_t a_reactionIndex, double a_temperature) const |
| template<typename RNG> | |
| LUPI_HOST_DEVICE std::size_t | sampleReaction (URR_protareInfos const &a_URR_protareInfos, int a_URR_index, std::size_t a_hashIndex, double a_temperature, double a_energy, double a_crossSection, RNG &&a_rng) const |
| LUPI_HOST_DEVICE double | depositionEnergy (std::size_t a_hashIndex, double a_temperature, double a_energy) const |
| LUPI_HOST_DEVICE double | depositionMomentum (std::size_t a_hashIndex, double a_temperature, double a_energy) const |
| LUPI_HOST_DEVICE double | productionEnergy (std::size_t a_hashIndex, double a_temperature, double a_energy) const |
| LUPI_HOST_DEVICE double | gain (std::size_t a_hashIndex, double a_temperature, double a_energy, int a_particleIndex) const |
| LUPI_HOST_DEVICE double | gainViaIntid (std::size_t a_hashIndex, double a_temperature, double a_energy, 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 | print (ProtareSingle const *a_protareSingle, std::string const &a_indent, std::string const &a_iFormat, std::string const &a_energyFormat, std::string const &a_dFormat) const |
Definition at line 689 of file MCGIDI.hpp.
| LUPI_HOST_DEVICE MCGIDI::HeatedCrossSectionsContinuousEnergy::HeatedCrossSectionsContinuousEnergy | ( | ) |
Definition at line 1040 of file MCGIDI_heatedCrossSections.cc.
| LUPI_HOST_DEVICE MCGIDI::HeatedCrossSectionsContinuousEnergy::~HeatedCrossSectionsContinuousEnergy | ( | ) |
Definition at line 1050 of file MCGIDI_heatedCrossSections.cc.
| LUPI_HOST_DEVICE void MCGIDI::HeatedCrossSectionsContinuousEnergy::clear | ( | ) |
Definition at line 1058 of file MCGIDI_heatedCrossSections.cc.
Referenced by ~HeatedCrossSectionsContinuousEnergy().
| LUPI_HOST_DEVICE double MCGIDI::HeatedCrossSectionsContinuousEnergy::crossSection | ( | URR_protareInfos const & | a_URR_protareInfos, |
| int | a_URR_index, | ||
| std::size_t | a_hashIndex, | ||
| double | a_temperature, | ||
| double | a_energy, | ||
| bool | a_sampling = false ) const |
Returns the cross section for target temperature a_temperature and projectile energy a_energy.
| a_URR_protareInfos | [in] URR information. |
| a_URR_index | [in] If not negative, specifies the index in a_URR_protareInfos. |
| a_hashIndex | [in] Specifies projectile energy hash index. |
| a_temperature | [in] The temperature of the target. |
| a_energy | [in] The energy of the projectile. |
| a_sampling | [in] If true the cross section is to be used for sampling, otherwise, just for looking up. |
Definition at line 1108 of file MCGIDI_heatedCrossSections.cc.
Referenced by crossSection().
| LUPI_HOST GIDI::Functions::XYs1d MCGIDI::HeatedCrossSectionsContinuousEnergy::crossSectionAsGIDI_XYs1d | ( | double | a_temperature | ) | const |
Returns the total cross section as a GIDI::Functions::XYs1d instance.
| a_temperature | [in] Specifies the temperature requested for the cross section. |
Definition at line 1174 of file MCGIDI_heatedCrossSections.cc.
Referenced by crossSectionAsGIDI_XYs1d().
| LUPI_HOST_DEVICE void MCGIDI::HeatedCrossSectionsContinuousEnergy::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. This function only works for fixed-grid data.
| 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 1138 of file MCGIDI_heatedCrossSections.cc.
| LUPI_HOST_DEVICE double MCGIDI::HeatedCrossSectionsContinuousEnergy::depositionEnergy | ( | std::size_t | a_hashIndex, |
| double | a_temperature, | ||
| double | a_energy ) const |
Returns the deposition energy for target temperature a_temperature and projectile multi-group a_hashIndex.
| a_hashIndex | [in] Specifies projectile energy hash index. |
| a_temperature | [in] The temperature of the target. |
| a_energy | [in] The energy of the projectile. |
Definition at line 1282 of file MCGIDI_heatedCrossSections.cc.
Referenced by depositionEnergy().
| LUPI_HOST_DEVICE double MCGIDI::HeatedCrossSectionsContinuousEnergy::depositionMomentum | ( | std::size_t | a_hashIndex, |
| double | a_temperature, | ||
| double | a_energy ) const |
Returns the deposition momentum for target temperature a_temperature and projectile multi-group a_hashIndex.
| a_hashIndex | [in] Specifies projectile energy hash index. |
| a_temperature | [in] The temperature of the target. |
| a_energy | [in] The energy of the projectile. |
Definition at line 1309 of file MCGIDI_heatedCrossSections.cc.
Referenced by depositionMomentum().
| LUPI_HOST_DEVICE double MCGIDI::HeatedCrossSectionsContinuousEnergy::gain | ( | std::size_t | a_hashIndex, |
| double | a_temperature, | ||
| double | a_energy, | ||
| int | a_particleIndex ) const |
Returns the gain for particle with index a_particleIndex for target temperature a_temperature and projectile multi-group a_hashIndex.
| a_hashIndex | [in] Specifies projectile energy hash index. |
| a_temperature | [in] The temperature of the target. |
| a_energy | [in] The energy of the projectile. |
| a_particleIndex | [in] The index of the particle whose gain is requested. |
Definition at line 1364 of file MCGIDI_heatedCrossSections.cc.
Referenced by gain().
| LUPI_HOST_DEVICE double MCGIDI::HeatedCrossSectionsContinuousEnergy::gainViaIntid | ( | std::size_t | a_hashIndex, |
| double | a_temperature, | ||
| double | a_energy, | ||
| int | a_particleIntid ) const |
Returns the gain for particle with intid a_particleIntid for target temperature a_temperature and projectile multi-group a_hashIndex.
| a_hashIndex | [in] Specifies projectile energy hash index. |
| a_temperature | [in] The temperature of the target. |
| a_energy | [in] The energy of the projectile. |
| a_particleIntid | [in] The intid of the particle whose gain is requested. |
Definition at line 1393 of file MCGIDI_heatedCrossSections.cc.
Referenced by gainViaIntid().
|
inline |
Definition at line 714 of file MCGIDI.hpp.
Referenced by hasURR_probabilityTables().
|
inline |
Definition at line 711 of file MCGIDI.hpp.
Referenced by print().
|
inline |
Returns the maximum cross section domain.
Definition at line 708 of file MCGIDI.hpp.
Referenced by maximumEnergy().
|
inline |
Returns the minimum cross section domain.
Definition at line 706 of file MCGIDI.hpp.
Referenced by minimumEnergy().
| LUPI_HOST void MCGIDI::HeatedCrossSectionsContinuousEnergy::print | ( | ProtareSingle const * | a_protareSingle, |
| std::string const & | a_indent, | ||
| std::string const & | a_iFormat, | ||
| std::string const & | a_energyFormat, | ||
| std::string const & | a_dFormat ) const |
Print to std::cout the content of this. This is mainly meant for debugging.
| a_protareSingle | [in] The GIDI::ProtareSingle instance that contains this. |
| a_indent | [in] The buffer to read or write data to depending on a_mode. |
| a_iFormat | [in] C printf format specifier for any interger that is printed (e.g., "%3d"). |
| a_energyFormat | [in] C printf format specifier for any interger that is printed (e.g., "%20.12e"). |
| a_dFormat | [in] C printf format specifier for any interger that is printed (e.g., "%14.7e"). |
Definition at line 1483 of file MCGIDI_heatedCrossSections.cc.
| LUPI_HOST_DEVICE double MCGIDI::HeatedCrossSectionsContinuousEnergy::productionEnergy | ( | std::size_t | a_hashIndex, |
| double | a_temperature, | ||
| double | a_energy ) const |
Returns the production momentum for target temperature a_temperature and projectile multi-group a_hashIndex.
| a_hashIndex | [in] Specifies projectile energy hash index. |
| a_temperature | [in] The temperature of the target. |
| a_energy | [in] The energy of the projectile. |
Definition at line 1336 of file MCGIDI_heatedCrossSections.cc.
Referenced by productionEnergy().
| LUPI_HOST_DEVICE double MCGIDI::HeatedCrossSectionsContinuousEnergy::reactionCrossSection | ( | std::size_t | a_reactionIndex, |
| URR_protareInfos const & | a_URR_protareInfos, | ||
| int | a_URR_index, | ||
| double | a_temperature, | ||
| double | a_energy_in ) const |
Definition at line 1254 of file MCGIDI_heatedCrossSections.cc.
| LUPI_HOST_DEVICE double MCGIDI::HeatedCrossSectionsContinuousEnergy::reactionCrossSection | ( | std::size_t | a_reactionIndex, |
| URR_protareInfos const & | a_URR_protareInfos, | ||
| int | a_URR_index, | ||
| std::size_t | a_hashIndex, | ||
| double | a_temperature, | ||
| double | a_energy, | ||
| bool | a_sampling = false ) const |
Definition at line 1231 of file MCGIDI_heatedCrossSections.cc.
Referenced by reactionCrossSection(), and reactionCrossSection().
| LUPI_HOST GIDI::Functions::XYs1d MCGIDI::HeatedCrossSectionsContinuousEnergy::reactionCrossSectionAsGIDI_XYs1d | ( | std::size_t | a_reactionIndex, |
| double | a_temperature ) const |
Returns the reaction's cross section as GIDI::Functions::XYs1d instance.
| a_reactionIndex | [in] Specifies the indexs of the reaction whose cross section is requested. |
| a_temperature | [in] Specifies the temperature requested for the cross section. |
Definition at line 1205 of file MCGIDI_heatedCrossSections.cc.
Referenced by reactionCrossSectionAsGIDI_XYs1d().
|
inline |
Definition at line 717 of file MCGIDI.hpp.
Referenced by reactionHasURR_probabilityTables().
|
inline |
Returns the requested reaction's multi-group cross section for target temperature a_temperature and projectile multi-group a_hashIndex.
| a_URR_protareInfos | [in] URR information. |
| a_URR_index | [in] If not negative, specifies the index in a_URR_protareInfos. |
| a_hashIndex | [in] Specifies projectile energy hash 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 2187 of file MCGIDI_headerSource.hpp.
| LUPI_HOST_DEVICE void MCGIDI::HeatedCrossSectionsContinuousEnergy::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 1445 of file MCGIDI_heatedCrossSections.cc.
| LUPI_HOST void MCGIDI::HeatedCrossSectionsContinuousEnergy::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 index of the particle whose user index is to be set. |
| a_userParticleIndex | [in] The particle index specified by the user. |
Definition at line 1420 of file MCGIDI_heatedCrossSections.cc.
| LUPI_HOST void MCGIDI::HeatedCrossSectionsContinuousEnergy::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 1432 of file MCGIDI_heatedCrossSections.cc.
|
inline |
Returns the value of the m_temperatures.
Definition at line 710 of file MCGIDI.hpp.
|
inline |
Returns the threshold for the reaction at index a_index.
Definition at line 713 of file MCGIDI.hpp.
Referenced by update().
| LUPI_HOST void MCGIDI::HeatedCrossSectionsContinuousEnergy::update | ( | LUPI::StatusMessageReporting & | a_smr, |
| SetupInfo & | a_setupInfo, | ||
| Transporting::MC const & | a_settings, | ||
| GIDI::Transporting::Particles const & | a_particles, | ||
| DomainHash const & | a_domainHash, | ||
| GIDI::Styles::TemperatureInfos const & | a_temperatureInfos, | ||
| std::vector< GIDI::Reaction const * > const & | a_reactions, | ||
| std::vector< GIDI::Reaction const * > const & | a_orphanProducts, | ||
| bool | a_fixedGrid, | ||
| bool | a_zeroReactions ) |
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_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_domainHash | [in] The hash data used when looking up a cross section. |
| 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_fixedGrid | [in] If true, the specified fixed grid is used; otherwise, grid in the file is used. |
| 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 1079 of file MCGIDI_heatedCrossSections.cc.
|
inline |
Definition at line 716 of file MCGIDI.hpp.
Referenced by URR_domainMax().
|
inline |
Definition at line 715 of file MCGIDI.hpp.
Referenced by URR_domainMin().