chombo-discharge
Public Types | Public Member Functions | Protected Attributes | List of all members
KMCDualState< T > Class Template Reference

Declaration of a "dual state" for advancing with the Kinetic Monte Carlo module. More...

#include <CD_KMCDualState.H>

Public Types

using State = std::vector< T >
 

Public Member Functions

 KMCDualState ()=default
 Default constructor.
 
 KMCDualState (KMCDualState &)=default
 Copy constructor.
 
 KMCDualState (KMCDualState &&)=delete
 Disallowed move constructor.
 
 KMCDualState (const size_t a_numReactiveSpecies, const size_t a_numNonReactiveSpecies) noexcept
 Full constructor. More...
 
virtual ~KMCDualState ()
 Destructor.
 
KMCDualStateoperator= (const KMCDualState &)=default
 Copy assignment constructor.
 
KMCDualStateoperator= (const KMCDualState &&)=delete
 Disallowed move assignement.
 
void define (const size_t a_numReactiveSpecies, const size_t a_numNonReactiveSpecies) noexcept
 Define function constructor. More...
 
bool isValidState () const noexcept
 Check if state is a valid state. An invalid state will have a negative number of reactants/non-reactants.
 
State & getReactiveState () noexcept
 Get modifiable reactive state. More...
 
const State & getReactiveState () const noexcept
 Get reactive state. More...
 
State & getNonReactiveState () noexcept
 Get modifiable non-reactive state. More...
 
const State & getNonReactiveState () const noexcept
 Get non-reactive state. More...
 

Protected Attributes

State m_reactiveState
 Reactive state.
 
State m_nonReactiveState
 Non-reactive state.
 

Detailed Description

template<typename T = long long>
class KMCDualState< T >

Declaration of a "dual state" for advancing with the Kinetic Monte Carlo module.

This state consists of both reactive and non-reactive species. The reactive species can appear on the left- and right-hand side of the reaction. The non-reactive species can only appear on the right-hand side of the reaction.

Note
The template parameter indicates the integer type used for tracking the states.

Constructor & Destructor Documentation

◆ KMCDualState()

template<typename T >
KMCDualState< T >::KMCDualState ( const size_t  a_numReactiveSpecies,
const size_t  a_numNonReactiveSpecies 
)
inlinenoexcept

Full constructor.

Parameters
[in]a_numReactiveSpeciesNumber of reactive species in the state vector.
[in]a_numNonReactiveSpeciesNumber of non-reactive species in the state vector.

Member Function Documentation

◆ define()

template<typename T >
void KMCDualState< T >::define ( const size_t  a_numReactiveSpecies,
const size_t  a_numNonReactiveSpecies 
)
inlinenoexcept

Define function constructor.

Parameters
[in]a_numReactiveSpeciesNumber of reactive species in the state vector.
[in]a_numNonReactiveSpeciesNumber of non-reactive species in the state vector.

◆ getNonReactiveState() [1/2]

template<typename T >
const KMCDualState< T >::State & KMCDualState< T >::getNonReactiveState
inlinenoexcept

Get non-reactive state.

Returns
m_nonReactiveState

◆ getNonReactiveState() [2/2]

template<typename T >
KMCDualState< T >::State & KMCDualState< T >::getNonReactiveState
inlinenoexcept

Get modifiable non-reactive state.

Returns
m_nonReactiveState

◆ getReactiveState() [1/2]

template<typename T >
const KMCDualState< T >::State & KMCDualState< T >::getReactiveState
inlinenoexcept

Get reactive state.

Returns
m_reactiveState

◆ getReactiveState() [2/2]

template<typename T >
KMCDualState< T >::State & KMCDualState< T >::getReactiveState
inlinenoexcept

Get modifiable reactive state.

Returns
m_reactiveState

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