CASM
1.1.0
A Clusters Approach to Statistical Mechanics
|
#include <SimpleOrbit.hh>
Generate an orbit of unique Element generated by a group
SimpleOrbit is similar to Orbit, but does not require use of SymOp and SymGroup and does not use an existing multiplication table. This allows it to be used with large groups (for example, groups that include translations within a supercell). Therefore it also does not maintain the generating group or equivalence map and element sorting is not based on the equivalence map.
Use of SimpleOrbit requires implementation of a SymCompareType that describes how to apply group elements to the orbit elements and how to compare orbit elements. The struct VectorSymCompare
in symmetry/ Symmetrizer.cc
provides an example implementation.
Definition at line 28 of file SimpleOrbit.hh.
Public Types | |
using | size_type = unsigned int |
using | SymCompareType = _SymCompareType |
using | Element = typename _SymCompareType::Element |
using | InvariantsType = typename _SymCompareType::InvariantsType |
using | const_iterator = typename std::vector< Element >::const_iterator |
Public Member Functions | |
template<typename GroupIterator > | |
SimpleOrbit (typename SymCompareType::Element const &_generating_element, GroupIterator _group_begin, GroupIterator _group_end, SymCompareType const &_sym_compare) | |
Construct a SimpleOrbit using a range of SymOp or PermuteIterator. More... | |
const_iterator | begin () const |
const_iterator | end () const |
const_iterator | cbegin () const |
const_iterator | cend () const |
size_type | size () const |
Element const & | prototype () const |
Identical to element(0) More... | |
Element const & | operator[] (size_type index) const |
Return Element at index, without bounds checking. More... | |
Element const & | element (size_type index) const |
Equivalent to operator[](size_type index) const. More... | |
std::vector< Element > const & | elements () const |
const Access vector of Element More... | |
const multivector< SymOp >::X< 2 > & | equivalence_map () const |
Not implemented: Will throw. Exists only for compatibility with orbit printing. More... | |
const SymGroup & | generating_group () const |
Not implemented: Will throw. Exists only for compatibility with orbit printing. More... | |
SymCompareType const & | sym_compare () const |
Return the SymCompare functor reference. More... | |
InvariantsType const & | invariants () const |
bool | operator< (const SimpleOrbit &B) const |
Compare orbits, using SymCompareType::inter_orbit_compare. More... | |
Private Attributes | |
SymCompareType | m_sym_compare |
InvariantsType | m_invariants |
std::vector< Element > | m_element |
using CASM::SimpleOrbit< _SymCompareType >::const_iterator = typename std::vector<Element>::const_iterator |
Definition at line 34 of file SimpleOrbit.hh.
using CASM::SimpleOrbit< _SymCompareType >::Element = typename _SymCompareType::Element |
Definition at line 32 of file SimpleOrbit.hh.
using CASM::SimpleOrbit< _SymCompareType >::InvariantsType = typename _SymCompareType::InvariantsType |
Definition at line 33 of file SimpleOrbit.hh.
using CASM::SimpleOrbit< _SymCompareType >::size_type = unsigned int |
Definition at line 30 of file SimpleOrbit.hh.
using CASM::SimpleOrbit< _SymCompareType >::SymCompareType = _SymCompareType |
Definition at line 31 of file SimpleOrbit.hh.
CASM::SimpleOrbit< SymCompareType >::SimpleOrbit | ( | typename SymCompareType::Element const & | _generating_element, |
GroupIterator | _group_begin, | ||
GroupIterator | _group_end, | ||
SymCompareType const & | _sym_compare | ||
) |
Construct a SimpleOrbit using a range of SymOp or PermuteIterator.
Definition at line 14 of file SimpleOrbit_impl.hh.
|
inline |
Definition at line 42 of file SimpleOrbit.hh.
|
inline |
Definition at line 46 of file SimpleOrbit.hh.
|
inline |
Definition at line 48 of file SimpleOrbit.hh.
|
inline |
Equivalent to operator[](size_type index) const.
Definition at line 63 of file SimpleOrbit.hh.
|
inline |
|
inline |
Definition at line 44 of file SimpleOrbit.hh.
|
inline |
Not implemented: Will throw. Exists only for compatibility with orbit printing.
Definition at line 72 of file SimpleOrbit.hh.
|
inline |
Not implemented: Will throw. Exists only for compatibility with orbit printing.
Definition at line 78 of file SimpleOrbit.hh.
|
inline |
Definition at line 87 of file SimpleOrbit.hh.
bool CASM::SimpleOrbit< SymCompareType >::operator< | ( | const SimpleOrbit< _SymCompareType > & | B | ) | const |
Compare orbits, using SymCompareType::inter_orbit_compare.
Definition at line 49 of file SimpleOrbit_impl.hh.
|
inline |
Return Element at index, without bounds checking.
Definition at line 58 of file SimpleOrbit.hh.
|
inline |
Identical to element(0)
Definition at line 53 of file SimpleOrbit.hh.
|
inline |
Definition at line 50 of file SimpleOrbit.hh.
|
inline |
Return the SymCompare functor reference.
Definition at line 85 of file SimpleOrbit.hh.
|
private |
Definition at line 95 of file SimpleOrbit.hh.
|
private |
Definition at line 94 of file SimpleOrbit.hh.
|
private |
Definition at line 93 of file SimpleOrbit.hh.