1 #ifndef CASM_MonteCarloEnum_impl
2 #define CASM_MonteCarloEnum_impl
11 template<
typename MonteTypeSettings,
typename MonteCarloType>
15 m_sample_mode(set.enumeration_sample_mode()),
17 m_check_args(set.enumeration_check_args()),
18 m_metric_args(set.enumeration_metric_args()),
19 m_check_existence(set.enumeration_check_existence()),
20 m_insert_canonical(set.enumeration_insert_canonical()),
21 m_dict(primclex.settings().query_handler<
Configuration>().dict()) {
28 return mc.potential_energy(config);
61 std::less<Configuration>(),
62 set.enumeration_N_halloffame(),
63 set.enumeration_tol()));
MonteCarloEnum(PrimClex &primclex, const MonteTypeSettings &settings, Log &log, MonteCarloType &mc)
HallOfFame< Configuration, MonteCarloEnumMetric > HallOfFameType
Monte::ENUM_SAMPLE_MODE m_sample_mode
when to attempt to insert configurations in the hall of fame
void reset()
Clear hall of fame and reset excluded.
notstd::cloneable_ptr< HallOfFameType > m_halloffame
Use for enumerating configurations via Monte Carlo.
std::string metric_args() const
std::map< std::string, std::pair< bool, double > > m_data
holds 'is_new, score' data
bool m_check_existence
If true, only keep configurations that are not enumerated already.
std::string check_args() const
void custom(const std::string &what)
PrimClex is the top-level data structure for a CASM project.
std::string name() const
SCELV_A_B_C_D_E_F/i.
notstd::cloneable_ptr< MonteCarloEnumCheck > m_enum_check
Use for enumerating configurations via Monte Carlo.
DataFormatterDictionary< Configuration > m_dict
Used for various purposes.
bool m_insert_canonical
If true, insert configurations in canonical form.
A Configuration represents the values of all degrees of freedom in a Supercell.