minimc 0.5.1
Loading...
Searching...
No Matches
Multigroup Class Reference

Contains cross sections which are indexed by discrete energy groups. More...

#include <Multigroup.hpp>

Inheritance diagram for Multigroup:
Collaboration diagram for Multigroup:

Public Member Functions

 Multigroup (const pugi::xml_node &particle_node)
 Constructs multigroup nuclear data from a particle node of an XML document. More...
 
MicroscopicCrossSection GetMajorant (const Particle &p) const noexcept override
 Returns the total cross section for a given Particle, currently the same as GetTotal(). More...
 
MicroscopicCrossSection GetTotal (const Particle &p) const noexcept override
 Returns the total cross section for a given Particle. More...
 
void Interact (Particle &p) const noexcept override
 Interact with a Particle, updating its state. More...
 
- Public Member Functions inherited from Interaction
virtual ~Interaction () noexcept
 Virtual destructor (C++ Core Guidelines C.127)
 
virtual MicroscopicCrossSection GetMajorant (const Particle &p) const noexcept=0
 Returns the majorant cross section for a given Particle. More...
 
virtual MicroscopicCrossSection GetTotal (const Particle &p) const noexcept=0
 Returns the total cross section for a given Particle. More...
 
virtual void Interact (Particle &p) const noexcept=0
 Interact with a Particle, updating its state. More...
 

Additional Inherited Members

- Public Types inherited from Interaction
using Map = std::map< Particle::Type, std::unique_ptr< const Interaction > >
 Associates a Particle::Type with a polymorphic pointer to Interaction.
 
- Static Public Member Functions inherited from Interaction
static Map Create (const pugi::xml_node &nuclide_node)
 Factory method to create multigroup or continuous Interaction from a nuclide node. More...
 

Detailed Description

Contains cross sections which are indexed by discrete energy groups.

Groups are integers in [1,G]. Group 1 corresponds to the highest energy. Group G corresponds to the lowest energy.

Todo:
Refactor Multigroup::reactions into vector instead of map as is now done with Continuous::reactions

Constructor & Destructor Documentation

◆ Multigroup()

Multigroup::Multigroup ( const pugi::xml_node &  particle_node)

Constructs multigroup nuclear data from a particle node of an XML document.

Creates cross sections for each Reaction. If no corresponding reaction node is found, it is not added to the map.

Parameters
particle_nodeThe requested particle node in the XML document
Exceptions
std::runtime_errorNumber of entries is not consistent with number of groups

Member Function Documentation

◆ GetMajorant()

MicroscopicCrossSection Multigroup::GetMajorant ( const Particle p) const
overridevirtualnoexcept

Returns the total cross section for a given Particle, currently the same as GetTotal().

Implements Interaction.

◆ GetTotal()

MicroscopicCrossSection Multigroup::GetTotal ( const Particle p) const
overridevirtualnoexcept

Returns the total cross section for a given Particle.

Implements Interaction.

◆ Interact()

void Multigroup::Interact ( Particle p) const
overridevirtualnoexcept

Interact with a Particle, updating its state.

Implements Interaction.


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