1 #ifndef CASM_ConfigEnumInput_impl
2 #define CASM_ConfigEnumInput_impl
13 template <
typename SiteContainer>
15 for (
auto const &site_index : _container)
select_site(site_index);
19 template <
typename SublatticeIndexContainer>
21 SublatticeIndexContainer
const &_container) {
22 for (
auto const &sublattice_index : _container)
29 template <
typename PermuteIteratorIt>
31 ConfigEnumInput const &config_enum_input, PermuteIteratorIt group_begin,
32 PermuteIteratorIt group_end) {
36 for (
auto it = group_begin; it != group_end; ++it) {
virtual void push_back(const SymOp &new_op)
void select_site(Index site_index)
std::set< Index > const & sites() const
void select_sublattices(SublatticeIndexContainer const &_container)
Select all sites on multiples sublattices.
std::vector< PermuteIterator > make_invariant_subgroup(ConfigEnumInput const &config_enum_input)
void select_sublattice(Index sublattice_index)
Select all sites on a sublattice.
void select_sites(SiteContainer const &_container)
Select sites by "site_index" or "site_uccoord".
Generic1DDatumFormatter< std::vector< Index >, ConfigEnumDataType > selected_sites()
SymGroup invariant_subgroup(const SymGroup &super_group, const xtal::Lattice &lat)
Returns the subgroup of the given group that keeps the lattice invariant.
bool site_indices_are_invariant(PermuteIterator const &permute_it, std::set< Index > const &site_indices)
Return true if the permutation does not mix given sites and other sites.