CASM
AClustersApproachtoStatisticalMechanics
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules
ScelEnumEquivalents.cc
Go to the documentation of this file.
2 #include "casm/clex/PrimClex.hh"
3 
4 namespace CASM {
5 
6  namespace {
7 
8  struct MakeInvariantSubgroup {
9 
10  MakeInvariantSubgroup() {}
11 
12  template<typename SymOpIterator, typename SymOpOutputIterator>
13  SymOpOutputIterator operator()(const Supercell &scel, SymOpIterator begin, SymOpIterator end, SymOpOutputIterator result) {
14  double tol = scel.get_primclex().crystallography_tol();
15  return scel.get_real_super_lattice().find_invariant_subgroup(begin, end, result, tol);
16  }
17  };
18 
19  }
20 
21  const std::string ScelEnumEquivalents::enumerator_name = "ScelEnumEquivalents";
22 
25  scel.canonical_form(),
26  scel.get_prim().point_group().begin(),
27  scel.get_prim().point_group().end(),
28  MakeInvariantSubgroup()) {}
29 
30 }
31 
Main CASM namespace.
Definition: complete.cpp:8
Represents a supercell of the primitive parent crystal structure.
Definition: Supercell.hh:37
static const std::string enumerator_name
double tol
SymOp is the Coordinate representation of a symmetry operation it keeps fraction (FRAC) and Cartesian...
Definition: SymOp.hh:28
Enumerate over all equivalents.
ScelEnumEquivalents(const Supercell &scel)
Basic std::vector like container (deprecated)