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

#include <GIDI.hpp>

Inheritance diagram for GIDI::DelayedNeutron:

Public Member Functions

 DelayedNeutron (Construction::Settings const &a_construction, HAPI::Node const &a_node, SetupInfo &a_setupInfo, PoPI::Database const &a_pops, PoPI::Database const &a_internalPoPs, Suite *a_parent, Styles::Suite const *a_styles)
 ~DelayedNeutron ()
int delayedNeutronIndex () const
void setDelayedNeutronIndex (int a_delayedNeutronIndex)
Suiterate ()
Suite const & rate () const
Productproduct ()
Product const & product () const
GUPI::AncestryfindInAncestry3 (std::string const &a_item)
GUPI::Ancestry const * findInAncestry3 (std::string const &a_item) const
void productIDs (std::set< std::string > &a_indices, Transporting::Particles const &a_particles, bool a_transportablesOnly) const
int productMultiplicity (std::string const &a_productID) const
int maximumLegendreOrder (LUPI::StatusMessageReporting &a_smr, Transporting::MG const &a_settings, Styles::TemperatureInfo const &a_temperatureInfo, std::string const &a_productID) const
Vector multiGroupMultiplicity (LUPI::StatusMessageReporting &a_smr, Transporting::MG const &a_settings, Styles::TemperatureInfo const &a_temperatureInfo, std::string const &a_productID) 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) const
Vector multiGroupAverageEnergy (LUPI::StatusMessageReporting &a_smr, Transporting::MG const &a_settings, Styles::TemperatureInfo const &a_temperatureInfo, std::string const &a_productID) const
Vector multiGroupAverageMomentum (LUPI::StatusMessageReporting &a_smr, Transporting::MG const &a_settings, Styles::TemperatureInfo const &a_temperatureInfo, std::string const &a_productID) const
void incompleteParticles (Transporting::Settings const &a_settings, std::set< std::string > &a_incompleteParticles) const
void continuousEnergyProductData (Transporting::Settings const &a_settings, std::string const &a_particleID, double a_energy, double &a_productEnergy, double &a_productMomentum, double &a_productGain, bool a_ignoreIncompleteParticles) const
void mapContinuousEnergyProductData (Transporting::Settings const &a_settings, std::string const &a_particleID, std::vector< double > const &a_energies, std::size_t a_offset, std::vector< double > &a_productEnergies, std::vector< double > &a_productMomenta, std::vector< double > &a_productGains, bool a_ignoreIncompleteParticles) const
void calculateMultiGroupData (ProtareSingle const *a_protare, Styles::TemperatureInfo const &a_temperatureInfo, std::string const &a_heatedMultiGroupLabel, MultiGroupCalulationInformation const &a_multiGroupCalulationInformation, Functions::XYs1d const &a_crossSectionXYs1d)
void toXMLList (GUPI::WriteInfo &a_writeInfo, std::string const &a_indent="") const
Public Member Functions inherited from GIDI::Form
 Form (FormType a_type)
 Form (std::string const &a_moniker, FormType a_type, std::string const &a_label)
 Form (HAPI::Node const &a_node, SetupInfo &a_setupInfo, FormType a_type, Suite *a_suite=nullptr)
 Form (Form const &a_form)
virtual ~Form ()
Formoperator= (Form const &a_rhs)
Suiteparent () const
std::string const & label () const
void setLabel (std::string const &a_label)
virtual std::string actualMoniker () const
std::string const & keyName () const
void setKeyName (std::string const &a_keyName)
std::string const & keyValue () const
virtual void setKeyValue (std::string const &a_keyName) const
FormType type () const
Form const * sibling (std::string a_label) const
GUPI::AncestryfindInAncestry3 (LUPI_maybeUnused std::string const &a_item)
GUPI::Ancestry const * findInAncestry3 (LUPI_maybeUnused std::string const &a_item) const
std::string xlinkItemKey () const
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)
std::string toXLink () 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)

Detailed Description

This class represents a GNDS delayedNeutron.

