|
Geant4 11.4.0
Toolkit for the simulation of the passage of particles through matter
|
#include <MCGIDI.hpp>
Public Member Functions | |
| LUPI_HOST_DEVICE | OutputChannel () |
| LUPI_HOST | OutputChannel (GIDI::OutputChannel const *a_outputChannel, SetupInfo &a_setupInfo, Transporting::MC const &a_settings, GIDI::Transporting::Particles const &a_particles) |
| LUPI_HOST_DEVICE | ~OutputChannel () |
| LUPI_HOST_DEVICE Product * | operator[] (std::size_t a_index) |
| LUPI_HOST_DEVICE bool | isTwoBody () const |
| LUPI_HOST_DEVICE double | finalQ (double a_x1) const |
| LUPI_HOST_DEVICE bool | isFission () const |
| LUPI_HOST_DEVICE bool | hasFission () const |
| LUPI_HOST_DEVICE Functions::Function1d_d1 * | Q () |
| LUPI_HOST void | setUserParticleIndex (int a_particleIndex, int a_userParticleIndex) |
| LUPI_HOST void | setUserParticleIndexViaIntid (int a_particleIntid, int a_userParticleIndex) |
| LUPI_HOST void | setModelDBRC_data (Sampling::Upscatter::ModelDBRC_data *a_modelDBRC_data) |
| LUPI_HOST_DEVICE Vector< Product * > const & | products () const |
| Vector< DelayedNeutron * > | delayedNeutrons () const |
| LUPI_HOST_DEVICE DelayedNeutron const * | delayedNeutron (std::size_t a_index) const |
| LUPI_HOST void | moveProductsEtAlToReaction (std::vector< Product * > &a_products, Functions::Function1d **a_totalDelayedNeutronMultiplicity, std::vector< DelayedNeutron * > &a_delayedNeutrons, std::vector< Functions::Function1d_d1 * > &a_Qs) |
| LUPI_HOST_DEVICE double | productAverageMultiplicity (int a_index, double a_projectileEnergy) const |
| LUPI_HOST_DEVICE double | productAverageMultiplicityViaIntid (int a_intid, double a_projectileEnergy) const |
| template<typename RNG, typename PUSHBACK> | |
| LUPI_HOST_DEVICE void | sampleProducts (ProtareSingle const *a_protare, double a_projectileEnergy, Sampling::Input &a_input, RNG &&a_rng, PUSHBACK &&a_push_back, Sampling::ProductHandler &a_products) const |
| template<typename RNG> | |
| LUPI_HOST_DEVICE void | angleBiasing (Reaction const *a_reaction, int a_pid, double a_temperature, double a_energy_in, double a_mu_lab, double &a_probability, double &a_energy_out, RNG &&a_rng, double &a_cumulative_weight) const |
| template<typename RNG> | |
| LUPI_HOST_DEVICE void | angleBiasingViaIntid (Reaction const *a_reaction, int a_intid, double a_temperature, double a_energy_in, double a_mu_lab, double &a_probability, double &a_energy_out, RNG &&a_rng, double &a_cumulative_weight) const |
| LUPI_HOST_DEVICE void | serialize (LUPI::DataBuffer &a_buffer, LUPI::DataBuffer::Mode a_mode) |
Definition at line 1272 of file MCGIDI.hpp.
| LUPI_HOST_DEVICE MCGIDI::OutputChannel::OutputChannel | ( | ) |
Default constructor used when broadcasting a Protare as needed by MPI or GPUs.
Definition at line 23 of file MCGIDI_outputChannel.cc.
| LUPI_HOST MCGIDI::OutputChannel::OutputChannel | ( | GIDI::OutputChannel const * | a_outputChannel, |
| SetupInfo & | a_setupInfo, | ||
| Transporting::MC const & | a_settings, | ||
| GIDI::Transporting::Particles const & | a_particles ) |
| a_outputChannel | [in] The GIDI::OutputChannel whose data is to be used to construct this. |
| a_setupInfo | [in] Used internally when constructing a Protare to pass information to other constructors. |
| 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). |
Definition at line 41 of file MCGIDI_outputChannel.cc.
| LUPI_HOST_DEVICE MCGIDI::OutputChannel::~OutputChannel | ( | ) |
Definition at line 184 of file MCGIDI_outputChannel.cc.
|
inline |
Returns the probability for a project with energy a_energy_in to cause this channel to emitted a particle of index a_index at angle a_mu_lab as seen in the lab frame. If a particle is emitted, a_energy_out is its sampled outgoing energy.
| a_reaction | [in] The reaction containing the particle which this distribution describes. |
| a_index | [in] The index of the particle to emit. |
| a_temperature | [in] Specifies the temperature of the material. |
| a_energy_in | [in] The energy of the incident particle. |
| a_mu_lab | [in] The desired mu in the lab frame for the emitted particle. |
| a_weight | [in] The probability of emitting outgoing particle into lab angle a_mu_lab. |
| a_energy_out | [in] The energy of the emitted outgoing particle. |
| a_rng | [in] The random number generator function that returns a double in the range [0, 1.0). |
| a_cumulative_weight | [in] The sum of the multiplicity for other outgoing particles with index a_index. |
Definition at line 2469 of file MCGIDI_headerSource.hpp.
|
inline |
Returns the probability for a project with energy a_energy_in to cause this channel to emitted a particle of intid a_intid at angle a_mu_lab as seen in the lab frame. If a particle is emitted, a_energy_out is its sampled outgoing energy.
| a_reaction | [in] The reaction containing the particle which this distribution describes. |
| a_intid | [in] The intid of the particle to emit. |
| a_temperature | [in] Specifies the temperature of the material. |
| a_energy_in | [in] The energy of the incident particle. |
| a_mu_lab | [in] The desired mu in the lab frame for the emitted particle. |
| a_weight | [in] The probability of emitting outgoing particle into lab angle a_mu_lab. |
| a_energy_out | [in] The energy of the emitted outgoing particle. |
| a_rng | [in] The random number generator function that returns a double in the range [0, 1.0). |
| a_cumulative_weight | [in] The sum of the multiplicity for other outgoing particles with intid a_intid. |
Definition at line 2501 of file MCGIDI_headerSource.hpp.
|
inline |
Definition at line 1306 of file MCGIDI.hpp.
Referenced by angleBiasing(), angleBiasingViaIntid(), OutputChannel(), and sampleProducts().
|
inline |
Definition at line 1305 of file MCGIDI.hpp.
Referenced by OutputChannel().
| LUPI_HOST_DEVICE double MCGIDI::OutputChannel::finalQ | ( | double | a_x1 | ) | const |
This method returns the final Q for this by getting its final Q plus any sub-output channel's finalQ.
| a_x1 | [in] The energy of the projectile. |
Definition at line 201 of file MCGIDI_outputChannel.cc.
Referenced by finalQ(), and MCGIDI::Reaction::finalQ().
| LUPI_HOST_DEVICE bool MCGIDI::OutputChannel::hasFission | ( | ) | const |
This method returns true if the output channel or any of its sub-output channels is a fission channel and false otherwise.
Definition at line 215 of file MCGIDI_outputChannel.cc.
Referenced by hasFission().
|
inline |
Returns the value of the m_isFission.
Definition at line 1294 of file MCGIDI.hpp.
|
inline |
Returns true if output channel is two-body and false otherwise.
Definition at line 1292 of file MCGIDI.hpp.
| LUPI_HOST void MCGIDI::OutputChannel::moveProductsEtAlToReaction | ( | std::vector< Product * > & | a_products, |
| Functions::Function1d ** | a_totalDelayedNeutronMultiplicity, | ||
| std::vector< DelayedNeutron * > & | a_delayedNeutrons, | ||
| std::vector< Functions::Function1d_d1 * > & | a_Qs ) |
Returns the energy dependent multiplicity for outgoing particle with pops id a_id. The returned value may not be an integer. Energy dependent multiplicity mainly occurs for photons and fission neutrons.
| a_products | [in] The std::vector instance to add products to. |
| a_totalDelayedNeutronMultiplicity | [in] The std::vector instance to add delayed neutron multiplicities to. |
| a_delayedNeutrons | [in] The std::vector instance to add delayed neutrons to. |
| a_Qs | [in] The std::vector instance to add Q functions to. |
Definition at line 271 of file MCGIDI_outputChannel.cc.
|
inline |
Returns a pointer to the product at index a_index.
Definition at line 1290 of file MCGIDI.hpp.
| LUPI_HOST_DEVICE double MCGIDI::OutputChannel::productAverageMultiplicity | ( | int | a_index, |
| double | a_projectileEnergy ) const |
Returns the energy dependent multiplicity for outgoing particle with pops index a_index. The returned value may not be an integer. Energy dependent multiplicity mainly occurs for photons and fission neutrons.
| a_index | [in] The index of the requested particle. |
| a_projectileEnergy | [in] The energy of the projectile. |
Definition at line 376 of file MCGIDI_outputChannel.cc.
Referenced by MCGIDI::Reaction::productAverageMultiplicity().
| LUPI_HOST_DEVICE double MCGIDI::OutputChannel::productAverageMultiplicityViaIntid | ( | int | a_intid, |
| double | a_projectileEnergy ) const |
Returns the energy dependent multiplicity for outgoing particle with pops intid a_intid. The returned value may not be an integer. Energy dependent multiplicity mainly occurs for photons and fission neutrons.
| a_intid | [in] The intid of the requested particle. |
| a_projectileEnergy | [in] The energy of the projectile. |
Definition at line 401 of file MCGIDI_outputChannel.cc.
Referenced by MCGIDI::Reaction::productAverageMultiplicityViaIntid().
|
inline |
Returns the value of the m_products.
Definition at line 1303 of file MCGIDI.hpp.
Referenced by OutputChannel().
|
inline |
Returns the pointer of the m_Q member.
Definition at line 1297 of file MCGIDI.hpp.
|
inline |
This method adds sampled products to a_products.
| a_protare | [in] The Protare this Reaction belongs to. |
| a_projectileEnergy | [in] The energy of the projectile. |
| a_input | [in] Sample options requested by user. |
| 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 products to. |
Definition at line 2406 of file MCGIDI_headerSource.hpp.
| LUPI_HOST_DEVICE void MCGIDI::OutputChannel::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 424 of file MCGIDI_outputChannel.cc.
Referenced by MCGIDI::Reaction::serialize().
| LUPI_HOST void MCGIDI::OutputChannel::setModelDBRC_data | ( | Sampling::Upscatter::ModelDBRC_data * | a_modelDBRC_data | ) |
This method calls the **setModelDBRC_data* method on the first product of this with a_modelDBRC_data.
| a_modelDBRC_data | [in] The instance storing data needed to treat the DRRC upscatter mode. |
Definition at line 256 of file MCGIDI_outputChannel.cc.
Referenced by MCGIDI::Reaction::setModelDBRC_data().
| LUPI_HOST void MCGIDI::OutputChannel::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 231 of file MCGIDI_outputChannel.cc.
Referenced by MCGIDI::Reaction::setUserParticleIndex().
| LUPI_HOST void MCGIDI::OutputChannel::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 PoPs intid of the particle whose user index is to be set. |
| a_userParticleIndex | [in] The particle index specified by the user. |
Definition at line 244 of file MCGIDI_outputChannel.cc.
Referenced by MCGIDI::Reaction::setUserParticleIndexViaIntid().