15 struct MakeConfigInvariantSubgroup {
16 MakeConfigInvariantSubgroup() {}
18 template <
typename PermuteOutputIterator>
19 PermuteOutputIterator operator()(
const Configuration &
config,
20 PermuteIterator begin, PermuteIterator end,
21 PermuteOutputIterator result) {
22 ConfigIsEquivalent f(
config,
config.crystallography_tol());
23 return std::copy_if(begin, end, result, f);
29 "ConfigEnumByPermutation";
33 config.supercell().sym_info().permute_begin(),
34 config.supercell().sym_info().permute_end()) {}
40 config.canonical_form(), begin, end, MakeConfigInvariantSubgroup()) {}
Enumerate all equivalent Configurations obtained by permuations in a Supercell.
ConfigEnumByPermutation(const Configuration &config)
static const std::string enumerator_name
Enumerate over all equivalents.
ConfigIO::GenericConfigFormatter< jsonParser > config()