CASM
1.1.0
A Clusters Approach to Statistical Mechanics
|
#include <SymCompare.hh>
CRTP base class for implementing element and orbit comparison.
Derived needs to implement the following private methods:
Derived may optionally implement:
Definition at line 52 of file SymCompare.hh.
Public Types | |
using | MostDerived = typename Base::MostDerived |
using | Element = typename traits< MostDerived >::Element |
using | InvariantsType = typename traits< MostDerived >::InvariantsType |
type InvariantsType is used to screen elements for equivalence and sort orbits More... | |
Public Member Functions | |
Element | copy_apply (SymOp const &op, Element obj) const |
Applies SymOp to Element. More... | |
Element | spatial_prepare (Element obj) const |
Prepare an element for comparison via an isometric affine transformation. More... | |
Element | representation_prepare (Element obj) const |
Prepare an element for comparison via transformation of its internal representation. More... | |
Element | prepare (Element obj) const |
Prepare an element for comparison via representation_prepare(), followed by spatial_prepare() More... | |
bool | compare (const Element &A, const Element &B) const |
Orders 'prepared' elements. More... | |
bool | equal (const Element &A, const Element &B) const |
Check equivalence of 'prepared' elements. More... | |
InvariantsType | make_invariants (const Element &element) const |
Make orbit invariants from one element in the orbit. More... | |
bool | invariants_compare (const InvariantsType &A, const InvariantsType &B) const |
Defines an order for orbits that have different invariants. More... | |
bool | invariants_equal (const InvariantsType &A, const InvariantsType &B) const |
Check equivalence of invariants. More... | |
bool | inter_orbit_compare (const Element &A, const InvariantsType &A_invariants, const Element &B, const InvariantsType &B_invariants) const |
Orders orbit prototypes, breaking invariants_compare ties. More... | |
bool | inter_orbit_equal (const Element &A, const InvariantsType &A_invariants, const Element &B, const InvariantsType &B_invariants) const |
Check equivalence of prototypes in different orbit. More... | |
std::unique_ptr< SymOpRepresentation > | canonical_transform (Element const &obj) const |
Access transform that took cluster from unprepared to prepared state. More... | |
SymOp const & | spatial_transform () const |
Access spatial transform that was used during most recent spatial preparation of an element. More... | |
Protected Member Functions | |
bool | inter_orbit_compare_impl (const Element &A, const InvariantsType &A_invariants, const Element &B, const InvariantsType &B_invariants) const |
Orders orbit prototypes, breaking invariants_compare ties. More... | |
using CASM::SymCompare< Base >::Element = typename traits<MostDerived>::Element |
Definition at line 57 of file SymCompare.hh.
using CASM::SymCompare< Base >::InvariantsType = typename traits<MostDerived>::InvariantsType |
type InvariantsType
is used to screen elements for equivalence and sort orbits
Definition at line 82 of file SymCompare.hh.
using CASM::SymCompare< Base >::MostDerived = typename Base::MostDerived |
Definition at line 54 of file SymCompare.hh.
std::unique_ptr< SymOpRepresentation > CASM::SymCompare< Base >::canonical_transform | ( | Element const & | obj | ) | const |
Access transform that took cluster from unprepared to prepared state.
Definition at line 244 of file SymCompare.hh.
bool CASM::SymCompare< Base >::compare | ( | const Element & | A, |
const Element & | B | ||
) | const |
Orders 'prepared' elements.
Definition at line 173 of file SymCompare.hh.
SymCompare< Base >::Element CASM::SymCompare< Base >::copy_apply | ( | SymOp const & | op, |
Element | obj | ||
) | const |
Applies SymOp to Element.
Applies SymOp to Element. Default performs standalone copy_apply.
Definition at line 123 of file SymCompare.hh.
bool CASM::SymCompare< Base >::equal | ( | const Element & | A, |
const Element & | B | ||
) | const |
Check equivalence of 'prepared' elements.
Definition at line 183 of file SymCompare.hh.
bool CASM::SymCompare< Base >::inter_orbit_compare | ( | const Element & | A, |
const InvariantsType & | A_invariants, | ||
const Element & | B, | ||
const InvariantsType & | B_invariants | ||
) | const |
Orders orbit prototypes, breaking invariants_compare ties.
Definition at line 222 of file SymCompare.hh.
|
protected |
Orders orbit prototypes, breaking invariants_compare ties.
Implementation:
Definition at line 265 of file SymCompare.hh.
bool CASM::SymCompare< Base >::inter_orbit_equal | ( | const Element & | A, |
const InvariantsType & | A_invariants, | ||
const Element & | B, | ||
const InvariantsType & | B_invariants | ||
) | const |
Check equivalence of prototypes in different orbit.
Definition at line 235 of file SymCompare.hh.
bool CASM::SymCompare< Base >::invariants_compare | ( | const InvariantsType & | A, |
const InvariantsType & | B | ||
) | const |
Defines an order for orbits that have different invariants.
Defines an order for elements that have different invariants.
Definition at line 201 of file SymCompare.hh.
bool CASM::SymCompare< Base >::invariants_equal | ( | const InvariantsType & | A, |
const InvariantsType & | B | ||
) | const |
Check equivalence of invariants.
Definition at line 210 of file SymCompare.hh.
SymCompare< Base >::InvariantsType CASM::SymCompare< Base >::make_invariants | ( | const Element & | element | ) | const |
Make orbit invariants from one element in the orbit.
Get orbit invariants from one element in the orbit.
Definition at line 189 of file SymCompare.hh.
SymCompare< Base >::Element CASM::SymCompare< Base >::prepare | ( | Element | obj | ) | const |
Prepare an element for comparison via representation_prepare(), followed by spatial_prepare()
Definition at line 163 of file SymCompare.hh.
SymCompare< Base >::Element CASM::SymCompare< Base >::representation_prepare | ( | Element | obj | ) | const |
Prepare an element for comparison via transformation of its internal representation.
Definition at line 154 of file SymCompare.hh.
SymCompare< Base >::Element CASM::SymCompare< Base >::spatial_prepare | ( | Element | obj | ) | const |
Prepare an element for comparison via an isometric affine transformation.
spatial_transform
spatial_transform
is also included in the symmetry operations stored in the Orbit equivalence_map (i.e. equivalence_map_element = spatial_transform * generating_group_op)Definition at line 142 of file SymCompare.hh.
SymOp const & CASM::SymCompare< Base >::spatial_transform |
Access spatial transform that was used during most recent spatial preparation of an element.
Definition at line 252 of file SymCompare.hh.