Geant4 11.4.0
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
GIDI::ProtareTNSL Class Reference

#include <GIDI.hpp>

Inheritance diagram for GIDI::ProtareTNSL:

Public Member Functions

 ProtareTNSL (Construction::Settings const &a_construction, ProtareSingle *a_protare, ProtareSingle *a_TNSL)
 ~ProtareTNSL ()
ProtareSingleTNSL ()
ProtareSingle const * TNSL () const
ReactionelasticReaction ()
std::size_t maximumTNSL_MultiGroupIndex (Styles::TemperatureInfo const &a_temperatureInfo) const
void combineVectors (Transporting::MG const &a_settings, Styles::TemperatureInfo const &a_temperatureInfo, Vector &a_vector, Vector const &a_vectorElastic, Vector const &a_vectorTNSL) const
void combineMatrices (Transporting::MG const &a_settings, Styles::TemperatureInfo const &a_temperatureInfo, Matrix &a_matrix, Matrix const &a_matrixElastic, Matrix const &a_matrixTNSL) const
ProtareType protareType () const
std::size_t numberOfProtares () const
ProtareSingleprotare (std::size_t a_index=0)
ProtareSingle const * protare (std::size_t a_index=0) const
LUPI::FormatVersion const & formatVersion (std::size_t a_index=0) const
std::string const & fileName (std::size_t a_index=0) const
std::string const & realFileName (std::size_t a_index=0) const
std::vector< std::string > libraries (std::size_t a_index=0) const
std::string const & evaluation (std::size_t a_index=0) const
Frame projectileFrame (std::size_t a_index=0) const
int numberOfLazyParsingHelperForms () const
int numberOfLazyParsingHelperFormsReplaced () const
double thresholdFactor () const
Documentation_1_10::Suitedocumentations ()
Styles::Basestyle (std::string const &a_label)
Styles::Suitestyles ()
Styles::Suite const & styles () const
int intid (std::string const &a_id) const
void productIDs (std::set< std::string > &a_ids, Transporting::Particles const &a_particles, bool a_transportablesOnly) const
int maximumLegendreOrder (LUPI::StatusMessageReporting &a_smr, Transporting::MG const &a_settings, Styles::TemperatureInfo const &a_temperatureInfo, std::string const &a_productID) const
Styles::TemperatureInfos temperatures () const
std::size_t numberOfReactions () const
Reactionreaction (std::size_t a_index)
Reaction const * reaction (std::size_t a_index) const
Reaction const * reaction (std::size_t a_index, Transporting::MG const &a_settings, ExcludeReactionsSet const &a_reactionsToExclude=ExcludeReactionsSet {}) const
std::size_t numberOfOrphanProducts () const
ReactionorphanProduct (std::size_t a_index)
Reaction const * orphanProduct (std::size_t a_index) const
void updateReactionIndices (std::size_t a_offset) const
bool hasFission () const
bool isDelayedFissionNeutronComplete () const
GUPI::AncestryfindInAncestry3 (LUPI_maybeUnused std::string const &a_item)
GUPI::Ancestry const * findInAncestry3 (LUPI_maybeUnused std::string const &a_item) const
std::vector< double > groupBoundaries (Transporting::MG const &a_settings, Styles::TemperatureInfo const &a_temperatureInfo, std::string const &a_productID) const
Vector multiGroupInverseSpeed (LUPI::StatusMessageReporting &a_smr, Transporting::MG const &a_settings, Styles::TemperatureInfo const &a_temperatureInfo) 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
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
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 multiGroupFissionNeutronMultiplicity (LUPI::StatusMessageReporting &a_smr, Transporting::MG const &a_settings, Styles::TemperatureInfo const &a_temperatureInfo, ExcludeReactionsSet const &a_reactionsToExclude=ExcludeReactionsSet {}) const
Vector multiGroupFissionGammaMultiplicity (LUPI::StatusMessageReporting &a_smr, Transporting::MG const &a_settings, Styles::TemperatureInfo const &a_temperatureInfo, ExcludeReactionsSet const &a_reactionsToExclude=ExcludeReactionsSet {}) const
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
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 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
Vector multiGroupAvailableEnergy (LUPI::StatusMessageReporting &a_smr, Transporting::MG const &a_settings, Styles::TemperatureInfo const &a_temperatureInfo, ExcludeReactionsSet const &a_reactionsToExclude=ExcludeReactionsSet {}) 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 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
Vector multiGroupAvailableMomentum (LUPI::StatusMessageReporting &a_smr, Transporting::MG const &a_settings, Styles::TemperatureInfo const &a_temperatureInfo, ExcludeReactionsSet const &a_reactionsToExclude=ExcludeReactionsSet {}) 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
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
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
void TNSL_crossSectionSumCorrection (std::string const &a_label, Functions::XYs1d &a_crossSectionSum)
void TNSL_crossSectionSumCorrection (std::string const &a_label, Functions::Ys1d &a_crossSectionSum)
void TNSL_crossSectionSumCorrection (std::string const &a_label, Vector &a_crossSectionSum)
stringAndDoublePairs muCutoffForCoulombPlusNuclearElastic () const
DelayedNeutronProducts delayedNeutronProducts () const
void incompleteParticles (Transporting::Settings const &a_settings, std::set< std::string > &a_incompleteParticles) const
Public Member Functions inherited from GIDI::Protare
 Protare ()
 ~Protare ()
ParticleInfo const & projectile () const
void setProjectile (ParticleInfo const &a_projectile)
ParticleInfo const & target () const
void setTarget (ParticleInfo const &a_target)
ParticleInfo const & GNDS_target () const
virtual bool isTNSL_ProtareSingle () const
virtual GUPI::AncestryfindInAncestry3 (std::string const &a_item)=0
virtual GUPI::Ancestry const * findInAncestry3 (std::string const &a_item) const =0
ExcludeReactionsSet reactionIndicesMatchingENDLCValues (std::set< int > const &a_CValues, bool a_checkActiveState=true)
Public Member Functions inherited from GUPI::Ancestry
 Ancestry (std::string const &a_moniker, std::string const &a_attribute="")
virtual ~Ancestry ()
Ancestryoperator= (Ancestry const &a_ancestry)
std::string const & moniker () const
void setMoniker (std::string const &a_moniker)
Ancestryancestor ()
Ancestry const * ancestor () const
void setAncestor (Ancestry *a_ancestor)
std::string attribute () const
Ancestryroot ()
Ancestry const * root () const
bool isChild (Ancestry *a_instance)
bool isParent (Ancestry *a_parent)
bool isRoot () const
AncestryfindInAncestry (std::string const &a_href)
Ancestry const * findInAncestry (std::string const &a_href) const
virtual LUPI_HOST void serialize (LUPI::DataBuffer &a_buffer, LUPI::DataBuffer::Mode a_mode)
virtual std::string xlinkItemKey () const
std::string toXLink () const
virtual void toXMLList (WriteInfo &a_writeInfo, std::string const &a_indent="") const
void printXML () const

Additional Inherited Members

Static Public Member Functions inherited from GUPI::Ancestry
static std::string buildXLinkItemKey (std::string const &a_name, std::string const &a_key)
Protected Member Functions inherited from GIDI::Protare
void initialize (HAPI::Node const &a_node, SetupInfo &a_setupInfo, PoPI::Database const &a_pops, PoPI::Database const &a_internalPoPs, bool a_targetRequiredInGlobalPoPs, bool a_requiredInPoPs=true)

Detailed Description

Class to store <reactionSuite> nodes required for thermal neutron scattering law.

Definition at line 5028 of file GIDI.hpp.

Constructor & Destructor Documentation

◆ ProtareTNSL()

GIDI::ProtareTNSL::ProtareTNSL ( Construction::Settings const & a_construction,
ProtareSingle * a_protare,
ProtareSingle * a_TNSL )

◆ ~ProtareTNSL()

GIDI::ProtareTNSL::~ProtareTNSL ( )

Definition at line 90 of file GIDI_protareTNSL.cc.

90 {
91
92 delete m_protare;
93 delete m_TNSL;
94}

Referenced by ~ProtareTNSL().

