|
Geant4 11.4.0
Toolkit for the simulation of the passage of particles through matter
|
#include <MCGIDI.hpp>
Additional Inherited Members | |
| Public Attributes inherited from MCGIDI::Protare | |
| friend | ProtareSingle |
| friend | ProtareComposite |
| friend | ProtareTNSL |
Class representing a GNDS <reactionSuite> node with only data needed for Monte Carlo transport. The data are also stored in a way that is better suited for Monte Carlo transport. For example, cross section data for each reaction are not stored with its reaction, but within the HeatedCrossSections member of the Protare.
Definition at line 1609 of file MCGIDI.hpp.
| LUPI_HOST_DEVICE MCGIDI::ProtareSingle::ProtareSingle | ( | ) |
Default constructor used when broadcasting a Protare as needed by MPI or GPUs.
Definition at line 1272 of file MCGIDI_protare.cc.
Referenced by protare(), protare(), and protareWithReaction().
| LUPI_HOST MCGIDI::ProtareSingle::ProtareSingle | ( | LUPI::StatusMessageReporting & | a_smr, |
| GIDI::ProtareSingle const & | a_protare, | ||
| PoPI::Database const & | a_pops, | ||
| Transporting::MC & | a_settings, | ||
| GIDI::Transporting::Particles const & | a_particles, | ||
| DomainHash const & | a_domainHash, | ||
| GIDI::Styles::TemperatureInfos const & | a_temperatureInfos, | ||
| GIDI::ExcludeReactionsSet const & | a_reactionsToExclude, | ||
| std::size_t | a_reactionsToExcludeOffset = 0, | ||
| bool | a_allowFixedGrid = true ) |
| a_smr | [Out] If errors are not to be thrown, then the error is reported via this instance. |
| a_protare | [in] The GIDI::Protare whose data is to be used to construct this. |
| a_pops | [in] A PoPs Database instance used to get particle intids and possibly other particle information. |
| 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 temperature data to extract from a_protare. |
| a_reactionsToExclude | [in] A list of reaction to not include in the MCGIDI::Protare. |
| a_reactionsToExcludeOffset | [in] The starting index for the reactions in this ProtareSingle. |
| a_allowFixedGrid | [in] For internal (i.e., MCGIDI) use only. Users must use the default value. |
Definition at line 1299 of file MCGIDI_protare.cc.
| LUPI_HOST_DEVICE MCGIDI::ProtareSingle::~ProtareSingle | ( | ) |
Definition at line 1640 of file MCGIDI_protare.cc.
Referenced by ~ProtareSingle().
|
inline |
Returns a reference to the m_branches member.
Definition at line 1660 of file MCGIDI.hpp.
|
inline |
Definition at line 1651 of file MCGIDI.hpp.
| LUPI_HOST_DEVICE double MCGIDI::ProtareSingle::crossSection | ( | URR_protareInfos const & | a_URR_protareInfos, |
| std::size_t | a_hashIndex, | ||
| double | a_temperature, | ||
| double | a_energy, | ||
| bool | a_sampling = false ) const |
Returns the total cross section for target temperature a_temperature and projectile energy a_energy. a_sampling is only used for multi-group cross section look up.
| a_URR_protareInfos | [in] URR information. |
| a_hashIndex | [in] Specifies the continuous energy or multi-group index. |
| a_temperature | [in] The temperature of the target. |
| a_energy | [in] The energy of the projectile. |
| a_sampling | [in] Used for multi-group look up. If true, use augmented cross sections. |
Definition at line 1818 of file MCGIDI_protare.cc.
Referenced by crossSection(), and sampleReaction().
| LUPI_HOST_DEVICE void MCGIDI::ProtareSingle::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 1834 of file MCGIDI_protare.cc.
Referenced by crossSectionVector().
| LUPI_HOST_DEVICE double MCGIDI::ProtareSingle::depositionEnergy | ( | std::size_t | a_hashIndex, |
| double | a_temperature, | ||
| double | a_energy ) const |
Returns the index of a sampled reaction for a target with termpature a_temperature, 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 the continuous energy or multi-group index. |
| a_temperature | [in] The temperature of the target. |
| a_energy | [in] The energy of the projectile. |
Definition at line 1891 of file MCGIDI_protare.cc.
Referenced by depositionEnergy().
| LUPI_HOST_DEVICE double MCGIDI::ProtareSingle::depositionMomentum | ( | std::size_t | a_hashIndex, |
| double | a_temperature, | ||
| double | a_energy ) const |
Returns the index of a sampled reaction for a target with termpature a_temperature, 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 the continuous energy or multi-group index. |
| a_temperature | [in] The temperature of the target. |
| a_energy | [in] The energy of the projectile. |
Definition at line 1907 of file MCGIDI_protare.cc.
Referenced by depositionMomentum().
|
inline |
Definition at line 1652 of file MCGIDI.hpp.
| LUPI_HOST_DEVICE double MCGIDI::ProtareSingle::gain | ( | std::size_t | a_hashIndex, |
| double | a_temperature, | ||
| double | a_energy, | ||
| int | a_particleIndex ) const |
Returns the index of a sampled reaction for a target with termpature a_temperature, 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 the continuous energy or multi-group 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 to be returned. |
Definition at line 1940 of file MCGIDI_protare.cc.
Referenced by gain().
| LUPI_HOST_DEVICE double MCGIDI::ProtareSingle::gainViaIntid | ( | std::size_t | a_hashIndex, |
| double | a_temperature, | ||
| double | a_energy, | ||
| int | a_particleIntid ) const |
Returns the intid of a sampled reaction for a target with termpature a_temperature, 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 the continuous energy or multi-group 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 to be returned. |
Definition at line 1957 of file MCGIDI_protare.cc.
Referenced by gainViaIntid().
| LUPI_HOST_DEVICE bool MCGIDI::ProtareSingle::hasFission | ( | ) | const |
Returns true if this has a fission reaction and false otherwise.
Definition at line 1771 of file MCGIDI_protare.cc.
Referenced by hasFission().
| LUPI_HOST_DEVICE bool MCGIDI::ProtareSingle::hasIncoherentDoppler | ( | ) | const |
Returns true if this has an incoherent photoatomic doppler broadened reaction and false otherwise.
Definition at line 1785 of file MCGIDI_protare.cc.
Referenced by hasIncoherentDoppler().
|
inline |
Definition at line 1706 of file MCGIDI.hpp.
Referenced by MCGIDI::URR_protareInfos::setup().
|
inline |
Returns a reference to the m_heatedCrossSections member.
Definition at line 1654 of file MCGIDI.hpp.
|
inline |
Returns a reference to the m_heatedCrossSections member.
Definition at line 1653 of file MCGIDI.hpp.
|
inline |
Returns a reference to the m_heatedMultigroupCrossSections member.
Definition at line 1656 of file MCGIDI.hpp.
|
inline |
Returns a reference to the m_heatedMultigroupCrossSections member.
Definition at line 1655 of file MCGIDI.hpp.
|
inline |
Definition at line 1700 of file MCGIDI.hpp.
Referenced by ProtareSingle().
| LUPI_HOST_DEVICE bool MCGIDI::ProtareSingle::inURR | ( | double | a_energy | ) | const |
Returns true if a_energy with unresolved resonance region (URR) of this and false otherwise.
Definition at line 1799 of file MCGIDI_protare.cc.
Referenced by inURR(), and MCGIDI::URR_protareInfos::updateProtare().
|
inline |
Definition at line 1650 of file MCGIDI.hpp.
Referenced by MCGIDI::HeatedCrossSectionContinuousEnergy::HeatedCrossSectionContinuousEnergy(), and ProtareSingle().
|
inline |
Returns the maximum cross section domain.
Definition at line 1684 of file MCGIDI.hpp.
|
inline |
Returns the minimum cross section domain.
Definition at line 1681 of file MCGIDI.hpp.
|
inline |
Returns a reference to the m_nuclideGammaBranchStateInfos member.
Definition at line 1658 of file MCGIDI.hpp.
Referenced by MCGIDI::HeatedCrossSectionContinuousEnergy::HeatedCrossSectionContinuousEnergy(), MCGIDI::GRIN_captureToCompound::sampleCaptureLevel(), MCGIDI::GRIN_capture::sampleProducts(), and MCGIDI::GRIN_inelastic::sampleProducts().
|
inline |
Returns the number of orphan products of this.
Definition at line 1696 of file MCGIDI.hpp.
|
inline |
Returns the number of protares contained in this.
Definition at line 1676 of file MCGIDI.hpp.
|
inline |
Returns the number of reactions of this.
Definition at line 1694 of file MCGIDI.hpp.
Referenced by protareWithReaction().
|
inline |
Returns the (a_index-1)^th orphan product of this.
Definition at line 1697 of file MCGIDI.hpp.
|
inline |
Returns the value of the m_orphanProducts member.
Definition at line 1666 of file MCGIDI.hpp.
| LUPI_HOST_DEVICE double MCGIDI::ProtareSingle::productionEnergy | ( | std::size_t | a_hashIndex, |
| double | a_temperature, | ||
| double | a_energy ) const |
Returns the index of a sampled reaction for a target with termpature a_temperature, 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 the continuous energy or multi-group index. |
| a_temperature | [in] The temperature of the target. |
| a_energy | [in] The energy of the projectile. |
Definition at line 1923 of file MCGIDI_protare.cc.
Referenced by productionEnergy().
|
inline |
Returns the value of the m_projectileMultiGroupBoundaries member.
Definition at line 1689 of file MCGIDI.hpp.
Referenced by MCGIDI::Protare::projectileMultiGroupBoundaries().
|
inline |
Returns the value of the m_projectileMultiGroupBoundariesCollapsed member.
Definition at line 1691 of file MCGIDI.hpp.
Referenced by MCGIDI::Protare::projectileMultiGroupBoundariesCollapsed(), and MCGIDI::HeatedCrossSectionsMultiGroup::update().
| LUPI_HOST_DEVICE ProtareSingle * MCGIDI::ProtareSingle::protare | ( | std::size_t | a_index | ) |
Returns the pointer representing the protare (i.e., this) if a_index is 0 and nullptr otherwise.
| a_index | [in] Must always be 0. |
Definition at line 1700 of file MCGIDI_protare.cc.
| LUPI_HOST_DEVICE ProtareSingle const * MCGIDI::ProtareSingle::protare | ( | std::size_t | a_index | ) | const |
Returns the pointer representing the protare (i.e., this) if a_index is 0 and nullptr otherwise.
| a_index | [in] Must always be 0. |
Definition at line 1686 of file MCGIDI_protare.cc.
| LUPI_HOST_DEVICE ProtareSingle const * MCGIDI::ProtareSingle::protareWithReaction | ( | std::size_t | a_index | ) | const |
Returns the pointer to the this if (a_index - 1)th is a value reaction index and nullptr otherwise.
| a_index | [in] Index of the reaction. |
Definition at line 1714 of file MCGIDI_protare.cc.
Referenced by protareWithReaction().
|
inline |
Returns the (a_index-1)^th reaction of this.
Definition at line 1695 of file MCGIDI.hpp.
Referenced by MCGIDI::HeatedCrossSectionContinuousEnergy::print().
| LUPI_HOST_DEVICE double MCGIDI::ProtareSingle::reactionCrossSection | ( | std::size_t | a_reactionIndex, |
| URR_protareInfos const & | a_URR_protareInfos, | ||
| double | a_temperature, | ||
| double | a_energy ) const |
Returns the reaction's cross section for the reaction at index a_reactionIndex, for target temperature a_temperature and projectile energy a_energy.
| a_reactionIndex | [in] The index of the reaction. |
| a_URR_protareInfos | [in] URR information. |
| a_temperature | [in] The temperature of the target. |
| a_energy | [in] The energy of the projectile. |
Definition at line 1875 of file MCGIDI_protare.cc.
| LUPI_HOST_DEVICE double MCGIDI::ProtareSingle::reactionCrossSection | ( | std::size_t | a_reactionIndex, |
| URR_protareInfos const & | a_URR_protareInfos, | ||
| std::size_t | a_hashIndex, | ||
| double | a_temperature, | ||
| double | a_energy, | ||
| bool | a_sampling = false ) const |
Returns the reaction's cross section for the reaction at index a_reactionIndex, for target temperature a_temperature and projectile energy a_energy. a_sampling is only used for multi-group cross section look up.
| a_reactionIndex | [in] The index of the reaction. |
| a_URR_protareInfos | [in] URR information. |
| a_hashIndex | [in] Specifies the continuous energy or multi-group index. |
| a_temperature | [in] The temperature of the target. |
| a_energy | [in] The energy of the projectile. |
| a_sampling | [in] Used for multi-group look up. If true, use augmented cross sections. |
Definition at line 1857 of file MCGIDI_protare.cc.
Referenced by MCGIDI::Distributions::CoherentPhotoAtomicScattering::angleBiasing(), MCGIDI::Distributions::IncoherentBoundToFreePhotoAtomicScattering::angleBiasing(), MCGIDI::Distributions::IncoherentPhotoAtomicScattering::angleBiasing(), reactionCrossSection(), and reactionCrossSection().
|
inline |
Definition at line 1709 of file MCGIDI.hpp.
|
inline |
Returns the value of the m_reactions member.
Definition at line 1664 of file MCGIDI.hpp.
|
inline |
Samples gammas from a nuclide electro-magnetic decay.
| a_input | [in] Sample options requested by user. |
| a_projectileEnergy | [in] The energy of the projectile. |
| a_initialStateIndex | [in] The index in m_nuclideGammaBranchStateInfos whose nuclide data are used for sampling. |
| a_rng | [in] The random number generator function that returns a double in the range [0, 1.0). |
| a_products | [in] The object to add all sampled gammas to. |
Definition at line 2718 of file MCGIDI_headerSource.hpp.
Referenced by MCGIDI::Product::sampleFinalState(), MCGIDI::GRIN_capture::sampleProducts(), MCGIDI::GRIN_inelastic::sampleProducts(), and MCGIDI::Product::sampleProducts().
|
inline |
Returns the index of a sampled reaction for target temperature, projectile energy and total cross section as specified via argument a_input. Random numbers are obtained via a_rng.
| a_input | [in/out] Sample options requested by user. The values m_modelTemperature and m_modelEnergy are set by this method. |
| a_URR_protareInfos | [in] URR information. |
| a_hashIndex | [in] Specifies the continuous energy hash index or multi-group index. |
| a_crossSection | [in] The total cross section for the protare at a_input.temperature() and a_input.energy(). |
| a_rng | [in] The random number generator function that returns a double in the range [0, 1.0). |
Definition at line 2843 of file MCGIDI_headerSource.hpp.
|
inline |
This function is used internally to sample a target's velocity (speed and cosine of angle relative to projectile) for a heated target using zero temperature, multi-grouped cross sections.
| a_input | [in/out] Contains needed input like the targets temperature. Also will have the target sampled velocity on return if return value is true. |
| a_rng | [in] The random number generator function that returns a double in the range [0, 1.0). |
Definition at line 2772 of file MCGIDI_headerSource.hpp.
Referenced by sampleReaction().
| LUPI_HOST_DEVICE void MCGIDI::ProtareSingle::serialize2 | ( | 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 1972 of file MCGIDI_protare.cc.
Referenced by serialize2().
|
inline |
Definition at line 1704 of file MCGIDI.hpp.
Referenced by MCGIDI::URR_protareInfos::setup().
| LUPI_HOST void MCGIDI::ProtareSingle::setUserParticleIndex2 | ( | 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 1655 of file MCGIDI_protare.cc.
Referenced by setUserParticleIndex2().
| LUPI_HOST void MCGIDI::ProtareSingle::setUserParticleIndexViaIntid2 | ( | int | a_particleIntid, |
| int | a_userParticleIndex ) |
Updates the m_userParticleIndex to a_userParticleIndex for all particles with PoPs intid a_particleIntid.
| 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 1670 of file MCGIDI_protare.cc.
Referenced by setUserParticleIndexViaIntid2().
|
inline |
Definition at line 1742 of file MCGIDI.hpp.
| LUPI_HOST_DEVICE Vector< double > MCGIDI::ProtareSingle::temperatures | ( | std::size_t | a_index = 0 | ) | const |
Returns the list of temperatures for this.
| a_index | [in] Index of the reqested ProtareSingle. Must be 0. |
Definition at line 1728 of file MCGIDI_protare.cc.
Referenced by MCGIDI::Protare::temperatures(), and temperatures().
|
inline |
Returns the threshold for the reaction at index a_index.
Definition at line 1711 of file MCGIDI.hpp.
|
inline |
Returns the value of the m_upscatterModelACrossSection.
Definition at line 1738 of file MCGIDI.hpp.
|
inline |
Returns a reference to the m_upscatterModelAGroupEnergies member.
Definition at line 1736 of file MCGIDI.hpp.
|
inline |
Returns a reference to the m_upscatterModelAGroupVelocities member.
Definition at line 1737 of file MCGIDI.hpp.
|
inline |
Returns the value of the m_upscatterModelASupported member.
Definition at line 1735 of file MCGIDI.hpp.
Referenced by sampleReaction().
|
inline |
Definition at line 1708 of file MCGIDI.hpp.
|
inline |
Definition at line 1707 of file MCGIDI.hpp.
|
inline |
Definition at line 1703 of file MCGIDI.hpp.
Referenced by MCGIDI::URR_protareInfos::updateProtare().