Definition at line 3954 of file GIDI.hpp.

Constructor & Destructor Documentation

◆ DelayedNeutron()

GIDI::DelayedNeutron::DelayedNeutron ( Construction::Settings const & a_construction,
HAPI::Node const & a_node,
SetupInfo & a_setupInfo,
PoPI::Database const & a_pops,
PoPI::Database const & a_internalPoPs,
Suite * a_parent,
Styles::Suite const * a_styles )

Constructed from data in a <outputChannel> node.

Parameters
a_construction[in] Used to pass user options to the constructor.
a_node[in] The reaction HAPI::Node to be parsed and used to construct the reaction.
a_setupInfo[in] Information create my the Protare constructor to help in parsing.
a_pops[in] The external PoPI::Database instance used to get particle indices and possibly other particle information.
a_internalPoPs[in] The internal PoPI::Database instance used to get particle indices and possibly other particle information. This is the <PoPs> node under the <reactionSuite> node.
a_parent[in] The parent GIDI::Suite.
a_styles[in] The <styles> node under the <reactionSuite> node.

Definition at line 31 of file GIDI_delayedNeutron.cc.

32 :
33 Form( a_node, a_setupInfo, FormType::delayedNeutron, a_parent ),
34 m_delayedNeutronIndex( 0 ),
35 m_rate( a_construction, GIDI_rateChars, GIDI_labelChars, a_node, a_setupInfo, a_pops, a_internalPoPs, parsePhysicalQuantitySuite, a_styles ),
36 m_product( a_construction, a_node.child( GIDI_productChars ), a_setupInfo, a_pops, a_internalPoPs, nullptr, a_styles ) {
37
38 m_rate.setAncestor( this );
39 m_product.setAncestor( this );
40}
#define GIDI_productChars
Definition GIDI.hpp:221
#define GIDI_labelChars
Definition GIDI.hpp:438
#define GIDI_rateChars
Definition GIDI.hpp:234
Form(FormType a_type)
Definition GIDI_form.cc:25
Form * parsePhysicalQuantitySuite(Construction::Settings const &a_construction, Suite *parent, HAPI::Node const &a_node, SetupInfo &a_setupInfo, PoPI::Database const &a_pop, PoPI::Database const &a_internalPoPs, std::string const &a_name, Styles::Suite const *a_styles)

◆ ~DelayedNeutron()

GIDI::DelayedNeutron::~DelayedNeutron ( )

Definition at line 45 of file GIDI_delayedNeutron.cc.

45 {
46
47}

Member Function Documentation

◆ calculateMultiGroupData()

void GIDI::DelayedNeutron::calculateMultiGroupData ( ProtareSingle const * a_protare,
Styles::TemperatureInfo const & a_temperatureInfo,
std::string const & a_heatedMultiGroupLabel,
MultiGroupCalulationInformation const & a_multiGroupCalulationInformation,
Functions::XYs1d const & a_crossSectionXYs1d )

This methods calculates multi-group data for all needed components and adds each component's multi-group with label a_heatedMultiGroupLabel.

