1 #ifndef CASM_ConfigEnumRandomLocal
2 #define CASM_ConfigEnumRandomLocal
9 #include "casm/external/MersenneTwister/MersenneTwister.h"
16 class ConfigEnumInput;
28 double _mag,
bool _normal_distribution);
58 DoFKey const &_dof_key,
Index _n_config,
double _mag,
59 bool _normal, MTRand &_mtrand);
61 std::string
name()
const override;
Enumerate random values for continuous degrees of freedom.
std::vector< Index > m_dof_dims
std::string name() const override
Derived enumerators must implement name, via ENUM_MEMBERS.
notstd::cloneable_ptr< Configuration > m_current
static const std::string enumerator_name
LocalContinuousConfigDoFValues * m_dof_vals
void increment() override
Implements increment.
std::vector< Index > m_site_selection
ConfigEnumRandomLocal(ConfigEnumInput const &_in_config, ConfigEnumRandomLocalParams const ¶ms)
A 'cloneable_ptr' can be used in place of 'unique_ptr'.
INDEX_TYPE Index
For long integer indexing:
Parameters controlling ConfigEnumRandomLocal.
Index n_config
Number of random configurations to generate.
MTRand & mtrand
Random number generator.
double mag
Magnitude used to scale random vector at each site.
bool normal_distribution
True if using "normal" distribution, else using "uniform" distribution.
ConfigEnumRandomLocalParams(MTRand &_mtrand, DoFKey _dof_key, Index _n_config, double _mag, bool _normal_distribution)