chombo-discharge
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
Physics::ItoPlasma::ItoPlasmaReaction Class Reference

Reaction class for ItoPlasmaPhysics. More...

#include <CD_ItoPlasmaReaction.H>

Public Member Functions

 ItoPlasmaReaction ()=default
 Allow, but you need full ctor to do anything. More...
 
 ItoPlasmaReaction (const std::initializer_list< int > a_reactants, const std::initializer_list< int > a_particle_products, const std::initializer_list< int > a_photon_products, const std::initializer_list< std::pair< int, Real >> a_energy_jumps)
 Full ctor. Includes Photons and energies. LEA fodder. More...
 
 ItoPlasmaReaction (const std::initializer_list< int > a_reactants, const std::initializer_list< int > a_particle_products, const std::initializer_list< std::pair< int, Real >> a_energy_jumps)
 Full ctor. Includes energies but not Photons. LEA fodder. More...
 
 ItoPlasmaReaction (const std::initializer_list< int > a_reactants, const std::initializer_list< int > a_particle_products, const std::initializer_list< int > a_photon_products)
 Full Ctor, includes possible Photons but disregards energy. LFA fodder. More...
 
 ItoPlasmaReaction (const std::initializer_list< int > a_reactants, const std::initializer_list< int > a_particle_products)
 Partial ctor. No Photons generated and no energy. LFA fodder. More...
 
 ~ItoPlasmaReaction ()
 Dtor. Not much to see here. More...
 
void jumpState (Vector< long long > &a_particles, const long long a_num_reactions) const
 Allows a state to jump with N reactions. More...
 
void jumpState (Vector< long long > &a_particles, Vector< long long > &a_Photons, const long long a_num_reactions) const
 Allows a state to jump with N reactions. Includes generation of Photons. More...
 
void jumpEnergy (Vector< Real > &a_energies, const Vector< Real > &a_mean_energies, const long long a_num_reactions) const
 Allows the energies to jump with N reactions. Assumes no energy sources. More...
 
void jumpEnergy (Vector< Real > &a_energies, const Vector< Real > &a_mean_energies, const Vector< Real > &a_sources, const long long a_num_reactions, const Real a_dt) const
 Allows the energies to jump with N reactions. Allows energy sources. More...
 
Real & rate () const
 Return a modifiable version of the reaction rate. More...
 
Real propensity (const Vector< long long > &a_particles) const
 Get propensity function. More...
 
int getGi (const Vector< long long > &a_particles) const
 Get gi. More...
 
const std::list< int > & getReactants () const
 Get reactants. More...
 
const std::list< int > & getParticleProdcuts () const
 Get reactants. More...
 
const std::list< int > & getPhotonProducts () const
 Get reactants. More...
 
const std::map< int, int > & getStateChange () const
 Get the state change. You need to iterate through this map. More...
 
const int getStateChange (const int a_idx) const
 Get the state change for a particular species. More...
 
const std::map< int, Real > & getEnergychange () const
 Get the energy change. You need to iterate through this map. More...
 
const Real getEnergychange (const int a_idx) const
 Get the energy change for a particular species. More...
 

Protected Member Functions

void computeStateChange ()
 Compute the state change. More...
 
void computeEnergyChange ()
 Compute the state change. More...
 

Protected Attributes

Real m_rate
 
std::list< int > m_reactants
 
std::list< int > m_particle_products
 
std::list< int > m_photon_products
 
std::list< std::pair< int, Real > > m_energy_jumps
 
std::map< int, int > m_phiChange
 
std::map< int, Real > m_energyChange
 

Detailed Description

Reaction class for ItoPlasmaPhysics.

To use this class you should initialize a reaction e.g. ItoPlasmaReaction({0,1,2}, {0,4}, {0}) which is equivalent to the reaction X_0 + X_1 + X_2 => X_1 + X_4 + Y_0.

Constructor & Destructor Documentation

◆ ItoPlasmaReaction() [1/5]

Physics::ItoPlasma::ItoPlasmaReaction::ItoPlasmaReaction ( )
default

Allow, but you need full ctor to do anything.

◆ ItoPlasmaReaction() [2/5]

Physics::ItoPlasma::ItoPlasmaReaction::ItoPlasmaReaction ( const std::initializer_list< int >  a_reactants,
const std::initializer_list< int >  a_particle_products,
const std::initializer_list< int >  a_photon_products,
const std::initializer_list< std::pair< int, Real >>  a_energy_jumps 
)
inline

