13#ifndef CD_KMCSINGLESTATE_H
14#define CD_KMCSINGLESTATE_H
22#include <CD_NamespaceHeader.H>
29template <
typename T =
long long>
107 inline std::vector<T>
117 linearIn(const std::vector<T>& a_linearizedState) noexcept;
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:52
KMCSingleState & operator=(const KMCSingleState &&)=delete
Disallowed move assignment.
virtual ~KMCSingleState()
Destructor.
Definition CD_KMCSingleStateImplem.H:30
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:77
State & getState() noexcept
Get modifiable state.
Definition CD_KMCSingleStateImplem.H:84
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:70
bool isValidState() const noexcept
Check if state is a valid state.
Definition CD_KMCSingleStateImplem.H:35
std::vector< T > State
Alias for the state type.
Definition CD_KMCSingleState.H:36