1 #ifndef CASM_MonteCarloEnum
2 #define CASM_MonteCarloEnum
47 template <
typename MonteTypeSettings,
typename MonteCarloType>
49 Log &
log, MonteCarloType &mc);
146 std::map<std::string, std::pair<bool, double> >
m_data;
A container for storing best scoring objects.
DataFormatter< Configuration > m_formatter
bool operator()(const Configuration &config)
MonteCarloEnumCheck(const DataFormatter< Configuration > &_formatter)
std::map< std::string, std::pair< bool, double > > m_data
holds 'is_new, score' data
const HallOfFameType & halloffame() const
const Access the enumeration hall of fame
bool m_check_existence
If true, only keep configurations that are not enumerated already.
MonteCarloEnum(const PrimClex &primclex, const MonteTypeSettings &settings, Log &log, MonteCarloType &mc)
MonteCarloEnum::HallOfFameType::InsertResult _insert(const Configuration &config)
Insert in hall of fame if 'check' passes.
bool debug() const
return true if running in debug mode
void save_configs()
Save configurations in the hall of fame to the config list.
ENUM_SAMPLE_MODE m_sample_mode
when to attempt to insert configurations in the hall of fame
bool check_existence() const
If true, insert configurations in canonical form.
std::string metric_args() const
std::string m_metric_args
const PrimClex & primclex() const
const Access the PrimClex that *this is based on
bool on_sample() const
Check if enumeration is requested after every sample.
notstd::cloneable_ptr< HallOfFameType > m_halloffame
Use for enumerating configurations via Monte Carlo.
bool insert_canonical() const
Map for faster? access of PrimClex's supercells.
void clear()
Clear hall of fame.
notstd::cloneable_ptr< MonteCarloEnumCheck > m_enum_check
Use for enumerating configurations via Monte Carlo.
void reset()
Clear hall of fame and reset excluded.
HallOfFame< Configuration, MonteCarloEnumMetric > HallOfFameType
Log & m_log
Target for messages.
const PrimClex & m_primclex
PrimClex for this system.
std::map< std::string, Supercell * > m_canon_scel
Map for faster? access of PrimClex's supercells.
DataFormatterDictionary< Configuration > m_dict
Used for various purposes.
HallOfFameType & _halloffame()
std::string check_args() const
bool on_accept() const
Check if enumeration is requested after every acceptance.
bool m_insert_canonical
If true, insert configurations in canonical form.
HallOfFameType::InsertResult insert(const Configuration &config)
Attempt to insert (canonical) Configuration into enumeration hall of fame.
double operator()(const Configuration &config)
DataFormatter< Configuration > m_formatter
MonteCarloEnumMetric(const DataFormatter< Configuration > &_formatter)
PrimClex is the top-level data structure for a CASM project.
A 'cloneable_ptr' can be used in place of 'unique_ptr'.
ConfigIO::GenericConfigFormatter< jsonParser > config()
ENUM_SAMPLE_MODE
How often to sample runs.
Results data structure for HallOfFame::insert.