Full ctor. Includes Photons and energies. LEA fodder.

◆ ItoPlasmaReaction() [3/5]

Physics::ItoPlasma::ItoPlasmaReaction::ItoPlasmaReaction ( const std::initializer_list< int >  a_reactants,
const std::initializer_list< int >  a_particle_products,
const std::initializer_list< std::pair< int, Real >>  a_energy_jumps 
)
inline

Full ctor. Includes energies but not Photons. LEA fodder.

◆ ItoPlasmaReaction() [4/5]

Physics::ItoPlasma::ItoPlasmaReaction::ItoPlasmaReaction ( const std::initializer_list< int >  a_reactants,
const std::initializer_list< int >  a_particle_products,
const std::initializer_list< int >  a_photon_products 
)
inline

Full Ctor, includes possible Photons but disregards energy. LFA fodder.

◆ ItoPlasmaReaction() [5/5]

Physics::ItoPlasma::ItoPlasmaReaction::ItoPlasmaReaction ( const std::initializer_list< int >  a_reactants,
const std::initializer_list< int >  a_particle_products 
)
inline

Partial ctor. No Photons generated and no energy. LFA fodder.

◆ ~ItoPlasmaReaction()

Physics::ItoPlasma::ItoPlasmaReaction::~ItoPlasmaReaction ( )
inline

Dtor. Not much to see here.

Member Function Documentation

◆ computeEnergyChange()

void ItoPlasmaReaction::computeEnergyChange ( )
inlineprotected

Compute the state change.

◆ computeStateChange()

void ItoPlasmaReaction::computeStateChange ( )
inlineprotected

Compute the state change.

◆ getEnergychange() [1/2]

const std::map< int, Real > & ItoPlasmaReaction::getEnergychange ( ) const
inline

Get the energy change. You need to iterate through this map.

◆ getEnergychange() [2/2]

const Real ItoPlasmaReaction::getEnergychange ( const int  a_idx) const
inline

Get the energy change for a particular species.

◆ getGi()

int ItoPlasmaReaction::getGi ( const Vector< long long > &  a_particles) const
inline

Get gi.

◆ getParticleProdcuts()

const std::list< int > & ItoPlasmaReaction::getParticleProdcuts ( ) const
inline

Get reactants.

◆ getPhotonProducts()

const std::list< int > & ItoPlasmaReaction::getPhotonProducts ( ) const
inline

Get reactants.

◆ getReactants()

const std::list< int > & ItoPlasmaReaction::getReactants ( ) const
inline

Get reactants.

◆ getStateChange() [1/2]

const std::map< int, int > & ItoPlasmaReaction::getStateChange ( ) const
inline

Get the state change. You need to iterate through this map.

◆ getStateChange() [2/2]

const int ItoPlasmaReaction::getStateChange ( const int  a_idx) const
inline

Get the state change for a particular species.

◆ jumpEnergy() [1/2]

void ItoPlasmaReaction::jumpEnergy ( Vector< Real > &  a_energies,
const Vector< Real > &  a_mean_energies,
const long long  a_num_reactions 
) const
inline

Allows the energies to jump with N reactions. Assumes no energy sources.

◆ jumpEnergy() [2/2]

void ItoPlasmaReaction::jumpEnergy ( Vector< Real > &  a_energies,
const Vector< Real > &  a_mean_energies,
const Vector< Real > &  a_sources,
const long long  a_num_reactions,
const Real  a_dt 
) const
inline

Allows the energies to jump with N reactions. Allows energy sources.

◆ jumpState() [1/2]

void ItoPlasmaReaction::jumpState ( Vector< long long > &  a_particles,
const long long  a_num_reactions 
) const
inline

Allows a state to jump with N reactions.

◆ jumpState() [2/2]

void ItoPlasmaReaction::jumpState ( Vector< long long > &  a_particles,
Vector< long long > &  a_Photons,
const long long  a_num_reactions 
) const
inline

Allows a state to jump with N reactions. Includes generation of Photons.

◆ propensity()

Real ItoPlasmaReaction::propensity ( const Vector< long long > &  a_particles) const
inline

Get propensity function.

◆ rate()

Real & ItoPlasmaReaction::rate ( ) const
inline

Return a modifiable version of the reaction rate.


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