minimc 0.5.1
Loading...
Searching...
No Matches
Interaction Class Referenceabstract

Models the interaction between a Particle and a Nuclide. More...

#include <Interaction.hpp>

Inheritance diagram for Interaction:

Public Types

using Map = std::map< Particle::Type, std::unique_ptr< const Interaction > >
 Associates a Particle::Type with a polymorphic pointer to Interaction.
 

Public Member Functions

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...
 

Static Public Member Functions

static Map Create (const pugi::xml_node &nuclide_node)
 Factory method to create multigroup or continuous Interaction from a nuclide node. More...
 

Detailed Description

Models the interaction between a Particle and a Nuclide.

The polymorphism here shall be where multigroup and continuous energy cross sections are resolved.

Member Function Documentation

◆ Create()

static Map Interaction::Create ( const pugi::xml_node &  nuclide_node)
static

Factory method to create multigroup or continuous Interaction from a nuclide node.

Returns
A std::map with Particle::Type as keys and std::unique_ptrs to the constructed Interaction (C++ Core Guidelines R.30)
Exceptions
std::runtime_errorParticle declared in `general/particles` node not found in nuclide node.

◆ GetMajorant()

virtual MicroscopicCrossSection Interaction::GetMajorant ( const Particle p) const
pure virtualnoexcept

Returns the majorant cross section for a given Particle.

Implemented in Continuous, and Multigroup.

◆ GetTotal()

virtual MicroscopicCrossSection Interaction::GetTotal ( const Particle p) const
pure virtualnoexcept

Returns the total cross section for a given Particle.

Implemented in Continuous, and Multigroup.

◆ Interact()

virtual void Interaction::Interact ( Particle p) const
pure virtualnoexcept

Interact with a Particle, updating its state.

Implemented in Continuous, and Multigroup.


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