|
Geant4 11.4.0
Toolkit for the simulation of the passage of particles through matter
|
#include <MCGIDI.hpp>
Public Member Functions | |
| LUPI_HOST_DEVICE | HeatedCrossSectionContinuousEnergy () |
| LUPI_HOST | HeatedCrossSectionContinuousEnergy (SetupInfo &a_setupInfo, Transporting::MC const &a_settings, GIDI::Transporting::Particles const &a_particles, DomainHash const &a_domainHash, GIDI::Styles::TemperatureInfo const &a_temperatureInfo, 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 | ~HeatedCrossSectionContinuousEnergy () |
| LUPI_HOST_DEVICE std::size_t | evaluationInfo (std::size_t a_hashIndex, double a_energy, double *a_energyFraction) const |
| LUPI_HOST HeatedReactionCrossSectionContinuousEnergy const * | reactionCrossSection (std::size_t a_index) const |
| LUPI_HOST_DEVICE double | temperature () const |
| LUPI_HOST_DEVICE double | minimumEnergy () const |
| LUPI_HOST_DEVICE double | maximumEnergy () const |
| LUPI_HOST_DEVICE std::size_t | numberOfReactions () const |
| LUPI_HOST_DEVICE std::size_t | thresholdOffset (std::size_t a_reactionIndex) const |
| LUPI_HOST_DEVICE double | threshold (std::size_t a_reactionIndex) 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 Vector< MCGIDI_FLOAT > & | totalCrossSection () |
| LUPI_HOST_DEVICE double | crossSection (URR_protareInfos const &a_URR_protareInfos, int a_URR_index, std::size_t a_hashIndex, double a_energy, bool a_sampling=false) const |
| LUPI_HOST GIDI::Functions::XYs1d | crossSectionAsGIDI_XYs1d () 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_energy, bool a_sampling=false) const |
| LUPI_HOST_DEVICE double | reactionCrossSection2 (std::size_t a_reactionIndex, URR_protareInfos const &a_URR_protareInfos, int a_URR_index, double a_energy, std::size_t a_energyIndex, double a_energyFraction, 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_energy) const |
| LUPI_HOST GIDI::Functions::XYs1d | reactionCrossSectionAsGIDI_XYs1d (std::size_t a_reactionIndex) const |
| LUPI_HOST_DEVICE double | depositionEnergy (std::size_t a_hashIndex, double a_energy) const |
| LUPI_HOST_DEVICE double | depositionMomentum (std::size_t a_hashIndex, double a_energy) const |
| LUPI_HOST_DEVICE double | productionEnergy (std::size_t a_hashIndex, double a_energy) const |
| LUPI_HOST_DEVICE double | gain (std::size_t a_hashIndex, double a_energy, int a_particleIndex) const |
| LUPI_HOST_DEVICE double | gainViaIntid (std::size_t a_hashIndex, 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_DEVICE Vector< double > const & | energies () const |
| 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 614 of file MCGIDI.hpp.
| LUPI_HOST_DEVICE MCGIDI::HeatedCrossSectionContinuousEnergy::HeatedCrossSectionContinuousEnergy | ( | ) |
Definition at line 268 of file MCGIDI_heatedCrossSections.cc.
| LUPI_HOST MCGIDI::HeatedCrossSectionContinuousEnergy::HeatedCrossSectionContinuousEnergy | ( | SetupInfo & | a_setupInfo, |
| Transporting::MC const & | a_settings, | ||
| GIDI::Transporting::Particles const & | a_particles, | ||
| DomainHash const & | a_domainHash, | ||
| GIDI::Styles::TemperatureInfo const & | a_temperatureInfo, | ||
| 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_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_temperatureInfo | [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 298 of file MCGIDI_heatedCrossSections.cc.
| LUPI_HOST_DEVICE MCGIDI::HeatedCrossSectionContinuousEnergy::~HeatedCrossSectionContinuousEnergy | ( | ) |
Definition at line 603 of file MCGIDI_heatedCrossSections.cc.
| LUPI_HOST_DEVICE double MCGIDI::HeatedCrossSectionContinuousEnergy::crossSection | ( | URR_protareInfos const & | a_URR_protareInfos, |
| int | a_URR_index, | ||
| std::size_t | a_hashIndex, | ||
| double | a_energy, | ||
| bool | a_sampling = false ) const |
Definition at line 682 of file MCGIDI_heatedCrossSections.cc.
Referenced by crossSectionAsGIDI_XYs1d(), and HeatedCrossSectionContinuousEnergy().
| LUPI_HOST GIDI::Functions::XYs1d MCGIDI::HeatedCrossSectionContinuousEnergy::crossSectionAsGIDI_XYs1d | ( | ) | const |
Returns the total cross section as a GIDI::Functions::XYs1d instance.
Definition at line 770 of file MCGIDI_heatedCrossSections.cc.
Referenced by reactionCrossSectionAsGIDI_XYs1d().
| LUPI_HOST_DEVICE double MCGIDI::HeatedCrossSectionContinuousEnergy::depositionEnergy | ( | std::size_t | a_hashIndex, |
| double | a_energy ) const |
Returns the index of a sampled reaction for a projectile with energy a_energy and total cross section a_crossSection. Random numbers are obtained via a_userrng and a_rngState.
| a_hashIndex | [in] Specifies projectile energy hash index. |
| a_energy | [in] The energy of the projectile. |
Definition at line 799 of file MCGIDI_heatedCrossSections.cc.
| LUPI_HOST_DEVICE double MCGIDI::HeatedCrossSectionContinuousEnergy::depositionMomentum | ( | std::size_t | a_hashIndex, |
| double | a_energy ) const |
Returns the index of a sampled reaction for a projectile with energy a_energy and total cross section a_crossSection. Random numbers are obtained via a_userrng and a_rngState.
| a_hashIndex | [in] Specifies projectile energy hash index. |
| a_energy | [in] The energy of the projectile. |
Definition at line 815 of file MCGIDI_heatedCrossSections.cc.
|
inline |
Returns a reference to m_styles.
Definition at line 678 of file MCGIDI.hpp.
Referenced by crossSectionAsGIDI_XYs1d(), and HeatedCrossSectionContinuousEnergy().
| LUPI_HOST_DEVICE std::size_t MCGIDI::HeatedCrossSectionContinuousEnergy::evaluationInfo | ( | std::size_t | a_hashIndex, |
| double | a_energy, | ||
| double * | a_energyFraction ) const |
This function returns the index in a_energies where a_energy lies between the returned index and the next index. The returned index must lie between a_hashIndices[a_hashIndex] and a_hashIndices[a_hashIndex+1]. If a_energy is below the domain of a_energies, 0 is returned. If a_energy is above the domain of a_energies, the size of a_energies minus 2 is returned. The argument a_energyFraction the weight for the energy at the returned index with the next index getting weighting 1 minus a_energyFraction.
| a_hashIndex | [in] Specifies projectile energy hash index. |
| a_energy | [in] The energy whose index is requested. |
| a_energyFraction | [in] This represents the weighting to apply to the two bounding energies. |
Definition at line 626 of file MCGIDI_heatedCrossSections.cc.
Referenced by crossSection(), depositionEnergy(), depositionMomentum(), gain(), gainViaIntid(), productionEnergy(), and MCGIDI::HeatedCrossSectionsContinuousEnergy::sampleReaction().
| LUPI_HOST_DEVICE double MCGIDI::HeatedCrossSectionContinuousEnergy::gain | ( | std::size_t | a_hashIndex, |
| double | a_energy, | ||
| int | a_particleIndex ) const |
Returns the gain for the particle with index a_particleIndex for projectile energy a_energy.
| a_hashIndex | [in] Specifies projectile energy hash index. |
| a_energy | [in] The energy of the projectile. |
| a_particleIndex | [in] The index of the particle whose gain is requested. |
Definition at line 847 of file MCGIDI_heatedCrossSections.cc.
Referenced by gain(), and gainViaIntid().
| LUPI_HOST_DEVICE double MCGIDI::HeatedCrossSectionContinuousEnergy::gainViaIntid | ( | std::size_t | a_hashIndex, |
| double | a_energy, | ||
| int | a_particleIntid ) const |
Returns the gain for the particle with intid a_particleIntid for projectile energy a_energy.
| a_hashIndex | [in] Specifies projectile energy hash index. |
| a_energy | [in] The energy of the projectile. |
| a_particleIntid | [in] The intid of the particle whose gain is requested. |
Definition at line 867 of file MCGIDI_heatedCrossSections.cc.
| LUPI_HOST_DEVICE bool MCGIDI::HeatedCrossSectionContinuousEnergy::hasURR_probabilityTables | ( | ) | const |
Returns true if this has a unresolved resonance region (URR) data and false otherwise.
Definition at line 637 of file MCGIDI_heatedCrossSections.cc.
Referenced by HeatedCrossSectionContinuousEnergy(), and reactionHasURR_probabilityTables().
|
inline |
Returns the maximum cross section domain.
Definition at line 645 of file MCGIDI.hpp.
|
inline |
Returns the minimum cross section domain.
Definition at line 644 of file MCGIDI.hpp.
|
inline |
Returns the number of reaction cross section.
Definition at line 646 of file MCGIDI.hpp.
Referenced by HeatedCrossSectionContinuousEnergy().
| LUPI_HOST void MCGIDI::HeatedCrossSectionContinuousEnergy::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 ProtareSingle instance this resides in. |
| 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 979 of file MCGIDI_heatedCrossSections.cc.
| LUPI_HOST_DEVICE double MCGIDI::HeatedCrossSectionContinuousEnergy::productionEnergy | ( | std::size_t | a_hashIndex, |
| double | a_energy ) const |
Returns the index of a sampled reaction for a projectile with energy a_energy and total cross section a_crossSection. Random numbers are obtained via a_userrng and a_rngState.
| a_hashIndex | [in] Specifies projectile energy hash index. |
| a_energy | [in] The energy of the projectile. |
Definition at line 831 of file MCGIDI_heatedCrossSections.cc.
|
inline |
Returns the reaction cross section at index a_index.
Definition at line 640 of file MCGIDI.hpp.
Referenced by HeatedCrossSectionContinuousEnergy(), URR_domainMax(), and URR_domainMin().
| LUPI_HOST_DEVICE double MCGIDI::HeatedCrossSectionContinuousEnergy::reactionCrossSection | ( | std::size_t | a_reactionIndex, |
| URR_protareInfos const & | a_URR_protareInfos, | ||
| int | a_URR_index, | ||
| double | a_energy ) const |
Definition at line 742 of file MCGIDI_heatedCrossSections.cc.
| LUPI_HOST_DEVICE double MCGIDI::HeatedCrossSectionContinuousEnergy::reactionCrossSection | ( | std::size_t | a_reactionIndex, |
| URR_protareInfos const & | a_URR_protareInfos, | ||
| int | a_URR_index, | ||
| std::size_t | a_hashIndex, | ||
| double | a_energy, | ||
| bool | a_sampling = false ) const |
| LUPI_HOST_DEVICE double MCGIDI::HeatedCrossSectionContinuousEnergy::reactionCrossSection2 | ( | std::size_t | a_reactionIndex, |
| URR_protareInfos const & | a_URR_protareInfos, | ||
| int | a_URR_index, | ||
| double | a_energy, | ||
| std::size_t | a_energyIndex, | ||
| double | a_energyFraction, | ||
| bool | a_sampling = false ) const |
Definition at line 717 of file MCGIDI_heatedCrossSections.cc.
Referenced by crossSection(), reactionCrossSection(), and MCGIDI::HeatedCrossSectionsContinuousEnergy::sampleReaction().
| LUPI_HOST GIDI::Functions::XYs1d MCGIDI::HeatedCrossSectionContinuousEnergy::reactionCrossSectionAsGIDI_XYs1d | ( | std::size_t | a_reactionIndex | ) | 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. |
Definition at line 786 of file MCGIDI_heatedCrossSections.cc.
|
inline |
Definition at line 656 of file MCGIDI.hpp.
| LUPI_HOST_DEVICE void MCGIDI::HeatedCrossSectionContinuousEnergy::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 911 of file MCGIDI_heatedCrossSections.cc.
| LUPI_HOST void MCGIDI::HeatedCrossSectionContinuousEnergy::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 886 of file MCGIDI_heatedCrossSections.cc.
| LUPI_HOST void MCGIDI::HeatedCrossSectionContinuousEnergy::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 898 of file MCGIDI_heatedCrossSections.cc.
|
inline |
Returns the value of the m_temperature member.
Definition at line 643 of file MCGIDI.hpp.
Referenced by HeatedCrossSectionContinuousEnergy().
|
inline |
Returns the threshold for the reaction with index a_reactionIndex.
Definition at line 651 of file MCGIDI.hpp.
Referenced by HeatedCrossSectionContinuousEnergy(), and threshold().
|
inline |
Returns the offset for the cross section for the reaction with index a_reactionIndex.
Definition at line 649 of file MCGIDI.hpp.
|
inline |
Returns a reference to member m_totalCrossSection.
Definition at line 658 of file MCGIDI.hpp.
Referenced by HeatedCrossSectionContinuousEnergy().
| LUPI_HOST_DEVICE double MCGIDI::HeatedCrossSectionContinuousEnergy::URR_domainMax | ( | ) | const |
Returns the maximum energy for the unresolved resonance region (URR) domain. If no URR data present, returns -1.
Definition at line 667 of file MCGIDI_heatedCrossSections.cc.
Referenced by HeatedCrossSectionContinuousEnergy().
| LUPI_HOST_DEVICE double MCGIDI::HeatedCrossSectionContinuousEnergy::URR_domainMin | ( | ) | const |
Returns the minimum energy for the unresolved resonance region (URR) domain. If no URR data present, returns -1.
Definition at line 648 of file MCGIDI_heatedCrossSections.cc.