36 for( std::vector<Protare *>::const_iterator iter = m_protares.begin( ); iter < m_protares.end( ); ++iter )
delete *iter;
47 m_protares.push_back( a_protare );
73 return( m_protares[a_index]->
fileName( ) );
99 return( m_protares[a_index]->
libraries( ) );
136 std::size_t number = 0;
138 for( std::size_t i1 = 0; i1 < m_protares.size( ); ++i1 ) number += m_protares[i1]->
numberOfProtares( );
153 for( std::size_t i1 = 0; i1 < m_protares.size( ); ++i1 ) {
154 std::size_t number = m_protares[i1]->numberOfProtares( );
156 if( number > a_index )
return( m_protares[i1]->
protare( a_index ) );
173 for( std::size_t i1 = 0; i1 < m_protares.size( ); ++i1 ) {
174 std::size_t number = m_protares[i1]->numberOfProtares( );
176 if( number > a_index )
return( m_protares[i1]->
protare( a_index ) );
191 int numberOfLazyParsingHelperForms1 = 0;
195 return( numberOfLazyParsingHelperForms1 );
206 int numberOfLazyParsingHelperFormsReplaced1 = 0;
210 return( numberOfLazyParsingHelperFormsReplaced1 );
244 return( m_protares[0]->
style( a_label ) );
255 return( m_protares[0]->
styles( ) );
266 return( m_protares[0]->
styles( ) );
281 for( std::size_t i1 = 0; i1 < m_protares.size( ); ++i1 ) {
282 intid1 = m_protares[i1]->intid( a_id );
283 if( intid1 > -1 )
break;
299 for( std::size_t i1 = 0; i1 < m_protares.size( ); ++i1 ) m_protares[i1]->
productIDs( a_ids, a_particles, a_transportablesOnly );
317 int maximumLegendreOrder1 = -1;
319 for( std::size_t i1 = 0; i1 < m_protares.size( ); ++i1 ) {
320 int maximumLegendreOrder2 = m_protares[i1]->maximumLegendreOrder( a_smr, a_settings, a_temperatureInfo, a_productID );
322 if( maximumLegendreOrder2 > maximumLegendreOrder1 ) maximumLegendreOrder1 = maximumLegendreOrder2;
325 return( maximumLegendreOrder1 );
355 std::size_t numberOfReactions1 = 0;
357 for( std::size_t i1 = 0; i1 < m_protares.size( ); ++i1 ) numberOfReactions1 += m_protares[i1]->
numberOfReactions( );
359 return( numberOfReactions1 );
371 for( std::size_t i1 = 0; i1 < m_protares.size( ); ++i1 ) {
372 std::size_t numberOfReactions1 = m_protares[i1]->numberOfReactions( );
374 if( a_index < numberOfReactions1 )
return( m_protares[i1]->
reaction( a_index ) );
375 a_index -= numberOfReactions1;
378 throw Exception(
"ProtareComposite::reaction: index out of range" );
390 for( std::size_t i1 = 0; i1 < m_protares.size( ); ++i1 ) {
391 std::size_t numberOfReactions1 = m_protares[i1]->numberOfReactions( );
393 if( a_index < numberOfReactions1 )
return( m_protares[i1]->
reaction( a_index ) );
394 a_index -= numberOfReactions1;
397 throw Exception(
"ProtareComposite::reaction: index out of range" );
414 for( std::size_t i1 = 0; i1 < m_protares.size( ); ++i1 ) {
415 std::size_t numberOfReactions1 = m_protares[i1]->numberOfReactions( );
417 if( a_index < numberOfReactions1 )
return( m_protares[i1]->
reaction( a_index, a_settings, a_reactionsToExclude ) );
418 a_index -= numberOfReactions1;
421 throw Exception(
"ProtareComposite::reaction: index out of range" );
432 std::size_t numberOfOrphanProducts1 = 0;
434 for( std::size_t i1 = 0; i1 < m_protares.size( ); ++i1 ) numberOfOrphanProducts1 += m_protares[i1]->
numberOfOrphanProducts( );
436 return( numberOfOrphanProducts1 );
448 for( std::size_t i1 = 0; i1 < m_protares.size( ); ++i1 ) {
449 std::size_t numberOfOrphanProducts1 = m_protares[i1]->numberOfOrphanProducts( );
451 if( a_index < numberOfOrphanProducts1 )
return( m_protares[i1]->
orphanProduct( numberOfOrphanProducts1 ) );
452 a_index -= numberOfOrphanProducts1;
455 throw Exception(
"ProtareComposite::orphanProduct: index out of range" );
467 for( std::size_t i1 = 0; i1 < m_protares.size( ); ++i1 ) {
468 std::size_t numberOfOrphanProducts1 = m_protares[i1]->numberOfOrphanProducts( );
470 if( a_index < numberOfOrphanProducts1 )
return( m_protares[i1]->
orphanProduct( numberOfOrphanProducts1 ) );
471 a_index -= numberOfOrphanProducts1;
474 throw Exception(
"ProtareComposite::orphanProduct: index out of range" );
484 std::size_t reactionOffset = 0;
486 for( std::size_t i1 = 0; i1 < m_protares.size( ); ++i1 ) {
487 m_protares[i1]->updateReactionIndices( reactionOffset );
488 reactionOffset += m_protares[i1]->numberOfReactions( );
500 for( std::size_t i1 = 0; i1 < m_protares.size( ); ++i1 ) {
502 if( m_protares[i1]->
hasFission( ) )
return(
true );
515 for( std::size_t i1 = 0; i1 < m_protares.size( ); ++i1 ) {
535 return( m_protares[0]->
groupBoundaries( a_settings, a_temperatureInfo, a_productID ) );
572 for( std::size_t i1 = 0; i1 < m_protares.size( ); ++i1 ) {
573 vector += m_protares[i1]->multiGroupCrossSection( a_smr, a_settings, a_temperatureInfo, a_reactionsToExclude, a_label );
600 for( std::size_t i1 = 0; i1 < m_protares.size( ); ++i1 ) {
601 vector += m_protares[i1]->multiGroupQ( a_smr, a_settings, a_temperatureInfo, a_final, a_effectivePhotoAtomic, excludeReactionsSet );
627 for( std::size_t i1 = 0; i1 < m_protares.size( ); ++i1 ) {
628 vector += m_protares[i1]->multiGroupMultiplicity( a_smr, a_settings, a_temperatureInfo, a_productID, excludeReactionsSet );
652 for( std::size_t i1 = 0; i1 < m_protares.size( ); ++i1 ) {
653 vector += m_protares[i1]->multiGroupFissionNeutronMultiplicity( a_smr, a_settings, a_temperatureInfo, excludeReactionsSet );
677 for( std::size_t i1 = 0; i1 < m_protares.size( ); ++i1 ) {
678 vector += m_protares[i1]->multiGroupFissionGammaMultiplicity( a_smr, a_settings, a_temperatureInfo, excludeReactionsSet );
702 std::string
const &a_productID, std::size_t a_order,
ExcludeReactionsSet const &a_reactionsToExclude )
const {
707 for( std::size_t i1 = 0; i1 < m_protares.size( ); ++i1 ) {
708 matrix += m_protares[i1]->multiGroupProductMatrix( a_smr, a_settings, a_temperatureInfo, a_particles, a_productID, a_order,
709 excludeReactionsSet );
736 for( std::size_t i1 = 0; i1 < m_protares.size( ); ++i1 ) {
737 matrix += m_protares[i1]->multiGroupFissionMatrix( a_smr, a_settings, a_temperatureInfo, a_particles, a_order, excludeReactionsSet );
767 for( std::size_t i1 = 0; i1 < m_protares.size( ); ++i1 ) {
768 vector += m_protares[i1]->multiGroupTransportCorrection( a_smr, a_settings, a_temperatureInfo, a_particles, a_order,
769 a_transportCorrectionType, a_temperature, excludeReactionsSet );
794 for( std::size_t i1 = 0; i1 < m_protares.size( ); ++i1 ) {
795 vector += m_protares[i1]->multiGroupAvailableEnergy( a_smr, a_settings, a_temperatureInfo, excludeReactionsSet );
821 for( std::size_t i1 = 0; i1 < m_protares.size( ); ++i1 ) {
822 vector += m_protares[i1]->multiGroupAverageEnergy( a_smr, a_settings, a_temperatureInfo, a_productID, excludeReactionsSet );
850 for( std::size_t i1 = 0; i1 < m_protares.size( ); ++i1 ) {
851 vector += m_protares[i1]->multiGroupDepositionEnergy( a_smr, a_settings, a_temperatureInfo, a_particles, excludeReactionsSet );
876 for( std::size_t i1 = 0; i1 < m_protares.size( ); ++i1 ) {
877 vector += m_protares[i1]->multiGroupAvailableMomentum( a_smr, a_settings, a_temperatureInfo, excludeReactionsSet );
904 for( std::size_t i1 = 0; i1 < m_protares.size( ); ++i1 ) {
905 vector += m_protares[i1]->multiGroupAverageMomentum( a_smr, a_settings, a_temperatureInfo, a_productID, excludeReactionsSet );
933 for( std::size_t i1 = 0; i1 < m_protares.size( ); ++i1 ) {
934 vector += m_protares[i1]->multiGroupDepositionMomentum( a_smr, a_settings, a_temperatureInfo, a_particles, excludeReactionsSet );
960 for( std::size_t i1 = 0; i1 < m_protares.size( ); ++i1 ) {
961 vector += m_protares[i1]->multiGroupGain( a_smr, a_settings, a_temperatureInfo, a_productID, excludeReactionsSet );
978 for( std::size_t i1 = 0; i1 < m_protares.size( ); ++i1 ) {
981 for( stringAndDoublePairs::iterator iter = muCutoffs2.begin( ); iter < muCutoffs2.end( ); ++iter ) muCutoffs.push_back( *iter );
998 for( std::size_t i1 = 0; i1 < m_protares.size( ); ++i1 ) {
1001 delayedNeutronProducts1.insert( delayedNeutronProducts1.end( ), delayedNeutronProducts2.begin( ), delayedNeutronProducts2.end( ) );
1005 return( delayedNeutronProducts1 );
1017 for( std::size_t i1 = 0; i1 < m_protares.size( ); ++i1 ) {
1018 m_protares[i1]->incompleteParticles( a_settings, a_incompleteParticles );
Frame projectileFrame(std::size_t a_index=0) const
std::string const & fileName(std::size_t a_index=0) const
Styles::TemperatureInfos temperatures() const
void updateReactionIndices(std::size_t a_offset) const
int numberOfLazyParsingHelperFormsReplaced() const
double thresholdFactor() const
std::size_t numberOfReactions() const
Styles::Base & style(std::string const &a_label)
void append(Protare *a_protare)
std::size_t numberOfProtares() const
Vector multiGroupGain(LUPI::StatusMessageReporting &a_smr, Transporting::MG const &a_settings, Styles::TemperatureInfo const &a_temperatureInfo, std::string const &a_productID, ExcludeReactionsSet const &a_reactionsToExclude=ExcludeReactionsSet {}) const
int numberOfLazyParsingHelperForms() const
Vector multiGroupAvailableMomentum(LUPI::StatusMessageReporting &a_smr, Transporting::MG const &a_settings, Styles::TemperatureInfo const &a_temperatureInfo, ExcludeReactionsSet const &a_reactionsToExclude=ExcludeReactionsSet {}) const
std::vector< std::string > libraries(std::size_t a_index=0) const
Vector multiGroupInverseSpeed(LUPI::StatusMessageReporting &a_smr, Transporting::MG const &a_settings, Styles::TemperatureInfo const &a_temperatureInfo) const
stringAndDoublePairs muCutoffForCoulombPlusNuclearElastic() const
Vector multiGroupQ(LUPI::StatusMessageReporting &a_smr, Transporting::MG const &a_settings, Styles::TemperatureInfo const &a_temperatureInfo, bool a_final, bool a_effectivePhotoAtomic=true, ExcludeReactionsSet const &a_reactionsToExclude=ExcludeReactionsSet {}) const
int maximumLegendreOrder(LUPI::StatusMessageReporting &a_smr, Transporting::MG const &a_settings, Styles::TemperatureInfo const &a_temperatureInfo, std::string const &a_productID) const
void productIDs(std::set< std::string > &a_ids, Transporting::Particles const &a_particles, bool a_transportablesOnly) const
Vector multiGroupAverageEnergy(LUPI::StatusMessageReporting &a_smr, Transporting::MG const &a_settings, Styles::TemperatureInfo const &a_temperatureInfo, std::string const &a_productID, ExcludeReactionsSet const &a_reactionsToExclude=ExcludeReactionsSet {}) const
Vector multiGroupAvailableEnergy(LUPI::StatusMessageReporting &a_smr, Transporting::MG const &a_settings, Styles::TemperatureInfo const &a_temperatureInfo, ExcludeReactionsSet const &a_reactionsToExclude=ExcludeReactionsSet {}) const
Documentation_1_10::Suite & documentations()
std::size_t numberOfOrphanProducts() const
Vector multiGroupCrossSection(LUPI::StatusMessageReporting &a_smr, Transporting::MG const &a_settings, Styles::TemperatureInfo const &a_temperatureInfo, ExcludeReactionsSet const &a_reactionsToExclude=ExcludeReactionsSet {}, std::string const &a_label="") const
ProtareSingle * protare(std::size_t a_index)
int intid(std::string const &a_id) const
Reaction * reaction(std::size_t a_index)
Matrix multiGroupProductMatrix(LUPI::StatusMessageReporting &a_smr, Transporting::MG const &a_settings, Styles::TemperatureInfo const &a_temperatureInfo, Transporting::Particles const &a_particles, std::string const &a_productID, std::size_t a_order, ExcludeReactionsSet const &a_reactionsToExclude=ExcludeReactionsSet {}) const
std::string const & realFileName(std::size_t a_index=0) const
void incompleteParticles(Transporting::Settings const &a_settings, std::set< std::string > &a_incompleteParticles) const
Vector multiGroupMultiplicity(LUPI::StatusMessageReporting &a_smr, Transporting::MG const &a_settings, Styles::TemperatureInfo const &a_temperatureInfo, std::string const &a_productID, ExcludeReactionsSet const &a_reactionsToExclude=ExcludeReactionsSet {}) const
Vector multiGroupDepositionEnergy(LUPI::StatusMessageReporting &a_smr, Transporting::MG const &a_settings, Styles::TemperatureInfo const &a_temperatureInfo, Transporting::Particles const &a_particles, ExcludeReactionsSet const &a_reactionsToExclude=ExcludeReactionsSet {}) const
ProtareComposite(Construction::Settings const &a_construction)
Vector multiGroupFissionGammaMultiplicity(LUPI::StatusMessageReporting &a_smr, Transporting::MG const &a_settings, Styles::TemperatureInfo const &a_temperatureInfo, ExcludeReactionsSet const &a_reactionsToExclude=ExcludeReactionsSet {}) const
LUPI::FormatVersion const & formatVersion(std::size_t a_index=0) const
Vector multiGroupAverageMomentum(LUPI::StatusMessageReporting &a_smr, Transporting::MG const &a_settings, Styles::TemperatureInfo const &a_temperatureInfo, std::string const &a_productID, ExcludeReactionsSet const &a_reactionsToExclude=ExcludeReactionsSet {}) const
DelayedNeutronProducts delayedNeutronProducts() const
Vector multiGroupTransportCorrection(LUPI::StatusMessageReporting &a_smr, Transporting::MG const &a_settings, Styles::TemperatureInfo const &a_temperatureInfo, Transporting::Particles const &a_particles, std::size_t a_order, TransportCorrectionType a_transportCorrectionType, double a_temperature, ExcludeReactionsSet const &a_reactionsToExclude=ExcludeReactionsSet {}) const
std::vector< double > groupBoundaries(Transporting::MG const &a_settings, Styles::TemperatureInfo const &a_temperatureInfo, std::string const &a_productID) const
bool isDelayedFissionNeutronComplete() const
Vector multiGroupDepositionMomentum(LUPI::StatusMessageReporting &a_smr, Transporting::MG const &a_settings, Styles::TemperatureInfo const &a_temperatureInfo, Transporting::Particles const &a_particles, ExcludeReactionsSet const &a_reactionsToExclude=ExcludeReactionsSet {}) const
std::string const & evaluation(std::size_t a_index=0) const
Reaction * orphanProduct(std::size_t a_index)
Matrix multiGroupFissionMatrix(LUPI::StatusMessageReporting &a_smr, Transporting::MG const &a_settings, Styles::TemperatureInfo const &a_temperatureInfo, Transporting::Particles const &a_particles, std::size_t a_order, ExcludeReactionsSet const &a_reactionsToExclude=ExcludeReactionsSet {}) const
Vector multiGroupFissionNeutronMultiplicity(LUPI::StatusMessageReporting &a_smr, Transporting::MG const &a_settings, Styles::TemperatureInfo const &a_temperatureInfo, ExcludeReactionsSet const &a_reactionsToExclude=ExcludeReactionsSet {}) const
std::vector< Styles::TemperatureInfo > TemperatureInfos
void excludeReactionsSetAdjust(ExcludeReactionsSet &a_excludeReactionsSet, Protare const &a_protare)
std::vector< stringAndDoublePair > stringAndDoublePairs
std::set< std::size_t > ExcludeReactionsSet
std::vector< DelayedNeutronProduct > DelayedNeutronProducts