10#ifndef MCGIDI_hpp_included
11#define MCGIDI_hpp_included 1
13#define MCGIDI_USE_DOUBLES 1
14#ifndef MCGIDI_USE_DOUBLES
15 #define MCGIDI_FLOAT float
16 #define DATA_MEMBER_VECTOR_FLOAT_OR_DOUBLE DATA_MEMBER_VECTOR_FLOAT
18 #define MCGIDI_FLOAT double
19 #define DATA_MEMBER_VECTOR_FLOAT_OR_DOUBLE DATA_MEMBER_VECTOR_DOUBLE
22#define _USE_MATH_DEFINES
29#ifdef MCGIDI_USE_VIRTUAL_FUNCTIONS
30 #define MCGIDI_VIRTUAL_FUNCTION virtual
31 #define MCGIDI_TRUE_VIRTUAL = 0
33 #define MCGIDI_VIRTUAL_FUNCTION
34 #define MCGIDI_TRUE_VIRTUAL
37#if defined(HAVE_HIP) && defined(__HIP_DEVICE_COMPILE__)
38 #define MCGIDI_PRINTF(...)
40 #define MCGIDI_PRINTF printf
64#define MCGIDI_nullReaction 999999999
67#define MCGIDI_speedOfLight_cm_sh 299.792458
68#define MCGIDI_speedOfLight_cm_sec ( MCGIDI_speedOfLight_cm_sh * 1e8 )
69#define MCGIDI_classicalElectronRadius 0.2817940322010228
71#define MCGIDI_particleBeta( a_mass_unitOfEnergy, a_kineticEnergy ) \
72 ( (a_mass_unitOfEnergy) == 0.0 ? 1 : sqrt( (a_kineticEnergy) * ( (a_kineticEnergy) + 2.0 * (a_mass_unitOfEnergy) ) ) / ( (a_kineticEnergy) + (a_mass_unitOfEnergy) ) )
77LUPI_HOST_DEVICE int muCOM_From_muLab(
double a_muLab,
double a_boostBeta,
double a_productBeta,
double &a_muPlus,
double &a_JacobianPlus,
double &a_muMinus,
double &a_JacobianMinus );
108 double m_energyDomainMax;
109 bool m_ignoreENDF_MT5;
110 bool m_sampleNonTransportingParticles;
111 bool m_useSlowerContinuousEnergyConversion;
112 bool m_addExpectedValueData;
117 std::vector<double> m_upscatterModelAGroupBoundaries;
119 bool m_wantTerrellPromptNeutronDistribution;
120 bool m_wantRawTNSL_distributionSampling;
121 std::vector<double> m_fixedGridPoints;
122 bool m_makePhotonEmissionProbabilitiesOne;
123 bool m_zeroNuclearLevelEnergyWidth;
147 LUPI::deprecatedFunction(
"MCGIDI::Transporting::MC::sampleNonTransportingParticles",
"MCGIDI::Transporting::MC::setSampleNonTransportingParticles",
"" );
153 m_useSlowerContinuousEnergyConversion = a_useSlowerContinuousEnergyConversion; }
161 LUPI::deprecatedFunction(
"MCGIDI::Transporting::MC::crossSectionLookupMode",
"MCGIDI::Transporting::MC::setCrossSectionLookupMode",
"" );
167 LUPI::deprecatedFunction(
"MCGIDI::Transporting::MC::other1dDataLookupMode",
"MCGIDI::Transporting::MC::setOther1dDataLookupMode",
"" );
173 LUPI::deprecatedFunction(
"MCGIDI::Transporting::MC::distributionLookupMode",
"MCGIDI::Transporting::MC::setDistributionLookupMode",
"" );
186 LUPI::deprecatedFunction(
"MCGIDI::Transporting::MC::want_URR_probabilityTables",
"MCGIDI::Transporting::MC::_URR_mode",
"" );
189 LUPI::deprecatedFunction(
"MCGIDI::Transporting::MC::want_URR_probabilityTables",
"MCGIDI::Transporting::MC::setURR_mode",
"" );
200 m_wantTerrellPromptNeutronDistribution = a_wantTerrellPromptNeutronDistribution;
203 LUPI::deprecatedFunction(
"MCGIDI::Transporting::MC::wantTerrellPromptNeutronDistribution",
"MCGIDI::Transporting::MC::setWantTerrellPromptNeutronDistribution",
"" );
210 m_wantRawTNSL_distributionSampling = a_wantRawTNSL_distributionSampling; }
320 std::size_t lower = 0, middle, upper = a_Xs.
size( ) - 1;
322 if( a_Xs.
size( ) == 0 ) {
324 else if( a_x < a_Xs[0] ) {
325 if( a_boundIndex )
return( 0 );
327 else if( a_x > a_Xs.
back( ) ) {
328 if( a_boundIndex )
return(
static_cast<int>( upper ) );
333 middle = ( lower + upper ) >> 1;
334 if( middle == lower )
break;
335 if( a_x < a_Xs[middle] ) {
341 return(
static_cast<int>( lower ) );
348 std::size_t a_upper,
bool a_boundIndex ) {
352 if( a_Xs.
size( ) == 0 ) {
354 else if( a_x < a_Xs[a_lower] ) {
355 if( a_boundIndex )
return(
static_cast<int>( a_lower ) );
357 else if( a_x > a_Xs[a_upper] ) {
358 if( a_boundIndex )
return(
static_cast<int>( a_upper ) );
363 middle = ( a_lower + a_upper ) >> 1;
364 if( middle == a_lower )
break;
365 if( a_x < a_Xs[middle] ) {
371 return(
static_cast<int>( a_lower ) );
408 if( _index == -2 )
return( 0 );
409 if( _index == -1 )
return( m_boundaries.size( ) - 2 );
410 return(
static_cast<std::size_t
>( _index ) );
433 if(
this != &a_rhs ) {
464template <
typename RNG>
532 std::size_t m_offset;
550 return( ( m_URR_probabilityTables !=
nullptr ) || ( m_ACE_URR_probabilityTables !=
nullptr ) );
558 if( a_index < m_offset )
return( 0.0 );
560 if( a_index >= m_crossSections.size( ) )
return( 0.0 );
562 return( m_crossSections[a_index] );
569 std::string
const &a_energyFormat, std::string
const &a_dFormat )
const ;
582 int m_userParticleIndex;
595 if( a_particleIndex == m_particleIndex ) m_userParticleIndex = a_userParticleIndex; }
598 if( a_particleIntid == m_particleIntid ) m_userParticleIndex = a_userParticleIndex; }
601 LUPI_HOST void adjustGain( std::size_t a_energy_index,
double a_gain ) { m_gain[a_energy_index] += a_gain; }
606 std::string
const &a_energyFormat, std::string
const &a_dFormat )
const ;
617 double m_temperature;
635 std::vector<GIDI::Reaction const *>
const &a_orphanProducts,
bool a_fixedGrid,
bool a_zeroReactions );
641 {
return( m_reactionCrossSections[a_index] ); }
664 std::size_t a_energyIndex,
double a_energyFraction,
bool a_sampling =
false )
const ;
671 LUPI_HOST_DEVICE double gain( std::size_t a_hashIndex,
double a_energy,
int a_particleIndex )
const ;
681 std::string
const &a_energyFormat, std::string
const &a_dFormat )
const ;
704 std::vector<GIDI::Reaction const *>
const &a_orphanProducts,
bool a_fixedGrid,
bool a_zeroReactions );
720 double a_temperature,
double a_energy,
bool a_sampling =
false )
const ;
722 double *a_crossSectionVector )
const ;
726 double a_temperature,
double a_energy,
bool a_sampling =
false )
const ;
730 template <
typename RNG>
732 std::size_t a_hashIndex,
double a_temperature,
double a_energy,
double a_crossSection, RNG && a_rng)
const ;
737 LUPI_HOST_DEVICE double gain( std::size_t a_hashIndex,
double a_temperature,
double a_energy,
int a_particleIndex )
const ;
745 std::string
const &a_energyFormat, std::string
const &a_dFormat )
const ;
758 int m_userParticleIndex;
771 if( a_particleIndex == m_particleIndex ) m_userParticleIndex = a_userParticleIndex; }
774 if( a_particleIntid == m_particleIntid ) m_userParticleIndex = a_userParticleIndex; }
792 std::size_t m_offset;
794 double m_augmentedThresholdCrossSection;
800 std::size_t a_offset, std::vector<double>
const &a_crossSection,
double a_threshold );
806 if( a_index < m_offset )
return( 0.0 );
807 std::size_t index = a_index - m_offset;
808 if( index >= m_crossSections.size( ) )
return( 0.0 );
810 double _crossSection( m_crossSections[index] );
811 if( a_sampling && ( index == 0 ) ) {
812 _crossSection += m_augmentedThresholdCrossSection;
814 return( _crossSection );
818 LUPI_HOST void write( FILE *a_file, std::size_t a_reactionIndex )
const ;
859 bool a_sampling =
false )
const {
860 return( m_reactionCrossSections[a_reactionIndex]->
crossSection( a_hashIndex, a_sampling ) ); }
900 std::vector<GIDI::Reaction const *>
const &a_orphanProducts,
bool a_zeroReactions,
GIDI::ExcludeReactionsSet const &a_reactionsToExclude );
912 double *a_crossSectionVector )
const ;
915 template <
typename RNG>
917 double a_crossSection, RNG &&rng)
const;
922 LUPI_HOST_DEVICE double gain( std::size_t a_hashIndex,
double a_temperature,
int a_particleIndex )
const ;
929 LUPI_HOST void write( FILE *a_file,
int a_temperatureIndex )
const ;
941 double m_probability;
942 double m_photonEmissionProbability;
943 double m_gammaEnergy;
944 int m_residualStateIndex;
945 bool m_residualStateKindIsContinuum;
950 std::map<std::string, int> &a_stateNamesToIndices,
bool a_makePhotonEmissionProbabilitiesOne );
960 std::string
const &a_energyFormat, std::string
const &a_dFormat )
const ;
973 double m_nuclearLevelEnergy;
974 double m_nuclearLevelEnergyWidth;
975 double m_multiplicity;
976 double m_averageGammaEnergy;
982 std::vector<NuclideGammaBranchInfo *> &a_nuclideGammaBranchInfos,
983 std::map<std::string, int> &a_stateNamesToIndices,
bool a_makePhotonEmissionProbabilitiesOne,
984 bool a_ignoreNuclearLevelEnergy );
997 std::string
const &a_energyFormat, std::string
const &a_dFormat )
const ;
1019 LUPI_HOST void set( std::vector<int>
const &a_levels, std::vector<double>
const &a_probabilities );
1021 template <
typename RNG>
1059 int m_neutronUserParticleIndex;
1060 double m_neutronMass;
1064 int m_targetUserParticleIndex;
1065 double m_targetMass;
1078 template <
typename RNG,
typename PUSHBACK>
1093 std::size_t m_index;
1102 template <
typename RNG>
1133 template <
typename RNG>
1147 double m_captureNeutronSeparationEnergy;
1150 int m_residualIntid;
1151 int m_residualIndex;
1152 int m_residualUserIndex;
1153 double m_residualMass;
1162 template <
typename RNG,
typename PUSHBACK>
1179 int m_userParticleIndex;
1181 bool m_isCompleteParticle;
1183 double m_excitationEnergy;
1185 int m_initialStateIndex;
1226 template <
typename RNG,
typename PUSHBACK>
1229 template <
typename RNG,
typename PUSHBACK>
1232 template <
typename RNG>
1234 double &a_probability,
double &a_energy_out, RNG && a_rng,
double &a_cumulative_weight )
const ;
1235 template <
typename RNG>
1237 double &a_probability,
double &a_energy_out, RNG && a_rng,
double &a_cumulative_weight )
const ;
1249 int m_delayedNeutronIndex;
1278 bool m_hasFinalStatePhotons;
1309 std::vector<DelayedNeutron *> &a_delayedNeutrons, std::vector<Functions::Function1d_d1 *> &a_Qs );
1310#ifdef MCGIDI_USE_OUTPUT_CHANNEL
1311 LUPI_HOST void addOrphanProductToProductList( std::vector<Product *> &a_associatedOrphanProducts )
const ;
1318template <
typename RNG,
typename PUSHBACK>
1321 template <
typename RNG>
1323 double &a_probability,
double &a_energy_out, RNG && a_rng,
double &a_cumulative_weight )
const ;
1324 template <
typename RNG>
1326 double &a_probability,
double &a_energy_out, RNG && a_rng,
double &a_cumulative_weight )
const ;
1339 std::size_t m_reactionIndex;
1340 std::size_t m_GIDI_reactionIndex;
1345 int m_initialStateIndex;
1348 double m_projectileMass;
1349 double m_targetMass;
1350 double m_crossSectionThreshold;
1351 double m_twoBodyThreshold;
1352 bool m_hasFinalStatePhotons;
1353 int m_fissionResiduaIntid;
1354 int m_fissionResiduaIndex;
1355 int m_fissionResiduaUserIndex;
1357 double m_fissionResidualMass;
1372#ifdef MCGIDI_USE_OUTPUT_CHANNEL
1380 bool m_GRIN_specialSampleProducts;
1381 double m_GRIN_inelasticThreshold;
1385 double m_GRIN_maximumCaptureIncidentEnergy;
1396 m_protareSingle = a_protareSingle;
1397 m_reactionIndex = a_reactionIndex;
1414 double a_temperature,
double a_energy )
const ;
1426 LUPI::deprecatedFunction(
"MCGIDI::Reaction::productMultiplicities",
"MCGIDI::Reaction::productMultiplicity",
"" );
1436#ifdef MCGIDI_USE_OUTPUT_CHANNEL
1444 std::vector<Product *>
const &a_associatedOrphanProducts );
1450 template <
typename RNG,
typename PUSHBACK>
1452 RNG && a_rng, PUSHBACK && a_push_back,
Sampling::ProductHandler &a_products,
bool a_checkOrphanProducts =
true )
const ;
1453 template <
typename RNG,
typename PUSHBACK>
1456 template <
typename RNG>
1457 inline LUPI_HOST_DEVICE double angleBiasing(
int a_pid,
double a_temperature,
double a_energy_in,
double a_mu_lab,
double &a_energy_out,
1458 RNG && a_rng,
double *a_cumulative_weight =
nullptr,
bool a_checkOrphanProducts =
true )
const ;
1459 template <
typename RNG>
1461 RNG && a_rng,
double *a_cumulative_weight =
nullptr,
bool a_checkOrphanProducts =
true )
const ;
1476 int m_projectileIntid;
1477 int m_projectileIndex;
1478 int m_projectileUserIndex;
1479 double m_projectileMass;
1480 double m_projectileExcitationEnergy;
1485 int m_targetUserIndex;
1486 double m_targetMass;
1487 double m_targetExcitationEnergy;
1490 int m_userNeutronIndex;
1492 int m_userPhotonIndex;
1504 bool m_isTNSL_ProtareSingle;
1506 LUPI_HOST void productIntidsAndIndices( std::set<int>
const &a_intids, std::set<int>
const &a_transportableIntids,
1507 std::set<int>
const &a_indices, std::set<int>
const &a_transportableIndices );
1572 std::
size_t a_hashIndex,
double a_temperature,
double a_energy,
bool a_sampling = false ) const
MCGIDI_TRUE_VIRTUAL;
1577 double a_temperature,
double a_energy,
bool a_sampling = false ) const
MCGIDI_TRUE_VIRTUAL;
1580 template <typename RNG>
1616 bool m_hasURR_probabilityTables;
1617 double m_URR_domainMin;
1618 double m_URR_domainMax;
1620 bool m_upscatterModelASupported;
1630 bool m_isPhotoAtomic;
1631 bool m_continuousEnergy;
1640 bool a_makePhotonEmissionProbabilitiesOne,
bool a_zeroNuclearLevelEnergyWidth );
1641 LUPI_HOST_DEVICE void setUpscatterModelASupported(
bool a_upscatterModelASupported ) { m_upscatterModelASupported = a_upscatterModelASupported; }
1647 GIDI::ExcludeReactionsSet const &a_reactionsToExclude, std::size_t a_reactionsToExcludeOffset = 0,
bool a_allowFixedGrid =
true );
1668 template <
typename RNG,
typename PUSHBACK>
1671 LUPI_HOST void setUserParticleIndex2(
int a_particleIndex,
int a_userParticleIndex );
1672 LUPI_HOST void setUserParticleIndexViaIntid2(
int a_particleIntid,
int a_userParticleIndex );
1682 if( m_continuousEnergy )
return( m_heatedCrossSections.minimumEnergy( ) );
1683 return( m_heatedMultigroupCrossSections.minimumEnergy( ) ); }
1685 if( m_continuousEnergy )
return( m_heatedCrossSections.maximumEnergy( ) );
1686 return( m_heatedMultigroupCrossSections.maximumEnergy( ) ); }
1712 if( m_continuousEnergy )
return( m_heatedCrossSections.threshold( a_index ) );
1713 return( m_heatedMultigroupCrossSections.threshold( a_index ) ); }
1716 std::size_t a_hashIndex,
double a_temperature,
double a_energy,
bool a_sampling =
false )
const ;
1718 double *a_crossSectionVector )
const ;
1720 std::size_t a_hashIndex,
double a_temperature,
double a_energy,
bool a_sampling =
false )
const ;
1723 template <
typename RNG>
1725 template <
typename RNG>
1727 std::size_t a_hashIndex,
double a_crossSection, RNG && a_rng )
const ;
1732 LUPI_HOST_DEVICE double gain( std::size_t a_hashIndex,
double a_temperature,
double a_energy,
int a_particleIndex )
const ;
1754 std::size_t m_numberOfReactions;
1755 std::size_t m_numberOfOrphanProducts;
1756 double m_minimumEnergy;
1757 double m_maximumEnergy;
1763 GIDI::ExcludeReactionsSet const &a_reactionsToExclude, std::size_t a_reactionsToExcludeOffset = 0,
bool a_allowFixedGrid =
true );
1767 LUPI_HOST void setUserParticleIndex2(
int a_particleIndex,
int a_userParticleIndex );
1768 LUPI_HOST void setUserParticleIndexViaIntid2(
int a_particleIntid,
int a_userParticleIndex );
1805 std::size_t a_hashIndex,
double a_temperature,
double a_energy,
bool a_sampling =
false )
const ;
1807 double *a_crossSectionVector )
const ;
1809 std::size_t a_hashIndex,
double a_temperature,
double a_energy,
bool a_sampling =
false )
const ;
1811 template <
typename RNG>
1813 std::size_t a_hashIndex,
double a_crossSection, RNG && a_rng )
const ;
1818 LUPI_HOST_DEVICE double gain( std::size_t a_hashIndex,
double a_temperature,
double a_energy,
int a_particleIndex )
const ;
1836 std::size_t m_numberOfTNSLReactions;
1837 double m_TNSL_maximumEnergy;
1838 double m_TNSL_maximumTemperature;
1847 GIDI::ExcludeReactionsSet const &a_reactionsToExclude, std::size_t a_reactionsToExcludeOffset = 0,
bool a_allowFixedGrid =
true );
1856 LUPI_HOST void setUserParticleIndex2(
int a_particleIndex,
int a_userParticleIndex );
1857 LUPI_HOST void setUserParticleIndexViaIntid2(
int a_particleIntid,
int a_userParticleIndex );
1894 std::size_t a_hashIndex,
double a_temperature,
double a_energy,
bool a_sampling =
false )
const ;
1896 double *a_crossSectionVector )
const ;
1898 std::size_t a_hashIndex,
double a_temperature,
double a_energy,
bool a_sampling =
false )
const ;
1900 template <
typename RNG>
1902 std::size_t a_hashIndex,
double a_crossSection, RNG && a_rng )
const ;
1907 LUPI_HOST_DEVICE double gain( std::size_t a_hashIndex,
double a_temperature,
double a_energy,
int a_particleIndex )
const ;
1924 std::size_t a_reactionsToExcludeOffset = 0,
bool a_allowFixedGrid =
true );
1942 Distributions::Distribution *a_distribution );
G4ThreadLocal T * G4GeomSplitter< T >::offset
#define MCGIDI_VIRTUAL_FUNCTION
#define MCGIDI_TRUE_VIRTUAL
LUPI_HOST_DEVICE double energy() const
LUPI_HOST_DEVICE ~ACE_URR_probabilityTable()
Vector< double > m_propabilities
Vector< double > m_crossSections
LUPI_HOST_DEVICE double sample(double a_rng_Value)
LUPI_HOST_DEVICE ACE_URR_probabilityTable()
LUPI_HOST_DEVICE void serialize(LUPI::DataBuffer &a_buffer, LUPI::DataBuffer::Mode a_mode)
LUPI_HOST ACE_URR_probabilityTablesFromGIDI()
LUPI_HOST ~ACE_URR_probabilityTablesFromGIDI()
std::map< std::string, ACE_URR_probabilityTables * > m_ACE_URR_probabilityTables
LUPI_HOST_DEVICE void reserve(std::size_t a_capacity)
LUPI_HOST_DEVICE std::size_t size() const
Vector< ACE_URR_probabilityTable * > m_ACE_URR_probabilityTables
LUPI_HOST_DEVICE void push_back(ACE_URR_probabilityTable *a_ACE_URR_probabilityTable)
LUPI_HOST_DEVICE void serialize(LUPI::DataBuffer &a_buffer, LUPI::DataBuffer::Mode a_mode)
LUPI_HOST_DEVICE ACE_URR_probabilityTables()
LUPI_HOST_DEVICE std::size_t capacity() const
LUPI_HOST_DEVICE ~ACE_URR_probabilityTables()
LUPI_HOST_DEVICE double sample(double a_energy, double a_rng_Value)
Vector< double > m_energies
LUPI_HOST_DEVICE double domainMin() const
LUPI_HOST_DEVICE double domainMax() const
LUPI_HOST_DEVICE int userParticleIndex() const
LUPI_HOST_DEVICE Vector< MCGIDI_FLOAT > const & gain() 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
LUPI_HOST_DEVICE ContinuousEnergyGain()
LUPI_HOST_DEVICE int particleIntid() const
LUPI_HOST_DEVICE void serialize(LUPI::DataBuffer &a_buffer, LUPI::DataBuffer::Mode a_mode)
LUPI_HOST void adjustGain(std::size_t a_energy_index, double a_gain)
LUPI_HOST_DEVICE int particleIndex() const
LUPI_HOST ContinuousEnergyGain & operator=(ContinuousEnergyGain const &a_continuousEnergyGain)
LUPI_HOST void setUserParticleIndexViaIntid(int a_particleIntid, int a_userParticleIndex)
LUPI_HOST void setUserParticleIndex(int a_particleIndex, int a_userParticleIndex)
LUPI_HOST_DEVICE double rate() const
LUPI_HOST void setUserParticleIndex(int a_particleIndex, int a_userParticleIndex)
LUPI_HOST_DEVICE DelayedNeutron()
LUPI_HOST_DEVICE int delayedNeutronIndex() const
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 Product const & product() const
LUPI_HOST_DEVICE ~DelayedNeutron()
LUPI_HOST_DEVICE ~GRIN_captureLevelProbability()
LUPI_HOST_DEVICE int sampleCaptureLevel(ProtareSingle const *a_protare, double a_energy, RNG &&a_rng)
LUPI_HOST_DEVICE GRIN_captureLevelProbability()
LUPI_HOST_DEVICE void serialize(LUPI::DataBuffer &a_buffer, LUPI::DataBuffer::Mode a_mode)
LUPI_HOST_DEVICE GRIN_captureToCompound()
LUPI_HOST_DEVICE std::size_t index() const
LUPI_HOST_DEVICE void serialize(LUPI::DataBuffer &a_buffer, LUPI::DataBuffer::Mode a_mode)
LUPI_HOST_DEVICE ~GRIN_captureToCompound()
LUPI_HOST_DEVICE int sampleCaptureLevel(ProtareSingle const *a_protare, double a_energy, RNG &&a_rng, bool a_checkEnergy) const
LUPI_HOST void setUserParticleIndexViaIntid(int a_particleIntid, int a_userParticleIndex)
LUPI_HOST_DEVICE bool sampleProducts(ProtareSingle const *a_protare, double a_projectileEnergy, Sampling::Input &a_input, RNG &&a_rng, PUSHBACK &&a_push_back, Sampling::ProductHandler &a_products) const
LUPI_HOST_DEVICE void serialize(LUPI::DataBuffer &a_buffer, LUPI::DataBuffer::Mode a_mode)
LUPI_HOST_DEVICE GRIN_capture()
LUPI_HOST void setUserParticleIndex(int a_particleIndex, int a_userParticleIndex)
LUPI_HOST_DEVICE ~GRIN_capture()
LUPI_HOST_DEVICE int sampleLevelIndex(double a_projectileEnergy, double a_random) const
LUPI_HOST_DEVICE void serialize(LUPI::DataBuffer &a_buffer, LUPI::DataBuffer::Mode a_mode)
LUPI_HOST_DEVICE GRIN_inelasticForEnergy()
LUPI_HOST_DEVICE ~GRIN_inelasticForEnergy()
LUPI_HOST void setUserParticleIndex(int a_particleIndex, int a_userParticleIndex)
LUPI_HOST_DEVICE ~GRIN_inelastic()
LUPI_HOST_DEVICE bool sampleProducts(ProtareSingle const *a_protare, double a_projectileEnergy, Sampling::Input &a_input, RNG &&a_rng, PUSHBACK &&a_push_back, Sampling::ProductHandler &a_products) const
LUPI_HOST void setUserParticleIndexViaIntid(int a_particleIntid, int a_userParticleIndex)
LUPI_HOST_DEVICE GRIN_inelastic()
LUPI_HOST_DEVICE void serialize(LUPI::DataBuffer &a_buffer, LUPI::DataBuffer::Mode a_mode)
LUPI_HOST_DEVICE ~GRIN_levelsAndProbabilities()
LUPI_HOST_DEVICE int sampleInelasticLevel(double a_energy, RNG &&a_rng)
LUPI_HOST_DEVICE GRIN_levelsAndProbabilities()
Vector< bool > m_isModelledLevel
LUPI_HOST_DEVICE void serialize(LUPI::DataBuffer &a_buffer, LUPI::DataBuffer::Mode a_mode)
LUPI_HOST void set(std::vector< int > const &a_levels, std::vector< double > const &a_probabilities)
Vector< double > m_summedProbabilities
LUPI_HOST_DEVICE Vector< double > const & energies() const
LUPI_HOST_DEVICE HeatedCrossSectionContinuousEnergy()
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 depositionMomentum(std::size_t a_hashIndex, double a_energy) const
LUPI_HOST_DEVICE bool hasURR_probabilityTables() const
LUPI_HOST_DEVICE double maximumEnergy() const
LUPI_HOST_DEVICE std::size_t thresholdOffset(std::size_t a_reactionIndex) const
LUPI_HOST_DEVICE double gain(std::size_t a_hashIndex, double a_energy, int a_particleIndex) const
LUPI_HOST_DEVICE double URR_domainMax() const
LUPI_HOST_DEVICE double depositionEnergy(std::size_t a_hashIndex, double a_energy) const
LUPI_HOST_DEVICE double temperature() const
LUPI_HOST void setUserParticleIndexViaIntid(int a_particleIntid, int a_userParticleIndex)
LUPI_HOST_DEVICE bool reactionHasURR_probabilityTables(std::size_t a_index) const
LUPI_HOST_DEVICE double threshold(std::size_t a_reactionIndex) const
LUPI_HOST_DEVICE double productionEnergy(std::size_t a_hashIndex, double a_energy) const
LUPI_HOST_DEVICE void serialize(LUPI::DataBuffer &a_buffer, LUPI::DataBuffer::Mode a_mode)
LUPI_HOST_DEVICE double minimumEnergy() 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_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 ~HeatedCrossSectionContinuousEnergy()
LUPI_HOST_DEVICE Vector< MCGIDI_FLOAT > & totalCrossSection()
LUPI_HOST_DEVICE std::size_t evaluationInfo(std::size_t a_hashIndex, double a_energy, double *a_energyFraction) const
LUPI_HOST GIDI::Functions::XYs1d crossSectionAsGIDI_XYs1d() const
LUPI_HOST GIDI::Functions::XYs1d reactionCrossSectionAsGIDI_XYs1d(std::size_t a_reactionIndex) const
LUPI_HOST_DEVICE double URR_domainMin() 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
LUPI_HOST HeatedReactionCrossSectionContinuousEnergy const * reactionCrossSection(std::size_t a_index) const
LUPI_HOST_DEVICE std::size_t numberOfReactions() const
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_DEVICE double gainViaIntid(std::size_t a_hashIndex, int a_particleIntid) const
LUPI_HOST_DEVICE double augmentedCrossSection(std::size_t a_hashIndex) const
LUPI_HOST_DEVICE void serialize(LUPI::DataBuffer &a_buffer, LUPI::DataBuffer::Mode a_mode)
LUPI_HOST void write(FILE *a_file) const
LUPI_HOST void setUserParticleIndex(int a_particleIndex, int a_userParticleIndex)
LUPI_HOST_DEVICE double depositionEnergy(std::size_t a_hashIndex) const
LUPI_HOST void setUserParticleIndexViaIntid(int a_particleIntid, int a_userParticleIndex)
LUPI_HOST_DEVICE double gain(std::size_t a_hashIndex, int a_particleIndex) const
LUPI_HOST_DEVICE std::size_t numberOfReactions() const
LUPI_HOST_DEVICE HeatedReactionCrossSectionMultiGroup * operator[](std::size_t a_index) const
LUPI_HOST_DEVICE double reactionCrossSection(std::size_t a_reactionIndex, std::size_t a_hashIndex, bool a_sampling=false) const
LUPI_HOST_DEVICE std::size_t thresholdOffset(std::size_t a_index) const
LUPI_HOST_DEVICE double productionEnergy(std::size_t a_hashIndex) const
LUPI_HOST_DEVICE ~HeatedCrossSectionMultiGroup()
LUPI_HOST_DEVICE HeatedCrossSectionMultiGroup()
LUPI_HOST_DEVICE double depositionMomentum(std::size_t a_hashIndex) const
LUPI_HOST HeatedCrossSectionMultiGroup(LUPI::StatusMessageReporting &a_smr, GIDI::ProtareSingle const &a_protare, SetupInfo &a_setupInfo, Transporting::MC const &a_settings, GIDI::Styles::TemperatureInfo const &a_temperatureInfo, GIDI::Transporting::Particles const &a_particles, std::vector< GIDI::Reaction const * > const &a_reactions, std::string const &a_label, bool a_zeroReactions, GIDI::ExcludeReactionsSet const &a_reactionsToExclude)
LUPI_HOST_DEVICE double threshold(std::size_t a_index) const
LUPI_HOST_DEVICE double crossSection(std::size_t a_hashIndex, bool a_sampling=false) const
LUPI_HOST_DEVICE Vector< double > & totalCrossSection()
LUPI_HOST_DEVICE double threshold(std::size_t a_index) const
LUPI_HOST GIDI::Functions::XYs1d crossSectionAsGIDI_XYs1d(double a_temperature) const
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
Vector< HeatedCrossSectionContinuousEnergy * > & heatedCrossSections()
LUPI_HOST_DEVICE bool reactionHasURR_probabilityTables(std::size_t a_index) const
LUPI_HOST_DEVICE double productionEnergy(std::size_t a_hashIndex, double a_temperature, double a_energy) const
LUPI_HOST_DEVICE double depositionEnergy(std::size_t a_hashIndex, double a_temperature, double a_energy) const
LUPI_HOST_DEVICE HeatedCrossSectionsContinuousEnergy()
LUPI_HOST_DEVICE bool hasURR_probabilityTables() const
LUPI_HOST_DEVICE void clear()
LUPI_HOST_DEVICE Vector< double > const & temperatures() const
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 URR_domainMax() 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 double gain(std::size_t a_hashIndex, double a_temperature, double a_energy, int a_particleIndex) const
LUPI_HOST void setUserParticleIndex(int a_particleIndex, int a_userParticleIndex)
LUPI_HOST_DEVICE ~HeatedCrossSectionsContinuousEnergy()
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 void setUserParticleIndexViaIntid(int a_particleIntid, int a_userParticleIndex)
LUPI_HOST_DEVICE double depositionMomentum(std::size_t a_hashIndex, double a_temperature, double a_energy) const
LUPI_HOST_DEVICE double URR_domainMin() const
LUPI_HOST GIDI::Functions::XYs1d reactionCrossSectionAsGIDI_XYs1d(std::size_t a_reactionIndex, double a_temperature) 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
LUPI_HOST_DEVICE double minimumEnergy() const
LUPI_HOST_DEVICE double gainViaIntid(std::size_t a_hashIndex, double a_temperature, double a_energy, int a_particleIntid) const
LUPI_HOST_DEVICE void crossSectionVector(double a_temperature, double a_userFactor, std::size_t a_numberAllocated, double *a_crossSectionVector) const
LUPI_HOST_DEVICE void serialize(LUPI::DataBuffer &a_buffer, LUPI::DataBuffer::Mode a_mode)
LUPI_HOST_DEVICE double maximumEnergy() const
LUPI_HOST_DEVICE double productionEnergy(std::size_t a_hashIndex, double a_temperature) const
LUPI_HOST_DEVICE Vector< HeatedCrossSectionMultiGroup * > const & heatedCrossSections() const
LUPI_HOST void print() const
LUPI_HOST_DEVICE Vector< double > const & projectileMultiGroupBoundariesCollapsed() const
LUPI_HOST_DEVICE double depositionMomentum(std::size_t a_hashIndex, double a_temperature) const
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 Vector< double > const & temperatures() const
LUPI_HOST_DEVICE double depositionEnergy(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 void write(FILE *a_file, int a_temperatureIndex) const
LUPI_HOST_DEVICE void serialize(LUPI::DataBuffer &a_buffer, LUPI::DataBuffer::Mode a_mode)
LUPI_HOST_DEVICE double crossSection(std::size_t a_hashIndex, double a_temperature, bool a_sampling=false) const
LUPI_HOST_DEVICE int multiGroupThresholdIndex(std::size_t a_index) 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 minimumEnergy() const
LUPI_HOST_DEVICE double threshold(std::size_t a_index) const
LUPI_HOST_DEVICE HeatedCrossSectionsMultiGroup()
LUPI_HOST void setUserParticleIndexViaIntid(int a_particleIntid, int a_userParticleIndex)
LUPI_HOST_DEVICE ~HeatedCrossSectionsMultiGroup()
LUPI_HOST_DEVICE double maximumEnergy() const
LUPI_HOST_DEVICE void crossSectionVector(double a_temperature, double a_userFactor, std::size_t a_numberAllocated, double *a_crossSectionVector) const
LUPI_HOST void setUserParticleIndex(int a_particleIndex, int a_userParticleIndex)
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 double gainViaIntid(std::size_t a_hashIndex, double a_temperature, int a_particleIntid) const
LUPI_HOST_DEVICE Probabilities::ProbabilityBase2d * URR_probabilityTables() const
LUPI_HOST Vector< MCGIDI_FLOAT > const & crossSections() const
LUPI_HOST GIDI::Functions::XYs1d crossSectionAsGIDI_XYs1d(double a_temperature, Vector< double > const &a_energies) const
LUPI_HOST_DEVICE double URR_domainMin() const
LUPI_HOST_DEVICE bool hasURR_probabilityTables() const
LUPI_HOST_DEVICE double crossSection(std::size_t a_index) const
LUPI_HOST_DEVICE double threshold() const
LUPI_HOST_DEVICE Transporting::URR_mode URR_mode() const
LUPI_HOST_DEVICE void serialize(LUPI::DataBuffer &a_buffer, LUPI::DataBuffer::Mode a_mode)
LUPI_HOST_DEVICE double URR_domainMax() 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
LUPI_HOST_DEVICE std::size_t offset() const
LUPI_HOST_DEVICE HeatedReactionCrossSectionContinuousEnergy()
LUPI_HOST_DEVICE ~HeatedReactionCrossSectionContinuousEnergy()
LUPI_HOST_DEVICE ACE_URR_probabilityTables * _ACE_URR_probabilityTables() const
LUPI_HOST HeatedReactionCrossSectionMultiGroup(SetupInfo &a_setupInfo, Transporting::MC const &a_settings, std::size_t a_offset, std::vector< double > const &a_crossSection, double a_threshold)
LUPI_HOST void write(FILE *a_file, std::size_t a_reactionIndex) const
LUPI_HOST_DEVICE double operator[](std::size_t a_index) const
LUPI_HOST_DEVICE HeatedReactionCrossSectionMultiGroup()
LUPI_HOST_DEVICE std::size_t offset() const
LUPI_HOST_DEVICE void serialize(LUPI::DataBuffer &a_buffer, LUPI::DataBuffer::Mode a_mode)
LUPI_HOST_DEVICE double augmentedThresholdCrossSection() const
LUPI_HOST_DEVICE double threshold() const
LUPI_HOST_DEVICE double crossSection(std::size_t a_index, bool a_sampling=false) const
LUPI_HOST void write(FILE *a_file) const
LUPI_HOST_DEVICE int particleIntid() const
LUPI_HOST_DEVICE Vector< double > const & gain() const
LUPI_HOST_DEVICE MultiGroupGain()
LUPI_HOST_DEVICE int userParticleIndex() const
LUPI_HOST void setUserParticleIndexViaIntid(int a_particleIntid, int a_userParticleIndex)
LUPI_HOST MultiGroupGain & operator=(MultiGroupGain const &a_multiGroupGain)
LUPI_HOST void setUserParticleIndex(int a_particleIndex, int a_userParticleIndex)
LUPI_HOST_DEVICE void serialize(LUPI::DataBuffer &a_buffer, LUPI::DataBuffer::Mode a_mode)
LUPI_HOST_DEVICE int particleIndex() const
LUPI_HOST_DEVICE double gain(std::size_t a_hashIndex) const
LUPI_HOST_DEVICE std::size_t index(double a_domain) const
LUPI_HOST_DEVICE MultiGroupHash()
LUPI_HOST_DEVICE void serialize(LUPI::DataBuffer &a_buffer, LUPI::DataBuffer::Mode a_mode)
LUPI_HOST MultiGroupHash & operator=(MultiGroupHash const &a_rhs)=default
LUPI_HOST_DEVICE Vector< double > const & boundaries() const
LUPI_HOST_DEVICE double probability() const
LUPI_HOST_DEVICE NuclideGammaBranchInfo()
LUPI_HOST_DEVICE void serialize(LUPI::DataBuffer &a_buffer, LUPI::DataBuffer::Mode a_mode)
LUPI_HOST_DEVICE int residualStateIndex() 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
LUPI_HOST_DEVICE double gammaEnergy() const
LUPI_HOST_DEVICE double photonEmissionProbability() const
LUPI_HOST_DEVICE bool residualStateKindIsContinuum() const
LUPI_HOST_DEVICE NuclideGammaBranchStateInfo()
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
LUPI_HOST_DEVICE void serialize(LUPI::DataBuffer &a_buffer, LUPI::DataBuffer::Mode a_mode)
LUPI_HOST_DEVICE Vector< std::size_t > const & branchIndices() const
LUPI_HOST_DEVICE double nuclearLevelEnergy() const
LUPI_HOST_DEVICE char const * state() const
LUPI_HOST_DEVICE double averageGammaEnergy() const
LUPI_HOST_DEVICE double multiplicity() const
LUPI_HOST_DEVICE int intid() const
LUPI_HOST_DEVICE double nuclearLevelEnergyWidth() const
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
LUPI_HOST_DEVICE void serialize(LUPI::DataBuffer &a_buffer, LUPI::DataBuffer::Mode a_mode)
LUPI_HOST_DEVICE double finalQ(double a_x1) const
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 bool hasFission() const
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
LUPI_HOST_DEVICE Functions::Function1d_d1 * Q()
LUPI_HOST_DEVICE Vector< Product * > const & products() const
Vector< DelayedNeutron * > delayedNeutrons() const
LUPI_HOST_DEVICE OutputChannel()
LUPI_HOST void setUserParticleIndexViaIntid(int a_particleIntid, int a_userParticleIndex)
LUPI_HOST_DEVICE double productAverageMultiplicity(int a_index, double a_projectileEnergy) const
LUPI_HOST_DEVICE bool isFission() const
LUPI_HOST void setUserParticleIndex(int a_particleIndex, int a_userParticleIndex)
LUPI_HOST_DEVICE bool isTwoBody() 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 Product * operator[](std::size_t a_index)
LUPI_HOST_DEVICE double productAverageMultiplicityViaIntid(int a_intid, double a_projectileEnergy) const
LUPI_HOST_DEVICE DelayedNeutron const * delayedNeutron(std::size_t a_index) const
LUPI_HOST void setModelDBRC_data(Sampling::Upscatter::ModelDBRC_data *a_modelDBRC_data)
LUPI_HOST_DEVICE ~OutputChannel()
LUPI_HOST void setUserParticleIndex(int a_particleIndex, int a_userParticleIndex)
LUPI_HOST_DEVICE Product()
LUPI_HOST_DEVICE bool isCompleteParticle() const
LUPI_HOST_DEVICE Distributions::Distribution const * distribution() const
LUPI_HOST_DEVICE int userParticleIndex() const
LUPI_HOST void distribution(Distributions::Distribution *a_distribution)
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
LUPI_HOST_DEVICE ~Product()
LUPI_HOST void setMultiplicity(Functions::Function1d *a_multiplicity)
LUPI_HOST_DEVICE Distributions::Distribution * distribution()
LUPI_HOST_DEVICE int index() const
LUPI_HOST_DEVICE double productAverageMultiplicity(int a_index, double a_projectileEnergy) const
LUPI_HOST_DEVICE double productAverageMultiplicityViaIntid(int a_intid, double a_projectileEnergy) const
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
LUPI_HOST String const & ID() const
LUPI_HOST void setModelDBRC_data(Sampling::Upscatter::ModelDBRC_data *a_modelDBRC_data)
LUPI_HOST_DEVICE OutputChannel * outputChannel()
LUPI_HOST_DEVICE TwoBodyOrder twoBodyOrder() const
LUPI_HOST_DEVICE void sampleFinalState(ProtareSingle const *a_protare, double a_projectileEnergy, Sampling::Input &a_input, RNG &&a_rng, PUSHBACK &&a_push_back, Sampling::ProductHandler &a_products) const
LUPI_HOST_DEVICE Functions::Function1d const * multiplicity() const
LUPI_HOST_DEVICE double finalQ(double a_x1) const
LUPI_HOST_DEVICE double excitationEnergy() const
LUPI_HOST void setUserParticleIndexViaIntid(int a_particleIntid, int a_userParticleIndex)
LUPI_HOST_DEVICE int intid() const
LUPI_HOST_DEVICE bool hasFission() const
LUPI_HOST_DEVICE void serialize(LUPI::DataBuffer &a_buffer, LUPI::DataBuffer::Mode a_mode)
LUPI_HOST_DEVICE double mass() const
LUPI_HOST_DEVICE String label() const
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 int URR_index() const
LUPI_HOST_DEVICE std::size_t numberOfOrphanProducts() const
LUPI_HOST_DEVICE Vector< double > const & upscatterModelAGroupVelocities() const
LUPI_HOST_DEVICE double maximumEnergy() const
LUPI_HOST_DEVICE std::size_t numberOfProtares() const
LUPI_HOST ProtareComposite(LUPI::StatusMessageReporting &a_smr, GIDI::ProtareComposite 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)
LUPI_HOST Vector< double > const & projectileMultiGroupBoundaries() const
LUPI_HOST_DEVICE ProtareComposite()
LUPI_HOST_DEVICE long sizeOf2() const
Vector< ProtareSingle * > protares() const
LUPI_HOST Vector< double > const & projectileMultiGroupBoundariesCollapsed() const
LUPI_HOST_DEVICE std::size_t numberOfReactions() const
LUPI_HOST_DEVICE double minimumEnergy() const
LUPI_HOST_DEVICE ProtareSingle()
LUPI_HOST_DEVICE const Vector< NuclideGammaBranchInfo * > & branches() const
LUPI_HOST_DEVICE Reaction const * orphanProduct(std::size_t a_index) const
LUPI_HOST_DEVICE Vector< double > const & upscatterModelACrossSection() const
LUPI_HOST Vector< double > const & projectileMultiGroupBoundaries() const
LUPI_HOST_DEVICE Vector< double > const & upscatterModelAGroupEnergies() const
LUPI_HOST_DEVICE HeatedCrossSectionsMultiGroup const & heatedMultigroupCrossSections() const
LUPI_HOST_DEVICE double maximumEnergy() const
LUPI_HOST_DEVICE Reaction const * reaction(std::size_t a_index) const
LUPI_HOST_DEVICE bool continuousEnergy() const
LUPI_HOST_DEVICE Vector< Reaction * > const & reactions() const
LUPI_HOST_DEVICE bool isPhotoAtomic() const
LUPI_HOST_DEVICE double URR_domainMin() const
LUPI_HOST_DEVICE HeatedCrossSectionsContinuousEnergy & heatedCrossSections()
LUPI_HOST_DEVICE const Vector< NuclideGammaBranchStateInfo * > & nuclideGammaBranchStateInfos() const
LUPI_HOST_DEVICE HeatedCrossSectionsContinuousEnergy const & heatedCrossSections() const
LUPI_HOST_DEVICE double threshold(std::size_t a_index) const
LUPI_HOST_DEVICE std::size_t numberOfOrphanProducts() const
LUPI_HOST Vector< double > const & projectileMultiGroupBoundariesCollapsed() const
LUPI_HOST_DEVICE Vector< double > const & upscatterModelAGroupVelocities() const
LUPI_HOST_DEVICE int URR_index() const
LUPI_HOST_DEVICE String interaction() const
LUPI_HOST_DEVICE void setURR_index(int a_URR_index)
LUPI_HOST_DEVICE std::size_t numberOfReactions() const
LUPI_HOST_DEVICE double minimumEnergy() const
LUPI_HOST_DEVICE bool reactionHasURR_probabilityTables(std::size_t a_index) const
LUPI_HOST_DEVICE std::size_t numberOfProtares() const
LUPI_HOST_DEVICE HeatedCrossSectionsMultiGroup & heatedMultigroupCrossSections()
LUPI_HOST_DEVICE bool fixedGrid() const
LUPI_HOST_DEVICE bool hasURR_probabilityTables() const
LUPI_HOST_DEVICE bool upscatterModelASupported() const
LUPI_HOST_DEVICE Vector< Reaction * > const & orphanProducts() const
LUPI_HOST_DEVICE long sizeOf2() const
LUPI_HOST_DEVICE double URR_domainMax() const
LUPI_HOST_DEVICE ProtareTNSL()
LUPI_HOST_DEVICE double TNSL_maximumTemperature() const
LUPI_HOST_DEVICE double URR_domainMax() const
LUPI_HOST_DEVICE std::size_t numberOfOrphanProducts() const
LUPI_HOST_DEVICE bool hasURR_probabilityTables() const
LUPI_HOST_DEVICE std::size_t numberOfReactions() const
LUPI_HOST_DEVICE ProtareSingle const * TNSL() const
LUPI_HOST_DEVICE std::size_t numberOfProtares() const
LUPI_HOST_DEVICE Reaction const * orphanProduct(std::size_t a_index) const
LUPI_HOST_DEVICE ProtareSingle const * protareWithElastic() const
LUPI_HOST Vector< double > const & projectileMultiGroupBoundaries() const
LUPI_HOST_DEVICE Vector< double > const & upscatterModelAGroupVelocities() const
LUPI_HOST_DEVICE double TNSL_maximumEnergy() const
LUPI_HOST ProtareTNSL(LUPI::StatusMessageReporting &a_smr, GIDI::ProtareTNSL 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)
LUPI_HOST_DEVICE bool hasIncoherentDoppler() const
LUPI_HOST_DEVICE double minimumEnergy() const
LUPI_HOST_DEVICE bool hasFission() const
LUPI_HOST_DEVICE int URR_index() const
LUPI_HOST_DEVICE double URR_domainMin() const
LUPI_HOST_DEVICE double maximumEnergy() const
LUPI_HOST_DEVICE long sizeOf2() const
LUPI_HOST Vector< double > const & projectileMultiGroupBoundariesCollapsed() const
LUPI_HOST_DEVICE ProtareSingle const * protareWithoutElastic() const
LUPI_HOST_DEVICE int projectileIntid() const
LUPI_HOST_DEVICE double targetExcitationEnergy() const
LUPI_HOST_DEVICE String const & targetID() const
LUPI_HOST void setUserParticleIndex(int a_particleIndex, int a_userParticleIndex)
LUPI_HOST_DEVICE ProtareType protareType() const
LUPI_HOST Vector< int > const & productIndices(bool a_transportablesOnly) const
LUPI_HOST Protare(ProtareType a_protareType, GIDI::Protare const &a_protare, Transporting::MC const &a_settings, PoPI::Database const &a_pops)
LUPI_HOST GIDI::Frame projectileFrame() const
LUPI_HOST_DEVICE double projectileExcitationEnergy() const
MCGIDI_VIRTUAL_FUNCTION LUPI_HOST_DEVICE double depositionMomentum(std::size_t a_hashIndex, double a_temperature, double a_energy) const MCGIDI_TRUE_VIRTUAL
LUPI_HOST_DEVICE void serialize(LUPI::DataBuffer &a_buffer, LUPI::DataBuffer::Mode a_mode)
MCGIDI_VIRTUAL_FUNCTION LUPI_HOST_DEVICE bool hasIncoherentDoppler() const MCGIDI_TRUE_VIRTUAL
LUPI_HOST void setUserParticleIndexViaIntid(int a_particleIntid, int a_userParticleIndex)
MCGIDI_VIRTUAL_FUNCTION LUPI_HOST_DEVICE ProtareSingle const * protareWithReaction(std::size_t a_index) const MCGIDI_TRUE_VIRTUAL
LUPI_HOST_DEVICE long memorySize()
MCGIDI_VIRTUAL_FUNCTION LUPI_HOST Vector< double > const & projectileMultiGroupBoundariesCollapsed() const MCGIDI_TRUE_VIRTUAL
LUPI_HOST_DEVICE int projectileIndex() const
LUPI_HOST_DEVICE int userPhotonIndex() const
MCGIDI_VIRTUAL_FUNCTION LUPI_HOST_DEVICE Vector< double > temperatures(std::size_t a_index=0) const MCGIDI_TRUE_VIRTUAL
MCGIDI_VIRTUAL_FUNCTION LUPI_HOST_DEVICE double minimumEnergy() const MCGIDI_TRUE_VIRTUAL
LUPI_HOST_DEVICE long sizeOf() const
LUPI_HOST Vector< int > const & userProductIndices(bool a_transportablesOnly) const
MCGIDI_VIRTUAL_FUNCTION LUPI_HOST_DEVICE double depositionEnergy(std::size_t a_hashIndex, double a_temperature, double a_energy) const MCGIDI_TRUE_VIRTUAL
MCGIDI_VIRTUAL_FUNCTION LUPI_HOST_DEVICE double crossSection(URR_protareInfos const &a_URR_protareInfos, std::size_t a_hashIndex, double a_temperature, double a_energy, bool a_sampling=false) const MCGIDI_TRUE_VIRTUAL
MCGIDI_VIRTUAL_FUNCTION LUPI_HOST_DEVICE std::size_t numberOfReactions() const MCGIDI_TRUE_VIRTUAL
MCGIDI_VIRTUAL_FUNCTION LUPI_HOST_DEVICE Reaction const * reaction(std::size_t a_index) const MCGIDI_TRUE_VIRTUAL
MCGIDI_VIRTUAL_FUNCTION LUPI_HOST_DEVICE double gain(std::size_t a_hashIndex, double a_temperature, double a_energy, int a_particleIndex) const MCGIDI_TRUE_VIRTUAL
MCGIDI_VIRTUAL_FUNCTION LUPI_HOST_DEVICE double URR_domainMin() const MCGIDI_TRUE_VIRTUAL
MCGIDI_VIRTUAL_FUNCTION LUPI_HOST_DEVICE std::size_t numberOfOrphanProducts() const MCGIDI_TRUE_VIRTUAL
LUPI_HOST_DEVICE int targetIndex() const
MCGIDI_VIRTUAL_FUNCTION LUPI_HOST_DEVICE double 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 MCGIDI_TRUE_VIRTUAL
LUPI_HOST_DEVICE int projectileUserIndex() const
LUPI_HOST_DEVICE int photonIndex() const
MCGIDI_VIRTUAL_FUNCTION LUPI_HOST_DEVICE Reaction const * orphanProduct(std::size_t a_index) const MCGIDI_TRUE_VIRTUAL
MCGIDI_VIRTUAL_FUNCTION LUPI_HOST_DEVICE double URR_domainMax() const MCGIDI_TRUE_VIRTUAL
LUPI_HOST_DEVICE void serializeCommon(LUPI::DataBuffer &a_buffer, LUPI::DataBuffer::Mode a_mode)
LUPI_HOST_DEVICE void serialize2(LUPI::DataBuffer &a_buffer, LUPI::DataBuffer::Mode a_mode)
MCGIDI_VIRTUAL_FUNCTION LUPI_HOST_DEVICE std::size_t numberOfProtares() const MCGIDI_TRUE_VIRTUAL
MCGIDI_VIRTUAL_FUNCTION LUPI_HOST_DEVICE Vector< double > const & upscatterModelAGroupVelocities() const MCGIDI_TRUE_VIRTUAL
MCGIDI_VIRTUAL_FUNCTION LUPI_HOST_DEVICE bool hasURR_probabilityTables() const MCGIDI_TRUE_VIRTUAL
MCGIDI_VIRTUAL_FUNCTION LUPI_HOST Vector< double > const & projectileMultiGroupBoundaries() const MCGIDI_TRUE_VIRTUAL
MCGIDI_VIRTUAL_FUNCTION LUPI_HOST_DEVICE std::size_t sampleReaction(Sampling::Input &a_input, URR_protareInfos const &a_URR_protareInfos, std::size_t a_hashIndex, double a_crossSection, RNG &&a_rng) const MCGIDI_TRUE_VIRTUAL
LUPI_HOST_DEVICE String const & projectileID() const
LUPI_HOST Vector< int > const & productIntids(bool a_transportablesOnly) const
MCGIDI_VIRTUAL_FUNCTION LUPI_HOST_DEVICE bool hasFission() const MCGIDI_TRUE_VIRTUAL
LUPI_HOST_DEVICE int targetUserIndex() const
LUPI_HOST_DEVICE Protare(ProtareType a_protareType)
MCGIDI_VIRTUAL_FUNCTION LUPI_HOST_DEVICE int URR_index() const MCGIDI_TRUE_VIRTUAL
MCGIDI_VIRTUAL_FUNCTION LUPI_HOST_DEVICE double threshold(std::size_t a_index) const MCGIDI_TRUE_VIRTUAL
LUPI_HOST_DEVICE void incrementMemorySize(long &a_totalMemory, long &a_sharedMemory)
virtual LUPI_HOST_DEVICE ~Protare()
LUPI_HOST_DEVICE bool isTNSL_ProtareSingle() const
MCGIDI_VIRTUAL_FUNCTION LUPI_HOST_DEVICE bool reactionHasURR_probabilityTables(std::size_t a_index) const MCGIDI_TRUE_VIRTUAL
LUPI_HOST_DEVICE double projectileMass() const
MCGIDI_VIRTUAL_FUNCTION LUPI_HOST_DEVICE double maximumEnergy() const MCGIDI_TRUE_VIRTUAL
LUPI_HOST_DEVICE String evaluation() const
LUPI_HOST_DEVICE double targetMass() const
MCGIDI_VIRTUAL_FUNCTION LUPI_HOST_DEVICE double gainViaIntid(std::size_t a_hashIndex, double a_temperature, double a_energy, int a_particleIntid) const MCGIDI_TRUE_VIRTUAL
MCGIDI_VIRTUAL_FUNCTION LUPI_HOST_DEVICE double productionEnergy(std::size_t a_hashIndex, double a_temperature, double a_energy) const MCGIDI_TRUE_VIRTUAL
MCGIDI_VIRTUAL_FUNCTION LUPI_HOST_DEVICE ProtareSingle const * protare(std::size_t a_index) const MCGIDI_TRUE_VIRTUAL
MCGIDI_VIRTUAL_FUNCTION LUPI_HOST_DEVICE void crossSectionVector(double a_temperature, double a_userFactor, std::size_t a_numberAllocated, double *a_crossSectionVector) const MCGIDI_TRUE_VIRTUAL
LUPI_HOST_DEVICE int targetIntid() const
LUPI_HOST void addOrphanProductToProductList(std::vector< Product * > &a_associatedOrphanProducts) const
LUPI_HOST_DEVICE double crossSectionThreshold() const
LUPI_HOST_DEVICE double productAverageMultiplicity(int a_index, double a_projectileEnergy) const
LUPI_HOST_DEVICE double targetMass() const
LUPI_HOST_DEVICE void updateProtareSingleInfo(ProtareSingle *a_protareSingle, std::size_t a_reactionIndex)
LUPI_HOST_DEVICE int productMultiplicity(int a_index) const
LUPI_HOST_DEVICE void serialize(LUPI::DataBuffer &a_buffer, LUPI::DataBuffer::Mode a_mode)
LUPI_HOST void setOrphanProductData(std::vector< std::size_t > const &a_associatedOrphanProductIndcies, std::vector< Product * > const &a_associatedOrphanProducts)
static LUPI_HOST_DEVICE void sampleNullProducts(Protare const &a_protare, double a_projectileEnergy, Sampling::Input &a_input, RNG &&a_rng, PUSHBACK &&a_push_back, Sampling::ProductHandler &a_products)
LUPI_HOST void setUserParticleIndexViaIntid(int a_particleIntid, int a_userParticleIndex)
LUPI_HOST_DEVICE int ENDL_C() const
LUPI_HOST_DEVICE int productMultiplicityViaIntid(int a_intid) const
LUPI_HOST_DEVICE bool hasFission() const
LUPI_HOST_DEVICE int initialStateIndex() const
LUPI_HOST_DEVICE double twoBodyThreshold() const
LUPI_HOST_DEVICE Vector< int > const & userProductIndicesTransportable() const
LUPI_HOST void setUserParticleIndex(int a_particleIndex, int a_userParticleIndex)
LUPI_HOST_DEVICE double projectileMass() const
LUPI_HOST Reaction(GIDI::Reaction const &a_reaction, SetupInfo &a_setupInfo, Transporting::MC const &a_settings, GIDI::Transporting::Particles const &a_particles, GIDI::Styles::TemperatureInfos const &a_temperatureInfos)
LUPI_HOST_DEVICE int ENDF_MT() const
LUPI_HOST_DEVICE Vector< int > const & productIntids() const
LUPI_HOST_DEVICE Vector< int > const & productIndices() const
LUPI_HOST_DEVICE double angleBiasing(int a_pid, double a_temperature, double a_energy_in, double a_mu_lab, double &a_energy_out, RNG &&a_rng, double *a_cumulative_weight=nullptr, bool a_checkOrphanProducts=true) const
LUPI_HOST_DEVICE Vector< int > const & productIntidsTransportable() const
LUPI_HOST_DEVICE std::size_t numberOfProducts() const
LUPI_HOST_DEVICE ~Reaction()
LUPI_HOST_DEVICE double finalQ(double a_energy) const
LUPI_HOST_DEVICE Vector< int > const & productIndicesTransportable() const
LUPI_HOST_DEVICE double crossSection(URR_protareInfos const &a_URR_protareInfos, std::size_t a_hashIndex, double a_temperature, double a_energy) const
LUPI_HOST_DEVICE double productAverageMultiplicityViaIntid(int a_intid, double a_projectileEnergy) const
LUPI_HOST_DEVICE std::size_t reactionIndex() const
LUPI_HOST_DEVICE Reaction()
LUPI_HOST_DEVICE Product const * product(std::size_t a_index) const
LUPI_HOST_DEVICE ProtareSingle const * protareSingle() const
LUPI_HOST_DEVICE std::size_t GIDI_reactionIndex() const
LUPI_HOST void setModelDBRC_data(Sampling::Upscatter::ModelDBRC_data *a_modelDBRC_data)
LUPI_HOST_DEVICE String const & label() const
LUPI_HOST_DEVICE Vector< int > const & userProductIndices() const
LUPI_HOST_DEVICE int productMultiplicities(int a_index) const
LUPI_HOST_DEVICE int ENDL_S() const
LUPI_HOST_DEVICE Vector< std::size_t > associatedOrphanProductIndices() const
LUPI_HOST_DEVICE void sampleProducts(Protare const *a_protare, Sampling::Input &a_input, RNG &&a_rng, PUSHBACK &&a_push_back, Sampling::ProductHandler &a_products, bool a_checkOrphanProducts=true) const
LUPI_HOST GIDI::Functions::XYs1d crossSectionAsGIDI_XYs1d(double a_temperature) const
LUPI_HOST_DEVICE double angleBiasingViaIntid(int a_intid, double a_temperature, double a_energy_in, double a_mu_lab, double &a_energy_out, RNG &&a_rng, double *a_cumulative_weight=nullptr, bool a_checkOrphanProducts=true) const
GIDI::ProtareSingle const & m_GIDI_protare
std::map< std::string, ACE_URR_probabilityTablesFromGIDI * > m_ACE_URR_probabilityTablesFromGIDI
bool m_isPhotoAtomicIncoherentScattering
GIDI::GRIN::GRIN_continuumGammas const * m_GRIN_continuumGammas
std::string m_distributionLabel
std::map< std::string, int > m_particleIntids
std::map< std::string, int > m_initialStateIndices
LUPI_HOST SetupInfo(ProtareSingle &a_protare, GIDI::ProtareSingle const &a_GIDI_protare, PoPI::Database const &a_popsUser, PoPI::Database const &a_pops)
TwoBodyOrder m_twoBodyOrder
std::map< std::string, int > m_stateNamesToIndices
std::map< std::string, int > m_particleIndices
LUPI::FormatVersion m_formatVersion
bool m_hasFinalStatePhotons
PoPI::Database const & m_popsUser
ProtareSingle & m_protare
GIDI::Reaction const * m_reaction
std::map< std::string, double > m_nuclearLevelEnergies
PoPI::Database const & m_pops
Transporting::Reaction::Type m_reactionType
LUPI_HOST std::vector< double > fixedGridPoints() const
LUPI_HOST bool makePhotonEmissionProbabilitiesOne() const
LUPI_HOST bool wantRawTNSL_distributionSampling()
LUPI_HOST bool useSlowerContinuousEnergyConversion() const
LUPI_HOST MC(PoPI::Database const &a_pops, std::string const &a_projectileID, GIDI::Styles::Suite const *a_styles, std::string const &a_label, GIDI::Transporting::DelayedNeutrons a_delayedNeutrons, double energyDomainMax)
LUPI_HOST std::vector< double > const & upscatterModelAGroupBoundaries()
LUPI_HOST double energyDomainMax() const
LUPI_HOST void want_URR_probabilityTables(bool a_want_URR_probabilityTables)
LUPI_HOST Sampling::Upscatter::Model upscatterModel() const
LUPI_HOST void setCrossSectionLookupMode(LookupMode::Data1d a_crossSectionLookupMode)
LUPI_HOST bool sampleNonTransportingParticles() const
LUPI_HOST void setZeroNuclearLevelEnergyWidth(bool a_zeroNuclearLevelEnergyWidth)
LUPI_HOST void set_wantRawTNSL_distributionSampling(bool a_wantRawTNSL_distributionSampling)
LUPI_HOST void wantTerrellPromptNeutronDistribution(bool a_wantTerrellPromptNeutronDistribution)
LUPI_HOST void sampleNonTransportingParticles(bool a_sampleNonTransportingParticles)
LUPI_HOST void setAddExpectedValueData(bool a_addExpectedValueData)
LUPI_HOST MC(PoPI::Database const &a_pops, GIDI::Protare const &a_protare, std::string const &a_label, GIDI::Transporting::DelayedNeutrons a_delayedNeutrons, double energyDomainMax)
LUPI_HOST void set_ignoreENDF_MT5(bool a_ignoreENDF_MT5)
LUPI_HOST bool want_URR_probabilityTables() const
LUPI_HOST bool ignoreENDF_MT5() const
LUPI_HOST void setMakePhotonEmissionProbabilitiesOne(bool a_makePhotonEmissionProbabilitiesOne)
LUPI_HOST void other1dDataLookupMode(LookupMode::Data1d a_other1dDataLookupMode)
LUPI_HOST void setUpscatterModelDBRC()
LUPI_HOST void setUpscatterModelA()
LUPI_HOST void setIgnoreENDF_MT5(bool a_ignoreENDF_MT5)
LUPI_HOST URR_mode _URR_mode() const
LUPI_HOST void setUpscatterModelBSnLimits()
LUPI_HOST bool zeroNuclearLevelEnergyWidth() const
LUPI_HOST void setOther1dDataLookupMode(LookupMode::Data1d a_other1dDataLookupMode)
LUPI_HOST bool addExpectedValueData() const
LUPI_HOST void setSampleNonTransportingParticles(bool a_sampleNonTransportingParticles)
LUPI_HOST void styles(GIDI::Styles::Suite const *a_styles)
LUPI_HOST GIDI::Styles::Suite const * styles() const
LUPI_HOST LookupMode::Data1d crossSectionLookupMode() const
LUPI_HOST void distributionLookupMode(LookupMode::Distribution a_distributionLookupMode)
LUPI_HOST bool wantRawTNSL_distributionSampling() const
LUPI_HOST void setUseSlowerContinuousEnergyConversion(bool a_useSlowerContinuousEnergyConversion)
LUPI_HOST void setWantTerrellPromptNeutronDistribution(bool a_wantTerrellPromptNeutronDistribution)
LUPI_HOST LookupMode::Data1d other1dDataLookupMode() const
LUPI_HOST void process(GIDI::Protare const &a_protare)
LUPI_HOST bool wantTerrellPromptNeutronDistribution() const
LUPI_HOST void setDistributionLookupMode(LookupMode::Distribution a_distributionLookupMode)
LUPI_HOST void setURR_mode(URR_mode a_URR_mode)
LUPI_HOST LookupMode::Distribution distributionLookupMode() const
LUPI_HOST void crossSectionLookupMode(LookupMode::Data1d a_crossSectionLookupMode)
LUPI_HOST void setUpscatterModelB()
LUPI_HOST void fixedGridPoints(std::vector< double > a_fixedGridPoints)
LUPI_HOST std::string label() const
LUPI_HOST void setUpscatterModelAGroupBoundaries(std::vector< double > const &a_groupBoundaries)
LUPI_HOST_DEVICE double rng_Value() const
LUPI_HOST_DEVICE URR_protareInfo()
LUPI_HOST_DEVICE URR_protareInfo(URR_protareInfo const &a_URR_protareInfo)
LUPI_HOST_DEVICE bool inURR() const
LUPI_HOST_DEVICE void serialize(LUPI::DataBuffer &a_buffer, LUPI::DataBuffer::Mode a_mode)
LUPI_HOST_DEVICE URR_protareInfo & operator=(URR_protareInfo const &a_rhs)
LUPI_HOST_DEVICE URR_protareInfos()
LUPI_HOST_DEVICE void updateProtare(MCGIDI::Protare const *a_protare, double a_energy, RNG &&a_rng)
LUPI_HOST_DEVICE std::size_t size() const
LUPI_HOST_DEVICE void serialize(LUPI::DataBuffer &a_buffer, LUPI::DataBuffer::Mode a_mode)
LUPI_HOST void setup(Vector< Protare * > &a_protares)
LUPI_HOST_DEVICE URR_protareInfo const & operator[](std::size_t a_index) const
LUPI_HOST_DEVICE std::size_t internalSize() const
LUPI_HOST_DEVICE std::size_t size() const
LUPI_HOST_DEVICE T & back()
std::vector< Styles::TemperatureInfo > TemperatureInfos
std::set< std::size_t > ExcludeReactionsSet
void deprecatedFunction(std::string const &a_functionName, std::string const &a_replacementName, std::string const &a_asOf)
Simple C++ string class, useful as replacement for std::string if this cannot be used,...
LUPI_HOST_DEVICE Distributions::Distribution * serializeDistribution(LUPI::DataBuffer &a_buffer, LUPI::DataBuffer::Mode a_mode, Distributions::Distribution *a_distribution)
LUPI_HOST int MCGIDI_popsIntid(PoPI::Database const &a_pops, std::string const &a_ID)
LUPI_HOST void addVectorItemsToSet(Vector< int > const &a_from, std::set< int > &a_to)
LUPI_HOST_DEVICE double boostSpeed(double a_massProjectile, double a_kineticEnergyProjectile, double a_massTarget)
LUPI_HOST Protare * protareFromGIDIProtare(LUPI::StatusMessageReporting &a_smr, GIDI::Protare 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)
LUPI_HOST_DEVICE void serializeFissionResiduals(GIDI::Construction::FissionResiduals &a_fissionResiduals, LUPI::DataBuffer &a_buffer, LUPI::DataBuffer::Mode a_mode)
LUPI_HOST_DEVICE void serializeDelayedNeutrons(LUPI::DataBuffer &a_buffer, LUPI::DataBuffer::Mode a_mode, Vector< DelayedNeutron * > &a_delayedNeutrons)
LUPI_HOST Vector< double > GIDI_VectorDoublesToMCGIDI_VectorDoubles(GIDI::Vector a_vector)
LUPI_HOST_DEVICE int binarySearchVectorBounded(double a_x, Vector< double > const &a_Xs, std::size_t a_lower, std::size_t a_upper, bool a_boundIndex)
LUPI_HOST_DEVICE void serializeQs(LUPI::DataBuffer &a_buffer, LUPI::DataBuffer::Mode a_mode, Vector< Functions::Function1d_d1 * > &a_Qs)
LUPI_HOST_DEVICE double particleKineticEnergy(double a_mass_unitOfEnergy, double a_particleBeta)
LUPI_HOST int MCGIDI_popsIndex(PoPI::Database const &a_pops, std::string const &a_ID)
LUPI_HOST_DEVICE void serializeProducts(LUPI::DataBuffer &a_buffer, LUPI::DataBuffer::Mode a_mode, Vector< Product * > &a_products)
LUPI_HOST_DEVICE ACE_URR_probabilityTables * serializeACE_URR_probabilityTables(ACE_URR_probabilityTables *a_ACE_URR_probabilityTables, LUPI::DataBuffer &a_buffer, LUPI::DataBuffer::Mode a_mode)
LUPI_HOST_DEVICE Transporting::URR_mode serializeURR_mode(Transporting::URR_mode a_URR_mode, LUPI::DataBuffer &a_buffer, LUPI::DataBuffer::Mode a_mode)
LUPI_HOST_DEVICE int binarySearchVector(double a_x, Vector< double > const &a_Xs, bool a_boundIndex=false)
LUPI_HOST_DEVICE double particleKineticEnergyFromBeta2(double a_mass_unitOfEnergy, double a_particleBeta2)
LUPI_HOST std::vector< double > vectorToSTD_vector(Vector< double > a_input)
LUPI_HOST_DEVICE int distributionTypeToInt(Distributions::Type a_type)
LUPI_HOST_DEVICE int muCOM_From_muLab(double a_muLab, double a_boostBeta, double a_productBeta, double &a_muPlus, double &a_JacobianPlus, double &a_muMinus, double &a_JacobianMinus)
LUPI_HOST void convertACE_URR_probabilityTablesFromGIDI(GIDI::ProtareSingle const &a_protare, Transporting::MC &a_settings, SetupInfo &a_setupInfo)
LUPI_HOST_DEVICE Distributions::Type intToDistributionType(int a_type)