Member Function Documentation

◆ combineMatrices()

void GIDI::ProtareTNSL::combineMatrices ( Transporting::MG const & a_settings,
Styles::TemperatureInfo const & a_temperatureInfo,
Matrix & a_matrix,
Matrix const & a_matrixElastic,
Matrix const & a_matrixTNSL ) const

Removes the elastic component from a_matrix and adds in the TNSL component.

Parameters
a_settings[in] Specifies the requested label.
a_temperatureInfo[in] Specifies the temperature and labels use to lookup the requested data.
a_matrix[in/out] The matrix from the non TNSL protare.
a_matrixElastic[in] The matrix from the elastic reactino from the non TNSL protare.
a_matrixTNSL[in] The matrix from the TNSL protare.

Definition at line 138 of file GIDI_protareTNSL.cc.

138 {
139
140 if( a_matrixTNSL.size( ) == 0 ) return;
141
142 std::size_t maximumMultiGroupIndex = m_maximumTNSL_MultiGroupIndex.at( a_temperatureInfo.heatedMultiGroup( ) );
143
144 for( std::size_t i1 = 0; i1 < maximumMultiGroupIndex; ++i1 ) {
145 Vector const &rowTNSL = a_matrixTNSL[i1];
146 Vector const &rowElastic = a_matrixElastic[i1];
147 Vector &row = a_matrix[i1];
148
149 for( std::size_t i2 = 0; i2 < a_matrixTNSL.size( ); ++i2 ) row[i2] += rowTNSL[i2] - rowElastic[i2];
150 }
151}

Referenced by combineMatrices(), and multiGroupProductMatrix().

◆ combineVectors()

void GIDI::ProtareTNSL::combineVectors ( Transporting::MG const & a_settings,
Styles::TemperatureInfo const & a_temperatureInfo,
Vector & a_vector,
Vector const & a_vectorElastic,
Vector const & a_vectorTNSL ) const

Removes the elastic component from a_vector and adds in the TNSL component.

Parameters
a_settings[in] Specifies the requested label.
a_temperatureInfo[in] Specifies the temperature and labels use to lookup the requested data.
a_vector[in/out] The vector from the non TNSL protare.
a_vectorElastic[in] The vector from the elastic reactino from the non TNSL protare.
a_vectorTNSL[in] The vector from the TNSL protare.

Definition at line 119 of file GIDI_protareTNSL.cc.

119 {
120
121 if( a_vectorTNSL.size( ) == 0 ) return;
122
123 std::size_t maximumMultiGroupIndex = m_maximumTNSL_MultiGroupIndex.at( a_temperatureInfo.heatedMultiGroup( ) );
124
125 for( std::size_t i1 = 0; i1 < maximumMultiGroupIndex; ++i1 ) a_vector[i1] += a_vectorTNSL[i1] - a_vectorElastic[i1];
126}

Referenced by combineVectors(), multiGroupAvailableEnergy(), multiGroupAvailableMomentum(), multiGroupAverageEnergy(), multiGroupAverageMomentum(), multiGroupCrossSection(), multiGroupDepositionEnergy(), multiGroupDepositionMomentum(), multiGroupGain(), multiGroupMultiplicity(), and multiGroupQ().

◆ delayedNeutronProducts()

DelayedNeutronProducts GIDI::ProtareTNSL::delayedNeutronProducts ( ) const
inlinevirtual

Implements GIDI::Protare.

Definition at line 5156 of file GIDI.hpp.

5156{ return( m_protare->delayedNeutronProducts( ) ); }

◆ documentations()

Documentation_1_10::Suite & GIDI::ProtareTNSL::documentations ( )
virtual

Returns the Documentation_1_10::Suite from the non TNSL protare.

Returns
The Documentation_1_10::Suite.

Implements GIDI::Protare.

Definition at line 312 of file GIDI_protareTNSL.cc.

312 {
313
314 return( m_protare->documentations( ) );
315}

Referenced by documentations().

◆ elasticReaction()

Reaction * GIDI::ProtareTNSL::elasticReaction ( )
inline

Returns the m_elasticReaction member.

Definition at line 5042 of file GIDI.hpp.

◆ evaluation()

std::string const & GIDI::ProtareTNSL::evaluation ( std::size_t a_index = 0) const
virtual

Returns the evaluation for the (a_index+1)^th Protare. The index a_index can only be 0 (normal protare) or 1 (TNSL protare).

Parameters
a_index[in] The index of the Protare whose evaluation is returned.
Returns
The evaluation.

Implements GIDI::Protare.

Definition at line 221 of file GIDI_protareTNSL.cc.

221 {
222
223 if( a_index == 0 ) return( m_protare->evaluation( ) );
224 if( a_index == 1 ) return( m_TNSL->evaluation( ) );
225 throw Exception( "ProtareTNSL::evaluation: index can only be 0 or 1." );
226}

Referenced by evaluation().

◆ fileName()

std::string const & GIDI::ProtareTNSL::fileName ( std::size_t a_index = 0) const
virtual

Returns the file name for the (a_index+1)^th Protare. The index a_index can only be 0 (normal protare) or 1 (TNSL protare).

Parameters
a_index[in] The index of the Protare whose file name is returned.
Returns
The file name.

Implements GIDI::Protare.

Definition at line 176 of file GIDI_protareTNSL.cc.

176 {
177
178 if( a_index == 0 ) return( m_protare->fileName( ) );
179 if( a_index == 1 ) return( m_TNSL->fileName( ) );
180 throw Exception( "ProtareTNSL::fileName: index can only be 0 or 1." );
181}

Referenced by fileName().

◆ findInAncestry3() [1/2]

GUPI::Ancestry * GIDI::ProtareTNSL::findInAncestry3 ( LUPI_maybeUnused std::string const & a_item)
inline

Always returns nullptr.

Definition at line 5093 of file GIDI.hpp.

◆ findInAncestry3() [2/2]

GUPI::Ancestry const * GIDI::ProtareTNSL::findInAncestry3 ( LUPI_maybeUnused std::string const & a_item) const
inline

Always returns nullptr.

Definition at line 5094 of file GIDI.hpp.

◆ formatVersion()

LUPI::FormatVersion const & GIDI::ProtareTNSL::formatVersion ( std::size_t a_index = 0) const
virtual

Returns the GNDS format version for the (a_index+1)^th Protare. The index a_index can only be 0 (normal protare) or 1 (TNSL protare).

Parameters
a_index[in] The index of the Protare whose format version is returned.
Returns
The format version.

Implements GIDI::Protare.

Definition at line 161 of file GIDI_protareTNSL.cc.

161 {
162
163 if( a_index == 0 ) return( m_protare->formatVersion( ) );
164 if( a_index == 1 ) return( m_TNSL->formatVersion( ) );
165 throw Exception( "ProtareTNSL::formatVersion: index can only be 0 or 1." );
166}

Referenced by formatVersion().

◆ groupBoundaries()

std::vector< double > GIDI::ProtareTNSL::groupBoundaries ( Transporting::MG const & a_settings,
Styles::TemperatureInfo const & a_temperatureInfo,
std::string const & a_productID ) const
virtual

Returns the multi-group boundaries for the requested label and product.

Parameters
a_settings[in] Specifies the requested label.
a_temperatureInfo[in] Specifies the temperature and labels use to lookup the requested data.
a_productID[in] ID for the requested product.
Returns
List of multi-group boundaries.

Implements GIDI::Protare.

Definition at line 555 of file GIDI_protareTNSL.cc.

555 {
556
557 return( m_protare->groupBoundaries( a_settings, a_temperatureInfo, a_productID ) );
558}

Referenced by groupBoundaries().

◆ hasFission()

bool GIDI::ProtareTNSL::hasFission ( ) const
virtual

Returns true if at least one reaction contains a fission channel.

Returns
true if at least one reaction contains a fission channel and false otherwise.

Implements GIDI::Protare.

Definition at line 529 of file GIDI_protareTNSL.cc.

529 {
530
531 return( m_protare->hasFission( ) );
532}

Referenced by hasFission().

◆ incompleteParticles()

