12#ifndef CD_KMCSingleStateReaction_H
13#define CD_KMCSingleStateReaction_H
25#include <CD_NamespaceHeader.H>
31template <
typename State = KMCSingleState<
long long>,
typename T =
long long>
144#include <CD_NamespaceFooter.H>
Implementation of CD_KMCSingleStateReaction.H.
Declaration of a simple state vector for running Kinetic Monte Carlo for plasma problems.
Reaction type for advancing a KMCSingleState for Kinetic Monte Carlo.
Definition CD_KMCSingleStateReaction.H:33
std::list< size_t > getReactants() const noexcept
Get the reactants involved in the reaction.
Definition CD_KMCSingleStateReactionImplem.H:152
virtual ~KMCSingleStateReaction()
Destructor.
Definition CD_KMCSingleStateReactionImplem.H:35
std::map< size_t, T > m_stateChange
State change for reactants/products.
Definition CD_KMCSingleStateReaction.H:135
std::list< size_t > m_products
Products.
Definition CD_KMCSingleStateReaction.H:130
Real propensity(const State &a_state) const noexcept
Compute the propensity function for this reaction type.
Definition CD_KMCSingleStateReactionImplem.H:112
std::list< size_t > m_reactants
Reactants.
Definition CD_KMCSingleStateReaction.H:125
Real m_propensityFactor
Factor for the case where two or more particles of the same species react.
Definition CD_KMCSingleStateReaction.H:120
T getStateChange(const size_t a_reactant) const noexcept
Get the state change due to a change in the input reactant species.
Definition CD_KMCSingleStateReactionImplem.H:159
Real m_rate
Reaction rate.
Definition CD_KMCSingleStateReaction.H:114
void computeStateChanges() noexcept
Compute state change.
Definition CD_KMCSingleStateReactionImplem.H:42
static T population(const size_t &a_reactant, const State &a_state) noexcept
Get the population of the reactant in the input state.
Definition CD_KMCSingleStateReactionImplem.H:105
T computeCriticalNumberOfReactions(const State &a_state) const noexcept
Compute the number of times the reaction can fire before exhausting one of the reactants.
Definition CD_KMCSingleStateReactionImplem.H:131
void advanceState(State &a_state, const T &a_numReactions) const noexcept
Advance the incoming state with the number of reactions.
Definition CD_KMCSingleStateReactionImplem.H:174
KMCSingleStateReaction()=default
Disallowed constructor. Use the full constructor.
KMCSingleStateReaction(const KMCSingleStateReaction &)=default
Copy constructor (uses default).
Real & rate() const noexcept
Get modifiable reaction rate.
Definition CD_KMCSingleStateReactionImplem.H:98
Base class for a tracer particle solver. This solver can advance particles in a pre-defined velocity ...
Definition CD_TracerParticleSolver.H:37
TracerParticleSolver()
Default constructor.
Definition CD_TracerParticleSolverImplem.H:25