Parameters
a_temperatureInfo[in] Specifies the temperature and labels use to lookup the requested data.
a_heatedMultiGroupLabel[in] The label of the style for the multi-group data being added.
a_multiGroupCalulationInformation[in] Store multi-group boundary and flux data used for multi-grouping.
a_crossSectionXYs1d[in[ The cross section weight.

Definition at line 257 of file GIDI_delayedNeutron.cc.

259 {
260
261 m_product.calculateMultiGroupData( a_protare, a_temperatureInfo, a_heatedMultiGroupLabel, a_multiGroupCalulationInformation, a_crossSectionXYs1d );
262}

Referenced by GIDI::FissionFragmentData::calculateMultiGroupData().

◆ continuousEnergyProductData()

void GIDI::DelayedNeutron::continuousEnergyProductData ( Transporting::Settings const & a_settings,
std::string const & a_particleID,
double a_energy,
double & a_productEnergy,
double & a_productMomentum,
double & a_productGain,
bool a_ignoreIncompleteParticles ) const

Returns, via arguments, the average energy and momentum, and gain for product with particle id a_particleID.

Parameters
a_settings[in] Specifies the requested label.
a_particleID[in] The particle id of the product.
a_energy[in] The energy of the projectile.
a_productEnergy[in] The average energy of the product.
a_productMomentum[in] The average momentum of the product.
a_productGain[in] The gain of the product.
a_ignoreIncompleteParticles[in] If true, incomplete particles are ignore, otherwise a throw is executed.

Definition at line 220 of file GIDI_delayedNeutron.cc.

221 {
222
223 m_product.continuousEnergyProductData( a_settings, a_particleID, a_energy, a_productEnergy, a_productMomentum, a_productGain,
224 a_ignoreIncompleteParticles );
225}

Referenced by GIDI::FissionFragmentData::continuousEnergyProductData().

◆ delayedNeutronIndex()

int GIDI::DelayedNeutron::delayedNeutronIndex ( ) const
inline

Definition at line 3965 of file GIDI.hpp.

3965{ return( m_delayedNeutronIndex ); }

◆ findInAncestry3() [1/2]

GUPI::Ancestry * GIDI::DelayedNeutron::findInAncestry3 ( std::string const & a_item)
virtual

Used by GUPI::Ancestry to tranverse GNDS nodes. This method returns a pointer to a derived class' a_item member or nullptr if none exists.

Parameters
a_item[in] The name of the class member whose pointer is to be return.
Returns
The pointer to the class member or nullptr if class does not have a member named a_item.

Implements GUPI::Ancestry.

Definition at line 56 of file GIDI_delayedNeutron.cc.

56 {
57
58 if( a_item == GIDI_rateChars ) return( &m_rate );
59 if( a_item == GIDI_productChars ) return( &m_product );
60
61 return( nullptr );
62}

◆ findInAncestry3() [2/2]

GUPI::Ancestry const * GIDI::DelayedNeutron::findInAncestry3 ( std::string const & a_item) const
virtual

Used by GUPI::Ancestry to tranverse GNDS nodes. This method returns a pointer to a derived class' a_item member or nullptr if none exists.

Parameters
a_item[in] The name of the class member whose pointer is to be return.
Returns
The pointer to the class member or nullptr if class does not have a member named a_item.

Implements GUPI::Ancestry.

Definition at line 71 of file GIDI_delayedNeutron.cc.

71 {
72
73 if( a_item == GIDI_rateChars ) return( &m_rate );
74 if( a_item == GIDI_productChars ) return( &m_product );
75
76 return( nullptr );
77}

◆ incompleteParticles()

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

Added the product to a_incompleteParticles if the product's completeParticle returns false.

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

Definition at line 203 of file GIDI_delayedNeutron.cc.

203 {
204
205 m_product.incompleteParticles( a_settings, a_incompleteParticles );
206}

Referenced by GIDI::FissionFragmentData::incompleteParticles().

◆ mapContinuousEnergyProductData()

void GIDI::DelayedNeutron::mapContinuousEnergyProductData ( Transporting::Settings const & a_settings,
std::string const & a_particleID,
std::vector< double > const & a_energies,
std::size_t a_offset,
std::vector< double > & a_productEnergies,
std::vector< double > & a_productMomenta,
std::vector< double > & a_productGains,
bool a_ignoreIncompleteParticles ) const

Modifies the average product energies, momenta and gains for product with particle id a_particleID.

Parameters
a_settings[in] Specifies user options.
a_particleID[in] The particle id of the product.
a_energies[in] The vector of energies to map the data to.
a_offset[in] The index of the first energy whose data are to be added to the vectors.
a_productEnergies[out] The vector of average energies of the product.
a_productMomenta[out] The vector of average momenta of the product.
a_productGains[out] The vector of gain of the product.
a_ignoreIncompleteParticles[in] If true, incomplete particles are ignore, otherwise a throw is executed.

Definition at line 240 of file GIDI_delayedNeutron.cc.

242 {
243
244 m_product.mapContinuousEnergyProductData( a_settings, a_particleID, a_energies, a_offset, a_productEnergies, a_productMomenta,
245 a_productGains, a_ignoreIncompleteParticles );
246}

Referenced by GIDI::FissionFragmentData::mapContinuousEnergyProductData().

◆ maximumLegendreOrder()

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

Determines the maximum Legredre order present in the multi-group transfer matrix for the specified products of this output channel.

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 of the requested product.
Returns
The maximum Legredre order. If no transfer matrix data are present for the requested product, -1 is returned.

Definition at line 117 of file GIDI_delayedNeutron.cc.

118 {
119
120 return( m_product.maximumLegendreOrder( a_smr, a_settings, a_temperatureInfo, a_productID ) );
121}

Referenced by GIDI::FissionFragmentData::maximumLegendreOrder().

◆ multiGroupAverageEnergy()

Vector GIDI::DelayedNeutron::multiGroupAverageEnergy ( LUPI::StatusMessageReporting & a_smr,
Transporting::MG const & a_settings,
Styles::TemperatureInfo const & a_temperatureInfo,
std::string const & a_productID ) const

Returns the sum of the multi-group, average energy for the requested label for the requested product. This is a cross section weighted average energy.

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.
Returns
The requested multi-group average energy as a GIDI::Vector.

Definition at line 173 of file GIDI_delayedNeutron.cc.

174 {
175
176 return( m_product.multiGroupAverageEnergy( a_smr, a_settings, a_temperatureInfo, a_productID ) );
177}

Referenced by GIDI::FissionFragmentData::multiGroupAverageEnergy().

◆ multiGroupAverageMomentum()

Vector GIDI::DelayedNeutron::multiGroupAverageMomentum ( LUPI::StatusMessageReporting & a_smr,
Transporting::MG const & a_settings,
Styles::TemperatureInfo const & a_temperatureInfo,
std::string const & a_productID ) const

Returns the sum of the multi-group, average momentum for the requested label for the requested product. This is a cross section weighted average momentum.

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.
Returns
The requested multi-group average momentum as a GIDI::Vector.

Definition at line 190 of file GIDI_delayedNeutron.cc.

191 {
192
193 return( m_product.multiGroupAverageMomentum( a_smr, a_settings, a_temperatureInfo, a_productID ) );
194}

Referenced by GIDI::FissionFragmentData::multiGroupAverageMomentum().

◆ multiGroupMultiplicity()

Vector GIDI::DelayedNeutron::multiGroupMultiplicity ( LUPI::StatusMessageReporting & a_smr,
Transporting::MG const & a_settings,
Styles::TemperatureInfo const & a_temperatureInfo,
std::string const & a_productID ) const

Returns the sum of the multi-group multiplicity for the requested label for the request product of this output channel. 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] Particle id for the requested product.
Returns
The requested multi-group multiplicity as a GIDI::Vector.

Definition at line 135 of file GIDI_delayedNeutron.cc.

136 {
137
138 return( m_product.multiGroupMultiplicity( a_smr, a_settings, a_temperatureInfo, a_productID ) );
139}

Referenced by GIDI::FissionFragmentData::multiGroupMultiplicity().

◆ multiGroupProductMatrix()

Matrix GIDI::DelayedNeutron::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 ) const

