CASM  1.1.0
A Clusters Approach to Statistical Mechanics
LatticeEnumEquivalents.hh
Go to the documentation of this file.
1 #ifndef CASM_LatticeEnumEquivalents
2 #define CASM_LatticeEnumEquivalents
3 
7 #include "casm/symmetry/SymOp.hh"
9 
10 // TODO:
11 // Why does this class exist again? Literally nothing is using it.
12 // It depends fundamentally on CASM::SymOp, so it's getting the boot.
13 // Don't keep it in xtal.
14 
15 namespace CASM {
16 class SymGroup;
17 
18 using sym::copy_apply; // TODO: Base class for equivalents still relies on
19  // CASM::copy_apply.
20 
33  : public EnumEquivalents<xtal::Lattice,
34  std::vector<CASM::SymOp>::const_iterator,
35  CASM::SymOp, SymRepIndexCompare> {
36  public:
37  LatticeEnumEquivalents(const xtal::Lattice &lat, const SymGroup &super_g);
38 
39  std::string name() const override { return enumerator_name; }
40 
41  static const std::string enumerator_name;
42 };
43 } // namespace CASM
44 
45 #endif
Enumerate over all equivalents.
Enumerate equivalent Lattics, given a SymGroup.
LatticeEnumEquivalents(const xtal::Lattice &lat, const SymGroup &super_g)
Constructor.
static const std::string enumerator_name
std::string name() const override
Derived enumerators must implement name, via ENUM_MEMBERS.
SymGroup is a collection of symmetry operations that satisfy the group property The symmetry operatio...
Definition: SymGroup.hh:42
xtal::Coordinate copy_apply(const xtal::SymOp &op, xtal::Coordinate coord)
Copy and apply SymOp to a Coordinate.
Definition: Coordinate.cc:354
Main CASM namespace.
Definition: APICommand.hh:8