void GIDI::ProtareTNSL::incompleteParticles ( Transporting::Settings const & a_settings,
std::set< std::string > & a_incompleteParticles ) const
virtual

Calls the incompleteParticles method for each ProtareSingle in this.

Parameters
a_settings[in] Specifies the requested label.
a_incompleteParticles[out] The list of particles whose completeParticle method returns false.

Implements GIDI::Protare.

Definition at line 1054 of file GIDI_protareTNSL.cc.

1054 {
1055
1056 m_protare->incompleteParticles( a_settings, a_incompleteParticles );
1057 m_TNSL->incompleteParticles( a_settings, a_incompleteParticles );
1058}

Referenced by incompleteParticles().

◆ intid()

int GIDI::ProtareTNSL::intid ( std::string const & a_id) const
virtual

Returns the intid for the requested particle or -1 if the particle is not in m_protare PoPs database.

Parameters
a_id[in] The GNDS PoPs id for particle whose intd is requested.
Returns
C++ int for the requested particle or -1 if particle is not in PoPs.

Implements GIDI::Protare.

Definition at line 359 of file GIDI_protareTNSL.cc.

359 {
360
361 return( m_protare->intid( a_id ) );
362}

Referenced by intid().

◆ isDelayedFissionNeutronComplete()

bool GIDI::ProtareTNSL::isDelayedFissionNeutronComplete ( ) const
virtual

Returns false* if protare has delayed fission neutrons for an active reaction and they are not complete; otherwise, returns **true.

Returns
bool

Implements GIDI::Protare.

Definition at line 540 of file GIDI_protareTNSL.cc.

540 {
541
542 return( m_protare->isDelayedFissionNeutronComplete( ) );
543}

Referenced by isDelayedFissionNeutronComplete().

◆ libraries()

std::vector< std::string > GIDI::ProtareTNSL::libraries ( std::size_t a_index = 0) const
virtual

Returns the list of libraries for the (a_index+1)^th contained Protare. The index a_index can only be 0 (normal protare) or 1 (TNSL protare).

Parameters
a_index[in] The index of the Protare whose libraries are to be returned.
Returns
The list of libraries.

Implements GIDI::Protare.

Definition at line 206 of file GIDI_protareTNSL.cc.

206 {
207
208 if( a_index == 0 ) return( m_protare->libraries( ) );
209 if( a_index == 1 ) return( m_TNSL->libraries( ) );
210 throw Exception( "ProtareTNSL::libraries: index can only be 0 or 1." );
211}

Referenced by libraries().

◆ maximumLegendreOrder()

int GIDI::ProtareTNSL::maximumLegendreOrder ( LUPI::StatusMessageReporting & a_smr,
Transporting::MG const & a_settings,
Styles::TemperatureInfo const & a_temperatureInfo,
std::string const & a_productID ) const
virtual

Determines the maximum Legredre order present in the multi-group transfer matrix for a give product for a give label. Loops over all contained Protares to determine the maximum Legredre order.

Parameters
a_smr[Out] If errors are not to be thrown, then the error is reported via this instance.
a_settings[in] Specifies the requested label.
a_temperatureInfo[in] Specifies the temperature and labels use to lookup the requested data.
a_productID[in] The id of the requested product.
Returns
The maximum Legredre order. If no transfer matrix data are present for the requested product, -1 is returned.

Implements GIDI::Protare.

Definition at line 390 of file GIDI_protareTNSL.cc.

391 {
392
393 int maximumLegendreOrder1 = m_protare->maximumLegendreOrder( a_smr, a_settings, a_temperatureInfo, a_productID );
394 int maximumLegendreOrder2 = m_TNSL->maximumLegendreOrder( a_smr, a_settings, a_temperatureInfo, a_productID );
395
396 if( maximumLegendreOrder1 > maximumLegendreOrder2 ) return( maximumLegendreOrder1 );
397 return( maximumLegendreOrder2 );
398}

Referenced by maximumLegendreOrder().

◆ maximumTNSL_MultiGroupIndex()

std::size_t GIDI::ProtareTNSL::maximumTNSL_MultiGroupIndex ( Styles::TemperatureInfo const & a_temperatureInfo) const

Returns the maximum number of usable multi-groups for the thermal neutron scattering law protare for the request multi-group label in a_temperatureInfo.

Parameters
a_temperatureInfo[in] Specifies the temperature and labels use to lookup the requested data.
Returns
The last multigroup index for which the TNSL protare has cross section data. Above this index, the cross section, et al. data must come from the standard protare.

Definition at line 104 of file GIDI_protareTNSL.cc.

104 {
105
106 return( m_maximumTNSL_MultiGroupIndex.at( a_temperatureInfo.heatedMultiGroup( ) ) );
107}

Referenced by maximumTNSL_MultiGroupIndex().

◆ muCutoffForCoulombPlusNuclearElastic()

stringAndDoublePairs GIDI::ProtareTNSL::muCutoffForCoulombPlusNuclearElastic ( ) const
virtual

This method always returns 1 since the projectile is always a neutron.

Returns
Always returns 1.

Implements GIDI::Protare.

Definition at line 1040 of file GIDI_protareTNSL.cc.

1040 {
1041
1042 stringAndDoublePairs stringAndDoublePairs1;
1043
1044 return( stringAndDoublePairs1 );
1045}
std::vector< stringAndDoublePair > stringAndDoublePairs
Definition GIDI.hpp:486

Referenced by muCutoffForCoulombPlusNuclearElastic().

◆ multiGroupAvailableEnergy()

Vector GIDI::ProtareTNSL::multiGroupAvailableEnergy ( LUPI::StatusMessageReporting & a_smr,
Transporting::MG const & a_settings,
Styles::TemperatureInfo const & a_temperatureInfo,
ExcludeReactionsSet const & a_reactionsToExclude = ExcludeReactionsSet {} ) const
virtual

Returns the multi-group, total available energy for the requested label. This is a cross section weighted available energy summed over all reactions.

Parameters
a_smr[Out] If errors are not to be thrown, then the error is reported via this instance.
a_settings[in] Specifies the requested label.
a_temperatureInfo[in] Specifies the temperature and labels use to lookup the requested data.
a_reactionsToExclude[in] A list of reaction indices that are to be ignored when calculating the available energy.
Returns
The requested multi-group available energy as a GIDI::Vector.

Implements GIDI::Protare.

Definition at line 798 of file GIDI_protareTNSL.cc.

799 {
800
801 ExcludeReactionsSet excludeReactionsSet( a_reactionsToExclude );
802 Vector vector = m_protare->multiGroupAvailableEnergy( a_smr, a_settings, a_temperatureInfo, excludeReactionsSet );
803 excludeReactionsSetAdjust( excludeReactionsSet, *m_protare );
804
805 if( !m_elasticReaction->active( ) ) return( vector );
806
807 Vector vectorElastic = m_elasticReaction->multiGroupAvailableEnergy( a_smr, a_settings, a_temperatureInfo );
808
809 combineVectors( a_settings, a_temperatureInfo, vector, vectorElastic, m_TNSL->multiGroupAvailableEnergy( a_smr, a_settings, a_temperatureInfo ) );
810 return( vector );
811}
void combineVectors(Transporting::MG const &a_settings, Styles::TemperatureInfo const &a_temperatureInfo, Vector &a_vector, Vector const &a_vectorElastic, Vector const &a_vectorTNSL) const
void excludeReactionsSetAdjust(ExcludeReactionsSet &a_excludeReactionsSet, Protare const &a_protare)
Definition GIDI_misc.cc:461
std::set< std::size_t > ExcludeReactionsSet
Definition GIDI.hpp:47

Referenced by multiGroupAvailableEnergy().

◆ multiGroupAvailableMomentum()

Vector GIDI::ProtareTNSL::multiGroupAvailableMomentum ( LUPI::StatusMessageReporting & a_smr,
Transporting::MG const & a_settings,
Styles::TemperatureInfo const & a_temperatureInfo,
ExcludeReactionsSet const & a_reactionsToExclude = ExcludeReactionsSet {} ) const
virtual