Returns the multi-group, product matrix for the requested label for the requested product index 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] Particle id for the requested product.
a_order[in] Requested product matrix, Legendre order.
Returns
The requested multi-group product matrix as a GIDI::Matrix.

Definition at line 155 of file GIDI_delayedNeutron.cc.

157 {
158
159 return( m_product.multiGroupProductMatrix( a_smr, a_settings, a_temperatureInfo, a_particles, a_productID, a_order ) );
160}

Referenced by GIDI::FissionFragmentData::multiGroupProductMatrix().

◆ product() [1/2]

Product & GIDI::DelayedNeutron::product ( )
inline

Definition at line 3969 of file GIDI.hpp.

3969{ return( m_product ); }

Referenced by GIDI::FissionFragmentData::isDelayedFissionNeutronComplete().

◆ product() [2/2]

Product const & GIDI::DelayedNeutron::product ( ) const
inline

Definition at line 3970 of file GIDI.hpp.

3970{ return( m_product ); }

◆ productIDs()

void GIDI::DelayedNeutron::productIDs ( std::set< std::string > & a_indices,
Transporting::Particles const & a_particles,
bool a_transportablesOnly ) const

Insert a std::set with the products id and any product in in its output channel. If a_transportablesOnly is true, only transportable product indices are return.

