CASM  1.1.0
A Clusters Approach to Statistical Mechanics
ScelOrbitGeneration.hh
Go to the documentation of this file.
1 #ifndef CASM_ScelOrbitGeneration
2 #define CASM_ScelOrbitGeneration
3 
4 // TODO: this does not belong in casm/symmetry
5 
9 
10 namespace CASM {
11 
12 class Supercell;
13 
26 template <typename _ElementType>
28  public:
29  typedef _ElementType Element;
32 
33  ScelCanonicalGenerator(const Supercell &_scel);
34 
35  const Supercell &supercell() const;
36 
37  const SymCompareType &sym_compare() const;
38 
44  Element operator()(const Element &e) const;
45 
51  template <typename PermuteIteratorIt>
52  Element operator()(const Element &e, PermuteIteratorIt begin,
53  PermuteIteratorIt end) const;
54 
57 
60 
61  private:
62  const Supercell *m_scel;
65 };
66 
73 template <typename _ElementType>
75  typedef _ElementType Element;
77 
78  ScelIsCanonical(const Supercell &_scel);
79 
80  const Supercell &supercell() const;
81 
82  const SymCompareType &sym_compare() const;
83 
87  bool operator()(const Element &e) const;
88 
90  template <typename PermuteIteratorIt>
91  bool operator()(const Element &e, PermuteIteratorIt begin,
92  PermuteIteratorIt end) const;
93 
94  const Supercell *m_scel;
96 };
97 
98 } // namespace CASM
99 
100 #endif
An Orbit of Element.
Definition: Orbit.hh:43
Functor to find the canonical generating element for an orbit in a Supercell.
PermuteIterator from_canonical() const
After using call operator, this can be checked.
const Supercell & supercell() const
Element operator()(const Element &e) const
Applies symmetry to return an equivalent Element in a canonical form.
const SymCompareType & sym_compare() const
ScelPeriodicSymCompare< Element > SymCompareType
PermuteIterator to_canonical() const
After using call operator, this can be checked.
ScelCanonicalGenerator(const Supercell &_scel)
Orbit< SymCompareType > OrbitType
Comparisons of clusters using supercell periodic symmetry, but without periodic images.
Represents a supercell of the primitive parent crystal structure.
Definition: Supercell.hh:51
Main CASM namespace.
Definition: APICommand.hh:8
Functor to find to check if element is in canonical form.
const Supercell & supercell() const
const SymCompareType & sym_compare() const
const Supercell * m_scel
ScelIsCanonical(const Supercell &_scel)
bool operator()(const Element &e) const
Applies symmetry to check if any Element is greater than e.
ScelPeriodicSymCompare< Element > SymCompareType