Returns the multi-group, total available momentum for the requested label. This is a cross section weighted available momentum summed over all reactions.

Parameters
a_smr[Out] If errors are not to be thrown, then the error is reported via this instance.
a_settings[in] Specifies the requested label.
a_temperatureInfo[in] Specifies the temperature and labels use to lookup the requested data.
a_reactionsToExclude[in] A list of reaction indices that are to be ignored when calculating the available momentum.
Returns
The requested multi-group available momentum as a GIDI::Vector.

Implements GIDI::Protare.

Definition at line 884 of file GIDI_protareTNSL.cc.

885 {
886
887 ExcludeReactionsSet excludeReactionsSet( a_reactionsToExclude );
888 Vector vector = m_protare->multiGroupAvailableMomentum( a_smr, a_settings, a_temperatureInfo, excludeReactionsSet );
889 excludeReactionsSetAdjust( excludeReactionsSet, *m_protare );
890
891 if( !m_elasticReaction->active( ) ) return( vector );
892
893 Vector vectorElastic = m_elasticReaction->multiGroupAvailableMomentum( a_smr, a_settings, a_temperatureInfo );
894
895 combineVectors( a_settings, a_temperatureInfo, vector, vectorElastic, m_TNSL->multiGroupAvailableMomentum( a_smr, a_settings, a_temperatureInfo ) );
896 return( vector );
897}

Referenced by multiGroupAvailableMomentum().

◆ multiGroupAverageEnergy()

Vector GIDI::ProtareTNSL::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
virtual

Returns the multi-group, total average energy for the requested label for the requested product. This is a cross section weighted average energy summed over all reactions.

Parameters
a_smr[Out] If errors are not to be thrown, then the error is reported via this instance.
a_settings[in] Specifies the requested label.
a_temperatureInfo[in] Specifies the temperature and labels use to lookup the requested data.
a_productID[in] Particle id for the requested product.
a_reactionsToExclude[in] A list of reaction indices that are to be ignored when calculating the average energy.
Returns
The requested multi-group average energy as a GIDI::Vector.

Implements GIDI::Protare.

Definition at line 826 of file GIDI_protareTNSL.cc.

828 {
829
830 ExcludeReactionsSet excludeReactionsSet( a_reactionsToExclude );
831 Vector vector = m_protare->multiGroupAverageEnergy( a_smr, a_settings, a_temperatureInfo, a_productID, excludeReactionsSet );
832 excludeReactionsSetAdjust( excludeReactionsSet, *m_protare );
833
834 if( !m_elasticReaction->active( ) ) return( vector );
835
836 Vector vectorElastic = m_elasticReaction->multiGroupAverageEnergy( a_smr, a_settings, a_temperatureInfo, a_productID );
837
838 combineVectors( a_settings, a_temperatureInfo, vector, vectorElastic, m_TNSL->multiGroupAverageEnergy( a_smr, a_settings, a_temperatureInfo, a_productID ) );
839 return( vector );
840}

Referenced by multiGroupAverageEnergy().

◆ multiGroupAverageMomentum()

Vector GIDI::ProtareTNSL::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
virtual

Returns the multi-group, total average momentum for the requested label for the requested product. This is a cross section weighted average momentum summed over all reactions.

Parameters
a_smr[Out] If errors are not to be thrown, then the error is reported via this instance.
a_settings[in] Specifies the requested label.
a_temperatureInfo[in] Specifies the temperature and labels use to lookup the requested data.
a_productID[in] Particle id for the requested product.
a_reactionsToExclude[in] A list of reaction indices that are to be ignored when calculating the average momentum.
Returns
The requested multi-group average momentum as a GIDI::Vector.

Implements GIDI::Protare.

Definition at line 912 of file GIDI_protareTNSL.cc.

914 {
915
916 ExcludeReactionsSet excludeReactionsSet( a_reactionsToExclude );
917 Vector vector = m_protare->multiGroupAverageMomentum( a_smr, a_settings, a_temperatureInfo, a_productID, excludeReactionsSet );
918 excludeReactionsSetAdjust( excludeReactionsSet, *m_protare );
919
920 if( !m_elasticReaction->active( ) ) return( vector );
921
922 Vector vectorElastic = m_elasticReaction->multiGroupAverageMomentum( a_smr, a_settings, a_temperatureInfo, a_productID );
923
924 combineVectors( a_settings, a_temperatureInfo, vector, vectorElastic, m_TNSL->multiGroupAverageMomentum( a_smr, a_settings, a_temperatureInfo, a_productID ) );
925 return( vector );
926}

Referenced by multiGroupAverageMomentum().

◆ multiGroupCrossSection()

Vector GIDI::ProtareTNSL::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
virtual

Returns the multi-group, total cross section for the requested label. This is summed over all reactions.

Parameters
a_smr[Out] If errors are not to be thrown, then the error is reported via this instance.
a_settings[in] Specifies the requested label.
a_temperatureInfo[in] Specifies the temperature and labels use to lookup the requested data.
a_reactionsToExclude[in] A list of reaction indices that are to be ignored when calculating the cross section.
a_label[in] If not an empty string, this is used as the label for the form to return and the a_temperatureInfo labels are ignored.
Returns
The requested multi-group cross section as a GIDI::Vector.

Implements GIDI::Protare.

Definition at line 588 of file GIDI_protareTNSL.cc.

590 {
591
592 ExcludeReactionsSet excludeReactionsSet( a_reactionsToExclude );
593 Vector vector = m_protare->multiGroupCrossSection( a_smr, a_settings, a_temperatureInfo, excludeReactionsSet, a_label );
594 excludeReactionsSetAdjust( excludeReactionsSet, *m_protare );
595
596 if( !m_elasticReaction->active( ) ) return( vector );
597
598 Vector vectorElastic = m_elasticReaction->multiGroupCrossSection( a_smr, a_settings, a_temperatureInfo, a_label );
599
600 combineVectors( a_settings, a_temperatureInfo, vector, vectorElastic,
601 m_TNSL->multiGroupCrossSection( a_smr, a_settings, a_temperatureInfo, excludeReactionsSet, a_label ) );
602 return( vector );
603}

Referenced by multiGroupCrossSection().

◆ multiGroupDepositionEnergy()

Vector GIDI::ProtareTNSL::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
virtual

Returns the multi-group, total deposition energy for the requested label. This is a cross section weighted deposition energy summed over all reactions. The deposition energy is calculated by subtracting the average energy from each transportable particle from the available energy. The list of transportable particles is specified via the list of particle specified in the a_settings argument.

Parameters
a_smr[Out] If errors are not to be thrown, then the error is reported via this instance.
a_settings[in] Specifies the requested label and the products that are transported.
a_temperatureInfo[in] Specifies the temperature and labels use to lookup the requested data.
a_particles[in] The list of particles to be transported.
a_reactionsToExclude[in] A list of reaction indices that are to be ignored when calculating the deposition energy.
Returns
The requested multi-group deposition energy as a GIDI::Vector.

Implements GIDI::Protare.

Definition at line 856 of file GIDI_protareTNSL.cc.

858 {
859
860 ExcludeReactionsSet excludeReactionsSet( a_reactionsToExclude );
861 Vector vector = m_protare->multiGroupDepositionEnergy( a_smr, a_settings, a_temperatureInfo, a_particles, excludeReactionsSet );
862 excludeReactionsSetAdjust( excludeReactionsSet, *m_protare );
863
864 if( !m_elasticReaction->active( ) ) return( vector );
865
866 Vector vectorElastic = m_elasticReaction->multiGroupDepositionEnergy( a_smr, a_settings, a_temperatureInfo, a_particles );
867
868 combineVectors( a_settings, a_temperatureInfo, vector, vectorElastic, m_TNSL->multiGroupDepositionEnergy( a_smr, a_settings, a_temperatureInfo, a_particles ) );
869 return( vector );
870}

Referenced by multiGroupDepositionEnergy().

◆ multiGroupDepositionMomentum()

Vector GIDI::ProtareTNSL::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
virtual