Parameters
a_indices[out] The unique list of product indices.
a_particles[in] The list of particles to be transported.
a_transportablesOnly[in] If true, only transportable product indices are added in the list.

Definition at line 88 of file GIDI_delayedNeutron.cc.

88 {
89
90 m_product.productIDs( a_indices, a_particles, a_transportablesOnly );
91}

Referenced by GIDI::FissionFragmentData::productIDs().

◆ productMultiplicity()

int GIDI::DelayedNeutron::productMultiplicity ( std::string const & a_productID) const

Returns the product multiplicity (e.g., 0, 1, 2, ...) or -1 if energy dependent or not an integer for particle with id a_productID.

Parameters
a_productID;[in] The id of the requested particle.
Returns
The multiplicity for the requested particle.

Definition at line 101 of file GIDI_delayedNeutron.cc.

101 {
102
103 return( m_product.productMultiplicity( a_productID ) );
104}

Referenced by GIDI::FissionFragmentData::productMultiplicity().

◆ rate() [1/2]

Suite & GIDI::DelayedNeutron::rate ( )
inline

Definition at line 3967 of file GIDI.hpp.

3967{ return( m_rate ); }

Referenced by MCGIDI::DelayedNeutron::DelayedNeutron().

◆ rate() [2/2]

Suite const & GIDI::DelayedNeutron::rate ( ) const
inline

Definition at line 3968 of file GIDI.hpp.

3968{ return( m_rate ); }

◆ setDelayedNeutronIndex()

void GIDI::DelayedNeutron::setDelayedNeutronIndex ( int a_delayedNeutronIndex)
inline

Definition at line 3966 of file GIDI.hpp.

3966{ m_delayedNeutronIndex = a_delayedNeutronIndex; }

Referenced by GIDI::FissionFragmentData::FissionFragmentData().

◆ toXMLList()

void GIDI::DelayedNeutron::toXMLList ( GUPI::WriteInfo & a_writeInfo,
std::string const & a_indent = "" ) const
virtual

Fills the argument a_writeInfo with the XML lines that represent this. Recursively enters each sub-node.

Parameters
a_writeInfo[in/out] Instance containing incremental indentation and other information and stores the appended lines.
a_indent[in] The amount to indent this node.

Reimplemented from GUPI::Ancestry.

Definition at line 271 of file GIDI_delayedNeutron.cc.

271 {
272
273 std::string indent2 = a_writeInfo.incrementalIndent( a_indent );
274
275 a_writeInfo.addNodeStarter( a_indent, moniker( ), a_writeInfo.addAttribute( GIDI_labelChars, label( ) ) );
276 m_rate.toXMLList( a_writeInfo, indent2 );
277 m_product.toXMLList( a_writeInfo, indent2 );
278 a_writeInfo.addNodeEnder( moniker( ) );
279}
std::string const & label() const
Definition GIDI.hpp:658
std::string const & moniker() const
Definition GUPI.hpp:102
void addNodeEnder(std::string const &a_moniker)
Definition GUPI.hpp:59
std::string incrementalIndent(std::string const &indent)
Definition GUPI.hpp:52
void addNodeStarter(std::string const &indent, std::string const &a_moniker, std::string const &a_attributes="")
Definition GUPI.hpp:55
std::string addAttribute(std::string const &a_name, std::string const &a_value) const
Definition GUPI.hpp:60

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