13#ifndef CD_KMCSINGLESTATE_H
14#define CD_KMCSINGLESTATE_H
22#include <CD_NamespaceHeader.H>
29template <
typename T =
long long>
140#include <CD_NamespaceFooter.H>
Implementation of CD_KMCSingleState.H.
Declaration of a straightforward state for advancing with the Kinetic Monte Carlo module.
Definition CD_KMCSingleState.H:31
KMCSingleState(const KMCSingleState &&)=delete
Disallowed move constructor.
KMCSingleState(const KMCSingleState &a_state)=default
Copy constructor.
T & operator[](const size_t a_idx) noexcept
Get the population of the input index.
Definition CD_KMCSingleStateImplem.H:58
KMCSingleState & operator=(const KMCSingleState &&)=delete
Disallowed move assignment.
virtual ~KMCSingleState()
Destructor.
Definition CD_KMCSingleStateImplem.H:32
KMCSingleState()=delete
Disallowed weak construction.
State m_state
State vector.
Definition CD_KMCSingleState.H:137
void linearIn(const std::vector< T > &a_linearizedState) noexcept
Linearize the input buffer onto the current state.
Definition CD_KMCSingleStateImplem.H:83
State & getState() noexcept
Get modifiable state.
Definition CD_KMCSingleStateImplem.H:90
KMCSingleState & operator=(const KMCSingleState &a_other)=default
Copy assignment operator.
std::vector< T > linearOut() const noexcept
Linearize the state onto an output vector.
Definition CD_KMCSingleStateImplem.H:76
bool isValidState() const noexcept
Check if state is a valid state.
Definition CD_KMCSingleStateImplem.H:39
std::vector< T > State
Alias for the state type.
Definition CD_KMCSingleState.H:36
Base class for a tracer particle solver. This solver can advance particles in a pre-defined velocity ...
Definition CD_TracerParticleSolver.H:38
TracerParticleSolver()
Default constructor.
Definition CD_TracerParticleSolverImplem.H:26