Returns the multi-group, total deposition momentum for the requested label. This is a cross section weighted deposition momentum summed over all reactions. The deposition momentum is calculated by subtracting the average momentum from each transportable particle from the available momentum. The list of transportable particles is specified via the list of particle specified in the a_settings argument.

Parameters
a_smr[Out] If errors are not to be thrown, then the error is reported via this instance.
a_settings[in] Specifies the requested label.
a_temperatureInfo[in] Specifies the temperature and labels use to lookup the requested data.
a_particles[in] The list of particles to be transported.
a_reactionsToExclude[in] A list of reaction indices that are to be ignored when calculating the deposition momentum.
Returns
The requested multi-group deposition momentum as a GIDI::Vector.

Implements GIDI::Protare.

Definition at line 942 of file GIDI_protareTNSL.cc.

944 {
945
946 ExcludeReactionsSet excludeReactionsSet( a_reactionsToExclude );
947 Vector vector = m_protare->multiGroupDepositionMomentum( a_smr, a_settings, a_temperatureInfo, a_particles, excludeReactionsSet );
948 excludeReactionsSetAdjust( excludeReactionsSet, *m_protare );
949
950 if( !m_elasticReaction->active( ) ) return( vector );
951
952 Vector vectorElastic = m_elasticReaction->multiGroupDepositionMomentum( a_smr, a_settings, a_temperatureInfo, a_particles );
953
954 combineVectors( a_settings, a_temperatureInfo, vector, vectorElastic, m_TNSL->multiGroupDepositionMomentum( a_smr, a_settings, a_temperatureInfo, a_particles ) );
955 return( vector );
956}

Referenced by multiGroupDepositionMomentum().

◆ multiGroupFissionGammaMultiplicity()

Vector GIDI::ProtareTNSL::multiGroupFissionGammaMultiplicity ( LUPI::StatusMessageReporting & a_smr,
Transporting::MG const & a_settings,
Styles::TemperatureInfo const & a_temperatureInfo,
ExcludeReactionsSet const & a_reactionsToExclude = ExcludeReactionsSet {} ) const
virtual

Returns the multi-group, total fission gamma multiplicity for the requested label. This is a cross section weighted multiplicity.

Parameters
a_smr[Out] If errors are not to be thrown, then the error is reported via this instance.
a_settings[in] Specifies the requested label.
a_temperatureInfo[in] Specifies the temperature and labels use to lookup the requested data.
a_reactionsToExclude[in] A list of reaction indices that are to be ignored when calculating the multiplicity.
Returns
The requested multi-group fission neutron multiplicity as a GIDI::Vector.

Implements GIDI::Protare.

Definition at line 690 of file GIDI_protareTNSL.cc.

691 {
692
693 return( m_protare->multiGroupFissionGammaMultiplicity( a_smr, a_settings, a_temperatureInfo, a_reactionsToExclude ) );
694}

Referenced by multiGroupFissionGammaMultiplicity().

◆ multiGroupFissionMatrix()

Matrix GIDI::ProtareTNSL::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
virtual

Like ProtareTNSL::multiGroupProductMatrix, but only returns the fission neutron, transfer matrix.

Parameters
a_smr[Out] If errors are not to be thrown, then the error is reported via this instance.
a_settings[in] Specifies the requested label and if delayed neutrons should be included.
a_temperatureInfo[in] Specifies the temperature and labels use to lookup the requested data.
a_particles[in] The list of particles to be transported.
a_order[in] Requested product matrix, Legendre order.
a_reactionsToExclude[in] A list of reaction indices that are to be ignored when calculating the fission matrix.
Returns
The requested multi-group neutron fission matrix as a GIDI::Matrix.

Implements GIDI::Protare.

Definition at line 741 of file GIDI_protareTNSL.cc.

743 {
744
745 return( m_protare->multiGroupFissionMatrix( a_smr, a_settings, a_temperatureInfo, a_particles, a_order, a_reactionsToExclude ) );
746}

Referenced by multiGroupFissionMatrix().

◆ multiGroupFissionNeutronMultiplicity()

Vector GIDI::ProtareTNSL::multiGroupFissionNeutronMultiplicity ( LUPI::StatusMessageReporting & a_smr,
Transporting::MG const & a_settings,
Styles::TemperatureInfo const & a_temperatureInfo,
ExcludeReactionsSet const & a_reactionsToExclude = ExcludeReactionsSet {} ) const
virtual

Returns the multi-group, total fission neutron multiplicity for the requested label. This is a cross section weighted multiplicity.

Parameters
a_smr[Out] If errors are not to be thrown, then the error is reported via this instance.
a_settings[in] Specifies the requested label.
a_temperatureInfo[in] Specifies the temperature and labels use to lookup the requested data.
a_reactionsToExclude[in] A list of reaction indices that are to be ignored when calculating the multiplicity.
Returns
The requested multi-group fission neutron multiplicity as a GIDI::Vector.

Implements GIDI::Protare.

Definition at line 673 of file GIDI_protareTNSL.cc.

674 {
675
676 return( m_protare->multiGroupFissionNeutronMultiplicity( a_smr, a_settings, a_temperatureInfo, a_reactionsToExclude ) );
677}

Referenced by multiGroupFissionNeutronMultiplicity().

◆ multiGroupGain()

Vector GIDI::ProtareTNSL::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
virtual

Returns the multi-group, gain for the requested particle and label. This is a cross section weighted gain summed over all reactions.

Parameters
a_smr[Out] If errors are not to be thrown, then the error is reported via this instance.
a_settings[in] Specifies the requested label.
a_temperatureInfo[in] Specifies the temperature and labels use to lookup the requested data.
a_productID[in] The PoPs' id for the particle whose gain is to be calculated.
a_reactionsToExclude[in] A list of reaction indices that are to be ignored when calculating the gain.
Returns
The requested multi-group gain as a GIDI::Vector.

Implements GIDI::Protare.

Definition at line 970 of file GIDI_protareTNSL.cc.

972 {
973
974 std::string const projectile_id = m_protare->projectile( ).ID( );
975 ExcludeReactionsSet excludeReactionsSet( a_reactionsToExclude );
976 Vector vector = m_protare->multiGroupGain( a_smr, a_settings, a_temperatureInfo, a_productID, excludeReactionsSet );
977 excludeReactionsSetAdjust( excludeReactionsSet, *m_protare );
978
979 if( !m_elasticReaction->active( ) ) return( vector );
980
981 Vector vectorElastic = m_elasticReaction->multiGroupGain( a_smr, a_settings, a_temperatureInfo, a_productID, projectile_id );
982
983 combineVectors( a_settings, a_temperatureInfo, vector, vectorElastic, m_TNSL->multiGroupGain( a_smr, a_settings, a_temperatureInfo, a_productID ) );
984
985 return( vector );
986}

Referenced by multiGroupGain().

◆ multiGroupInverseSpeed()

Vector GIDI::ProtareTNSL::multiGroupInverseSpeed ( LUPI::StatusMessageReporting & a_smr,
Transporting::MG const & a_settings,
Styles::TemperatureInfo const & a_temperatureInfo ) const
virtual

Returns the inverse speeds for the requested label from the non TNSL protare. The label must be for a heated multi-group style.

Parameters
a_smr[Out] If errors are not to be thrown, then the error is reported via this instance.
a_settings[in] Specifies the requested label.
a_temperatureInfo[in] Specifies the temperature and labels use to lookup the requested data.
Returns
List of inverse speeds.

Implements GIDI::Protare.

Definition at line 570 of file GIDI_protareTNSL.cc.

571 {
572
573 return( m_protare->multiGroupInverseSpeed( a_smr, a_settings, a_temperatureInfo ) );
574}

Referenced by multiGroupInverseSpeed().

◆ multiGroupMultiplicity()

Vector GIDI::ProtareTNSL::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
virtual

Returns the multi-group, total multiplicity for the requested label for the requested product. This is a cross section weighted multiplicity.

Parameters
a_smr[Out] If errors are not to be thrown, then the error is reported via this instance.
a_settings[in] Specifies the requested label.
a_temperatureInfo[in] Specifies the temperature and labels use to lookup the requested data.
a_productID[in] Id for the requested product.
a_reactionsToExclude[in] A list of reaction indices that are to be ignored when calculating the multiplicity.
Returns
The requested multi-group multiplicity as a GIDI::Vector.

