19 std::set<Index> cluster_site_indices;
21 cluster_site_indices.insert(
24 return cluster_site_indices;
32 for (
Index site_index : cluster_site_indices) {
33 cluster.elements().push_back(
48 std::set<Index>
const &cluster_site_indices) {
49 std::set<Index> cluster_site_indices_after;
50 for (
Index site_index : cluster_site_indices) {
51 cluster_site_indices_after.insert(inverse_permute[site_index]);
53 return cluster_site_indices_after;
58 std::set<Index>
const &RHS)
const {
59 if (LHS.size() < RHS.size()) {
62 if (LHS.size() > RHS.size()) {
Structure specifies the lattice and atomic basis of a crystal.
A class that collects all symmetry information for for performing symmetry transformations on the sit...
const xtal::UnitCellCoordIndexConverter & unitcellcoord_index_converter() const
UnitCellCoordIndexConverter for this superstructure/primstructure pair Used to convert from lattice t...
std::set< Index > make_cluster_site_indices(IntegralCluster const &cluster, SupercellSymInfo const &sym_info)
Return site indices of cluster sites.
IntegralCluster make_cluster(std::set< Index > const &cluster_site_indices, Structure const &prim, SupercellSymInfo const &sym_info)
Return cluster from cluster site indices.
INDEX_TYPE Index
For long integer indexing:
std::set< Index > permute_cluster_site_indices(Permutation const &inverse_permute, std::set< Index > const &cluster_site_indices)
Rather than permute values, here we want to permute cluster site indices.
bool operator()(std::set< Index > const &LHS, std::set< Index > const &RHS) const
Sort std::set<Index> by size, then value (lexicographical compare)