1 #ifndef CASM_ConfigEnumAllOccupations
2 #define CASM_ConfigEnumAllOccupations
11 class ConfigEnumAllOccupations;
12 class ConfigEnumInput;
25 ConfigEnumAllOccupations
const &enumerator);
49 std::string
name()
const override;
bool canonical_guarantee() const
void increment() override
Implements increment.
bool _current_is_valid_for_output() const
Returns true if current() is primitive and canonical.
static const std::string enumerator_name
bool m_enumerate_on_a_subset_of_supercell_sites
True if enumerating on a subset of supercell sites.
std::set< Index > m_site_index_selection
Site index to enumerate on.
notstd::cloneable_ptr< Configuration > m_current
The current configuration.
ConfigEnumAllOccupations(ConfigEnumInput const &config_enum_input)
Construct with a Supercell, using all permutations.
Counter< std::vector< int > > m_counter
Counter over allowed occupation indices on sites in m_site_index_selection.
std::string name() const override
Derived enumerators must implement name, via ENUM_MEMBERS.
A Counter allows looping over many incrementing variables in one loop.
A 'cloneable_ptr' can be used in place of 'unique_ptr'.
bool is_guaranteed_for_database_insert(ConfigEnumAllOccupations const &enumerator)