Implements GIDI::Protare.

Definition at line 646 of file GIDI_protareTNSL.cc.

648 {
649
650 ExcludeReactionsSet excludeReactionsSet( a_reactionsToExclude );
651 Vector vector = m_protare->multiGroupMultiplicity( a_smr, a_settings, a_temperatureInfo, a_productID );
652 excludeReactionsSetAdjust( excludeReactionsSet, *m_protare );
653
654 if( !m_elasticReaction->active( ) ) return( vector );
655
656 Vector vectorElastic = m_elasticReaction->multiGroupMultiplicity( a_smr, a_settings, a_temperatureInfo, a_productID );
657
658 combineVectors( a_settings, a_temperatureInfo, vector, vectorElastic, m_TNSL->multiGroupMultiplicity( a_smr, a_settings, a_temperatureInfo, a_productID ) );
659 return( vector );
660}

Referenced by multiGroupMultiplicity().

◆ multiGroupProductMatrix()

Matrix GIDI::ProtareTNSL::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
virtual

Returns the multi-group, total product matrix for the requested label for the requested product id for the requested Legendre order. If no data are found, an empty GIDI::Matrix is returned.

Parameters
a_smr[Out] If errors are not to be thrown, then the error is reported via this instance.
a_settings[in] Specifies the requested label and if delayed neutrons should be included.
a_temperatureInfo[in] Specifies the temperature and labels use to lookup the requested data.
a_particles[in] The list of particles to be transported.
a_productID[in] PoPs id for the requested product.
a_order[in] Requested product matrix, Legendre order.
a_reactionsToExclude[in] A list of reaction indices that are to be ignored when calculating the product matrix.
Returns
The requested multi-group product matrix as a GIDI::Matrix.

Implements GIDI::Protare.

Definition at line 711 of file GIDI_protareTNSL.cc.

713 {
714
715 ExcludeReactionsSet excludeReactionsSet( a_reactionsToExclude );
716 Matrix matrix = m_protare->multiGroupProductMatrix( a_smr, a_settings, a_temperatureInfo, a_particles, a_productID, a_order, excludeReactionsSet );
717 excludeReactionsSetAdjust( excludeReactionsSet, *m_protare );
718
719 if( !m_elasticReaction->active( ) ) return( matrix );
720
721 Matrix matrixElastic = m_elasticReaction->multiGroupProductMatrix( a_smr, a_settings, a_temperatureInfo, a_particles, a_productID, a_order );
722 Matrix matrixTNSL = m_TNSL->multiGroupProductMatrix( a_smr, a_settings, a_temperatureInfo, a_particles, a_productID, a_order );
723
724 combineMatrices( a_settings, a_temperatureInfo, matrix, matrixElastic, matrixTNSL );
725 return( matrix );
726}
void combineMatrices(Transporting::MG const &a_settings, Styles::TemperatureInfo const &a_temperatureInfo, Matrix &a_matrix, Matrix const &a_matrixElastic, Matrix const &a_matrixTNSL) const

Referenced by multiGroupProductMatrix(), and multiGroupTransportCorrection().

◆ multiGroupQ()

Vector GIDI::ProtareTNSL::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
virtual

Returns the multi-group, total Q for the requested label. This is a cross section weighted multiplicity summed over all reactions

Parameters
a_smr[Out] If errors are not to be thrown, then the error is reported via this instance.
a_settings[in] Specifies the requested label.
a_temperatureInfo[in] Specifies the temperature and labels use to lookup the requested data.
a_final[in] If false, only the Q for the primary reactions are return, otherwise, the Q for the final reactions.
a_reactionsToExclude[in] A list of reaction indices that are to be ignored when calculating the Q.
Returns
The requested multi-group Q as a GIDI::Vector.

Implements GIDI::Protare.

Definition at line 618 of file GIDI_protareTNSL.cc.

620 {
621
622 ExcludeReactionsSet excludeReactionsSet( a_reactionsToExclude );
623 Vector vector = m_protare->multiGroupQ( a_smr, a_settings, a_temperatureInfo, a_final, a_effectivePhotoAtomic );
624 excludeReactionsSetAdjust( excludeReactionsSet, *m_protare );
625
626 if( !m_elasticReaction->active( ) ) return( vector );
627
628 Vector vectorElastic = m_elasticReaction->multiGroupQ( a_smr, a_settings, a_temperatureInfo, a_final );
629
630 combineVectors( a_settings, a_temperatureInfo, vector, vectorElastic, m_TNSL->multiGroupQ( a_smr, a_settings, a_temperatureInfo, a_final, a_effectivePhotoAtomic ) );
631 return( vector );
632}

Referenced by multiGroupQ().

◆ multiGroupTransportCorrection()

Vector GIDI::ProtareTNSL::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
virtual

Returns the multi-group transport correction for the requested label. The transport correction is calculated from the transfer matrix for the projectile id for the Legendre order of a_order + 1.

Parameters
a_smr[Out] If errors are not to be thrown, then the error is reported via this instance.
a_settings[in] Specifies the requested label.
a_temperatureInfo[in] Specifies the temperature and labels use to lookup the requested data.
a_particles[in] The list of particles to be transported.
a_order[in] Maximum Legendre order for transport. The returned transport correction is for the next higher Legender order.
a_transportCorrectionType[in] Requested transport correction type.
a_temperature[in] The temperature of the flux to use when collapsing. Pass to the GIDI::collapse method.
a_reactionsToExclude[in] A list of reaction indices that are to be ignored when calculating the transport correction.
Returns
The requested multi-group transport correction as a GIDI::Vector.

Implements GIDI::Protare.

Definition at line 764 of file GIDI_protareTNSL.cc.

766 {
767
768 if( a_transportCorrectionType == TransportCorrectionType::None ) return( Vector( 0 ) );
769
770 Matrix matrix( multiGroupProductMatrix( a_smr, a_settings, a_temperatureInfo, a_particles, projectile( ).ID( ), a_order + 1,
771 a_reactionsToExclude ) );
772 Matrix matrixCollapsed = collapse( matrix, a_settings, a_particles, a_temperature, projectile( ).ID( ) );
773 std::size_t size = matrixCollapsed.size( );
774 std::vector<double> transportCorrection1( size, 0 );
775
776 if( a_transportCorrectionType == TransportCorrectionType::None ) {
777 }
778 else if( a_transportCorrectionType == TransportCorrectionType::Pendlebury ) {
779 for( std::size_t index = 0; index < size; ++index ) transportCorrection1[index] = matrixCollapsed[index][index]; }
780 else {
781 throw Exception( "Unsupported transport correction: only None and Pendlebury (i.e., Pendlebury/Underhill) are currently supported." );
782 }
783 return( Vector( transportCorrection1 ) );
784}
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
ParticleInfo const & projectile() const
Definition GIDI.hpp:4541
Vector collapse(Vector const &a_vector, Transporting::Settings const &a_settings, Transporting::Particles const &a_particles, double a_temperature)

Referenced by multiGroupTransportCorrection().

◆ numberOfLazyParsingHelperForms()

int GIDI::ProtareTNSL::numberOfLazyParsingHelperForms ( ) const
virtual

Returns the number of LazyParsingHelperForms instantiated.

Returns
The number of LazyParsingHelperForms instantiated.

Implements GIDI::Protare.

Definition at line 279 of file GIDI_protareTNSL.cc.

279 {
280
281 return( m_protare->numberOfLazyParsingHelperForms( ) + m_TNSL->numberOfLazyParsingHelperForms( ) );
282}

Referenced by numberOfLazyParsingHelperForms().

◆ numberOfLazyParsingHelperFormsReplaced()

int GIDI::ProtareTNSL::numberOfLazyParsingHelperFormsReplaced ( ) const
virtual

Returns the number of instantiated LazyParsingHelperForms replaced with the appropriate form.

Returns
The number of LazyParsingHelperForms replaced.

Implements GIDI::Protare.

Definition at line 290 of file GIDI_protareTNSL.cc.

290 {
291
292 return( m_protare->numberOfLazyParsingHelperFormsReplaced( ) + m_TNSL->numberOfLazyParsingHelperFormsReplaced( ) );
293}

Referenced by numberOfLazyParsingHelperFormsReplaced().

◆ numberOfOrphanProducts()

std::size_t GIDI::ProtareTNSL::numberOfOrphanProducts ( ) const
virtual

Returns the number of orphanProduct's from the non TNSL protare.

Returns
The total number of orphanProducts.

Implements GIDI::Protare.

Definition at line 483 of file GIDI_protareTNSL.cc.

483 {
484
485 return( m_protare->numberOfOrphanProducts( ) );
486}

Referenced by numberOfOrphanProducts().

◆ numberOfProtares()

std::size_t GIDI::ProtareTNSL::numberOfProtares ( ) const
inlinevirtual

Always returns 2.

Implements GIDI::Protare.

Definition at line 5052 of file GIDI.hpp.

◆ numberOfReactions()

std::size_t GIDI::ProtareTNSL::numberOfReactions ( ) const
virtual

Returns the number of reactions from the non TNSL protare.

Returns
The total number of reactions.

Implements GIDI::Protare.

Definition at line 425 of file GIDI_protareTNSL.cc.

425 {
426
427 return( m_TNSL->numberOfReactions( ) + m_protare->numberOfReactions( ) );
428}

Referenced by numberOfReactions(), reaction(), reaction(), and reaction().

◆ orphanProduct() [1/2]

Reaction * GIDI::ProtareTNSL::orphanProduct ( std::size_t a_index)
virtual

Returns the (a_index+1)th orphanProduct from the non TNSL protare.

Parameters
a_index[in] The index of the requested orphanProduct.
Returns
The (a_index+1)th orphanProduct.

Implements GIDI::Protare.

Definition at line 495 of file GIDI_protareTNSL.cc.

495 {
496
497 return( m_protare->orphanProduct( a_index ) );
498}

Referenced by orphanProduct(), and orphanProduct().

◆ orphanProduct() [2/2]

Reaction const * GIDI::ProtareTNSL::orphanProduct ( std::size_t a_index) const
virtual

Returns the (a_index+1)th orphanProduct from the non TNSL protare.

Parameters
a_index[in] The index of the requested orphanProduct.
Returns
The (a_index+1)th orphanProduct.

Implements GIDI::Protare.

Definition at line 507 of file GIDI_protareTNSL.cc.

507 {
508
509 return( m_protare->orphanProduct( a_index ) );
510}

◆ productIDs()

void GIDI::ProtareTNSL::productIDs ( std::set< std::string > & a_ids,
Transporting::Particles const & a_particles,
bool a_transportablesOnly ) const
virtual

Calls productIDs for each Protare contained in this.

Parameters
a_ids[in] Contains the list of particle ids.
a_particles[in] The list of particles to be transported.
a_transportablesOnly[in] If true only transportable particle ids are added to a_ids.

Implements GIDI::Protare.

Definition at line 372 of file GIDI_protareTNSL.cc.

372 {
373
374 m_protare->productIDs( a_ids, a_particles, a_transportablesOnly );
375 m_TNSL->productIDs( a_ids, a_particles, a_transportablesOnly );
376}

Referenced by productIDs().

◆ projectileFrame()

Frame GIDI::ProtareTNSL::projectileFrame ( std::size_t a_index = 0) const
virtual

Returns the projectile frame for the (a_index+1)^th Protare. The index a_index can only be 0 (normal protare) or 1 (TNSL protare).

Parameters
a_index[in] The index of the Protare whose projectile frame is returned.
Returns
The projectile frame.

Implements GIDI::Protare.

Definition at line 236 of file GIDI_protareTNSL.cc.

236 {
237
238 if( a_index == 0 ) return( m_protare->projectileFrame( ) );
239 if( a_index == 1 ) return( m_TNSL->projectileFrame( ) );
240 throw Exception( "ProtareTNSL::projectileFrame: index can only be 0 or 1." );
241}

Referenced by projectileFrame().

◆ protare() [1/2]

ProtareSingle * GIDI::ProtareTNSL::protare ( std::size_t a_index = 0)
virtual

Returns the pointer representing the (a_index - 1)th ProtareSingle.

Parameters
a_index[in] Index of the ProtareSingle to return. Can only be 0 or 1.
Returns
Pointer to the requested protare or nullptr if invalid a_index..

Implements GIDI::Protare.

Definition at line 251 of file GIDI_protareTNSL.cc.

251 {
252
253 if( a_index == 0 ) return( m_protare );
254 if( a_index == 1 ) return( m_TNSL );
255 return( nullptr );
256}

Referenced by protare(), and protare().

◆ protare() [2/2]

ProtareSingle const * GIDI::ProtareTNSL::protare ( std::size_t a_index = 0) const
virtual

Returns the pointer representing the (a_index - 1)th ProtareSingle.

Parameters
a_index[in] Index of the ProtareSingle to return. Can only be 0 or 1.
Returns
Pointer to the requested protare or nullptr if invalid a_index..

Implements GIDI::Protare.

Definition at line 266 of file GIDI_protareTNSL.cc.

266 {
267
268 if( a_index == 0 ) return( m_protare );
269 if( a_index == 1 ) return( m_TNSL );
270 return( nullptr );
271}

◆ protareType()

ProtareType GIDI::ProtareTNSL::protareType ( ) const
inlinevirtual

Returns the type of the protare.

Implements GIDI::Protare.

Definition at line 5051 of file GIDI.hpp.

◆ reaction() [1/3]

Reaction * GIDI::ProtareTNSL::reaction ( std::size_t a_index)
virtual

Returns the (a_index+1)th reaction from the non TNSL protare.

Parameters
a_index[in] The index of the requested reaction.
Returns
The (a_index+1)th reaction.

Implements GIDI::Protare.

Definition at line 437 of file GIDI_protareTNSL.cc.

437 {
438
439 if( a_index < m_TNSL->numberOfReactions( ) ) return( m_TNSL->reaction( a_index ) );
440
441 return( m_protare->reaction( a_index - m_TNSL->numberOfReactions( ) ) );
442}
std::size_t numberOfReactions() const

Referenced by reaction(), reaction(), and reaction().

◆ reaction() [2/3]

Reaction const * GIDI::ProtareTNSL::reaction ( std::size_t a_index) const
virtual

Returns the (a_index+1)th reaction from the non TNSL protare.

Parameters
a_index[in] The index of the requested reaction.
Returns
The (a_index+1)th reaction.

Implements GIDI::Protare.

Definition at line 451 of file GIDI_protareTNSL.cc.

451 {
452
453 if( a_index < m_TNSL->numberOfReactions( ) ) return( m_TNSL->reaction( a_index ) );
454
455 return( m_protare->reaction( a_index - m_TNSL->numberOfReactions( ) ) );
456}

◆ reaction() [3/3]

Reaction const * GIDI::ProtareTNSL::reaction ( std::size_t a_index,
Transporting::MG const & a_settings,
ExcludeReactionsSet const & a_reactionsToExclude = ExcludeReactionsSet {} ) const
virtual

Returns the (a_index+1)th reaction from the non TNSL protare or nullptr. If the indexed reaction is deactivated or exlucded, a nullptr is returned.

Parameters
a_index[in] The index of the requested reaction.
a_settings[in] Specifies the requested label.
a_reactionsToExclude[in] A list of reaction indices that are to be ignored when calculating the cross section.
Returns
The (a_index+1)th reaction or a nullptr.

Implements GIDI::Protare.

Definition at line 469 of file GIDI_protareTNSL.cc.

470 {
471
472 if( a_index < m_TNSL->numberOfReactions( ) ) return( m_TNSL->reaction( a_index, a_settings, a_reactionsToExclude ) );
473
474 return( m_protare->reaction( a_index - m_TNSL->numberOfReactions( ), a_settings, a_reactionsToExclude ) );
475}

◆ realFileName()

std::string const & GIDI::ProtareTNSL::realFileName ( std::size_t a_index = 0) const
virtual

Returns the real file name for the (a_index+1)^th Protare. The index a_index can only be 0 (normal protare) or 1 (TNSL protare).

Parameters
a_index[in] The index of the Protare whose real file name is returned.
Returns
The real file name.

Implements GIDI::Protare.

Definition at line 191 of file GIDI_protareTNSL.cc.

191 {
192
193 if( a_index == 0 ) return( m_protare->realFileName( ) );
194 if( a_index == 1 ) return( m_TNSL->realFileName( ) );
195 throw Exception( "ProtareTNSL::realFileName: index can only be 0 or 1." );
196}

Referenced by realFileName().

◆ style()

Styles::Base & GIDI::ProtareTNSL::style ( std::string const & a_label)
virtual

Returns the style with label a_label from the non TNSL protare.

Parameters
a_label[in] The label of the requested style.
Returns
The style with label a_label.

Implements GIDI::Protare.

Definition at line 324 of file GIDI_protareTNSL.cc.

324 {
325
326 return( m_protare->style( a_label ) );
327}

Referenced by style().

◆ styles() [1/2]

Styles::Suite & GIDI::ProtareTNSL::styles ( )
virtual

Returns the Styles::Suite from the non TNSL protare.

Returns
The Styles::Suite.

Implements GIDI::Protare.

Definition at line 335 of file GIDI_protareTNSL.cc.

335 {
336
337 return( m_protare->styles( ) );
338}

Referenced by styles(), and styles().

◆ styles() [2/2]

Styles::Suite const & GIDI::ProtareTNSL::styles ( ) const
virtual

Returns the Styles::Suite from the non TNSL protare.

Returns
The Styles::Suite.

Implements GIDI::Protare.

Definition at line 346 of file GIDI_protareTNSL.cc.

346 {
347
348 return( m_protare->styles( ) );
349}

◆ temperatures()

Styles::TemperatureInfos GIDI::ProtareTNSL::temperatures ( ) const
virtual

Returns a list of all process temperature data from the non TNSL protare. For each temeprature, the labels for its

  • heated cross section data,
  • gridded cross section data,
  • multi-group data, and
  • multi-group upscatter data.

are returned. If no data are present for a give data type (e.g., gridded cross section, multi-group upscatter), its label is an empty std::string.

Returns
The list of temperatures and their labels via an Styles::TemperatureInfos instance. The Styles::TemperatureInfos class has many (if not all) the method of a std::vector.

Implements GIDI::Protare.

Definition at line 414 of file GIDI_protareTNSL.cc.

414 {
415
416 return( m_protare->temperatures( ) );
417}

Referenced by temperatures().

◆ thresholdFactor()

double GIDI::ProtareTNSL::thresholdFactor ( ) const
virtual

Returns the threshold factor for the projectile hitting the target.

Returns
The threshold factor.

Implements GIDI::Protare.

Definition at line 301 of file GIDI_protareTNSL.cc.

301 {
302
303 return( m_protare->thresholdFactor( ) );
304}

Referenced by thresholdFactor().

◆ TNSL() [1/2]

ProtareSingle * GIDI::ProtareTNSL::TNSL ( )
inline

Returns the m_TNSL member.

Definition at line 5040 of file GIDI.hpp.

◆ TNSL() [2/2]

ProtareSingle const * GIDI::ProtareTNSL::TNSL ( ) const
inline

Returns the m_TNSL member.

Definition at line 5041 of file GIDI.hpp.

◆ TNSL_crossSectionSumCorrection() [1/3]

void GIDI::ProtareTNSL::TNSL_crossSectionSumCorrection ( std::string const & a_label,
Functions::XYs1d & a_crossSectionSum )
virtual

If the protare is a ProtareTNSL then summing over all reactions will include the standard protare's elastic cross section in the domain of the TNSL data. The standard elastic cross section should not be added in this domain. If needed, this function corrects the cross section for this over counting of the elastic cross section.

Parameters
a_label[in] The label of the elastic cross section data to use if over counting needs to be corrected.
a_crossSectionSum[in] The cross section to correct.

Reimplemented from GIDI::Protare.

Definition at line 997 of file GIDI_protareTNSL.cc.

997 {
998
999 double projectileEnergyMax = m_TNSL->projectileEnergyMax( );
1000 Functions::XYs1d *xys1d = m_elasticReaction->crossSection( ).get<Functions::XYs1d>( a_label );
1001
1002 ptwXYPoints *ptwXY = const_cast<ptwXYPoints *>( xys1d->ptwXY( ) );
1003 ptwXYPoints *sliced = ptwXY_domainMaxSlice( NULL, ptwXY, projectileEnergyMax, ptwXY_length( NULL, ptwXY ), 1 );
1004 Functions::XYs1d slicedXYs1d( a_crossSectionSum.axes( ), sliced );
1005
1006 a_crossSectionSum -= slicedXYs1d;
1007}
struct ptwXYPoints_s ptwXYPoints
ptwXYPoints * ptwXY_domainMaxSlice(statusMessageReporting *smr, ptwXYPoints *ptwXY, double domainMax, int64_t secondarySize, int fill)
Definition ptwXY_core.c:499
int64_t ptwXY_length(statusMessageReporting *smr, ptwXYPoints *ptwXY)
Definition ptwXY_core.c:793

Referenced by TNSL_crossSectionSumCorrection(), and TNSL_crossSectionSumCorrection().

◆ TNSL_crossSectionSumCorrection() [2/3]

void GIDI::ProtareTNSL::TNSL_crossSectionSumCorrection ( std::string const & a_label,
Functions::Ys1d & a_crossSectionSum )
virtual

If the protare is a ProtareTNSL then summing over all reactions will include the standard protare's elastic cross section in the domain of the TNSL data. The standard elastic cross section should not be added in this domain. If needed, this function corrects the cross section for this over counting of the elastic cross section.

Parameters
a_label[in] The label of the elastic cross section data to use if over counting needs to be corrected.
a_crossSectionSum[in] The cross section to correct.

Reimplemented from GIDI::Protare.

Definition at line 1018 of file GIDI_protareTNSL.cc.

1018 {
1019
1020 double projectileEnergyMax = m_TNSL->projectileEnergyMax( );
1021 Styles::GriddedCrossSection const *griddedCrossSection = m_protare->styles( ).get<Styles::GriddedCrossSection>( a_label );
1022 nf_Buffer<double> const energies = griddedCrossSection->grid( ).values( );
1023 Functions::Ys1d const *ys1d = m_elasticReaction->crossSection( ).get<Functions::Ys1d const>( a_label );
1024
1025 std::size_t start = ys1d->start( );
1026 std::vector<double> const &Ys = ys1d->Ys( );
1027 std::vector<double> &crossSectionYs = a_crossSectionSum.Ys( );
1028 for( std::size_t index = 0; index < Ys.size( ); ++index ) {
1029 if( energies[index] > projectileEnergyMax ) break;
1030 crossSectionYs[index+start] -= Ys[index];
1031 }
1032}

◆ TNSL_crossSectionSumCorrection() [3/3]

void GIDI::ProtareTNSL::TNSL_crossSectionSumCorrection ( std::string const & a_label,
Vector & a_crossSectionSum )
inlinevirtual

Reimplemented from GIDI::Protare.

Definition at line 5151 of file GIDI.hpp.

5151 {
5152 return( Protare::TNSL_crossSectionSumCorrection( a_label, a_crossSectionSum ) );
5153 }
virtual void TNSL_crossSectionSumCorrection(std::string const &a_label, Functions::XYs1d &a_crossSectionSum)

◆ updateReactionIndices()

void GIDI::ProtareTNSL::updateReactionIndices ( std::size_t a_offset) const
virtual

Re-indexs the reactions in the reactions, orphanProducts and fissionComponents suites.

Implements GIDI::Protare.

Definition at line 517 of file GIDI_protareTNSL.cc.

517 {
518
519 m_TNSL->updateReactionIndices( 0 );
520 m_protare->updateReactionIndices( m_TNSL->numberOfReactions( ) );
521}

Referenced by updateReactionIndices().


The documentation for this class was generated from the following files: