CASM
1.1.0
A Clusters Approach to Statistical Mechanics
|
#include <ClusterSymCompare.hh>
Comparisons of clusters using aperiodic symmetry.
Before doing a comparison, AperiodicSymCompare does not spatially transform the cluster in any way, as opposed to PrimPeriodSymCompare which translates the cluster so that the first site is within the origin unit cell.
Beyond ClusterSymCompare requirements, requires:
Definition at line 128 of file ClusterSymCompare.hh.
Public Types | |
typedef Structure | PrimType |
typedef std::shared_ptr< PrimType const > | PrimType_ptr |
typedef Base::MostDerived | MostDerived |
typedef Element | ClusterType |
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 | |
AperiodicSymCompare (PrimType_ptr prim_ptr, double tol) | |
Constructor. More... | |
const PrimType & | prim () const |
double | tol () const |
Return tolerance. More... | |
ClusterType | copy_apply (PermuteIterator const &permute_it, ClusterType obj) const |
Get SymOp from PermuteIterator and apply to cluster. More... | |
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 | |
InvariantsType | make_invariants_impl (const ClusterType &obj) const |
Make orbit invariants from one element in the orbit. More... | |
bool | invariants_compare_impl (const InvariantsType &A, const InvariantsType &B) const |
Orders 'prepared' elements in the same orbit. More... | |
bool | compare_impl (const ClusterType &A, const ClusterType &B) const |
Compares 'prepared' clusters. More... | |
ClusterType | copy_apply_impl (SymOp const &op, ClusterType obj) const |
Applies SymOp to cluster. More... | |
std::unique_ptr< SymOpRepresentation > | canonical_transform_impl (ClusterType const &obj) const |
Returns transformation that takes 'obj' to its prepared (canonical) form. More... | |
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... | |
Private Types | |
typedef ClusterSymCompare< SymCompare< CRTPBase< AperiodicSymCompare< Element > > > > | Base |
Private Member Functions | |
Element | spatial_prepare_impl (Element obj) const |
Prepare an element for comparison via an isometric affine transformation. More... | |
SymOp const & | spatial_transform_impl () const |
Access spatial transform that was used during most recent spatial preparation of an element. More... | |
Element | representation_prepare_impl (Element obj) const |
Prepare an element for comparison via transformation of its internal representation. More... | |
Private Attributes | |
friend | traits< AperiodicSymCompare< Element > > |
friend | Base |
friend | SymCompare< CRTPBase< AperiodicSymCompare< Element > > > |
PrimType_ptr | m_prim |
double | m_tol |
SymOp | m_spatial_transform |
Spatial transform that reproduces most recent application of SymCompare::spatial_prepare() More... | |
|
private |
Definition at line 149 of file ClusterSymCompare.hh.
|
inherited |
Element (of orbit) refers to Cluster, not element of Cluster
Definition at line 81 of file ClusterSymCompare.hh.
|
inherited |
Definition at line 57 of file SymCompare.hh.
|
inherited |
type InvariantsType
is used to screen elements for equivalence and sort orbits
Definition at line 82 of file SymCompare.hh.
|
inherited |
Definition at line 78 of file ClusterSymCompare.hh.
typedef Structure CASM::AperiodicSymCompare< Element >::PrimType |
Definition at line 132 of file ClusterSymCompare.hh.
typedef std::shared_ptr<PrimType const> CASM::AperiodicSymCompare< Element >::PrimType_ptr |
Definition at line 133 of file ClusterSymCompare.hh.
CASM::AperiodicSymCompare< Element >::AperiodicSymCompare | ( | PrimType_ptr | prim_ptr, |
double | tol | ||
) |
Constructor.
prim_ptr | Prim structure |
tol | Tolerance for invariants_compare of site-to-site distances |
tol | Tolerance for invariants_compare of site-to-site distances |
Definition at line 78 of file ClusterSymCompare_impl.hh.
|
inherited |
Access transform that took cluster from unprepared to prepared state.
Definition at line 244 of file SymCompare.hh.
|
protectedinherited |
Returns transformation that takes 'obj' to its prepared (canonical) form.
Definition at line 108 of file ClusterSymCompare_impl.hh.
|
inherited |
Orders 'prepared' elements.
Definition at line 173 of file SymCompare.hh.
|
protectedinherited |
Compares 'prepared' clusters.
Definition at line 100 of file ClusterSymCompare_impl.hh.
|
inherited |
Get SymOp from PermuteIterator and apply to cluster.
Definition at line 88 of file ClusterSymCompare_impl.hh.
|
inherited |
Applies SymOp to Element.
Applies SymOp to Element. Default performs standalone copy_apply.
Definition at line 123 of file SymCompare.hh.
|
protectedinherited |
Applies SymOp to cluster.
Definition at line 103 of file ClusterSymCompare_impl.hh.
|
inherited |
Check equivalence of 'prepared' elements.
Definition at line 183 of file SymCompare.hh.
|
inherited |
Orders orbit prototypes, breaking invariants_compare ties.
Definition at line 222 of file SymCompare.hh.
|
protectedinherited |
Orders orbit prototypes, breaking invariants_compare ties.
Implementation:
Definition at line 265 of file SymCompare.hh.
|
inherited |
Check equivalence of prototypes in different orbit.
Definition at line 235 of file SymCompare.hh.
|
inherited |
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.
|
protectedinherited |
Orders 'prepared' elements in the same orbit.
Definition at line 96 of file ClusterSymCompare_impl.hh.
|
inherited |
Check equivalence of invariants.
Definition at line 210 of file SymCompare.hh.
|
inherited |
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.
|
protectedinherited |
Make orbit invariants from one element in the orbit.
Definition at line 93 of file ClusterSymCompare_impl.hh.
|
inherited |
Prepare an element for comparison via representation_prepare(), followed by spatial_prepare()
Definition at line 163 of file SymCompare.hh.
|
inline |
Definition at line 142 of file ClusterSymCompare.hh.
|
inherited |
Prepare an element for comparison via transformation of its internal representation.
Definition at line 154 of file SymCompare.hh.
|
private |
Prepare an element for comparison via transformation of its internal representation.
Prepare an element for comparison.
Definition at line 102 of file ClusterSymCompare_impl.hh.
|
inherited |
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.
|
private |
Prepare an element for comparison via an isometric affine transformation.
Prepare an element for comparison.
Definition at line 86 of file ClusterSymCompare_impl.hh.
|
inherited |
Access spatial transform that was used during most recent spatial preparation of an element.
Definition at line 252 of file SymCompare.hh.
|
private |
Access spatial transform that was used during most recent spatial preparation of an element.
Definition at line 94 of file ClusterSymCompare_impl.hh.
|
inline |
Return tolerance.
Definition at line 145 of file ClusterSymCompare.hh.
|
private |
Definition at line 151 of file ClusterSymCompare.hh.
|
private |
Definition at line 172 of file ClusterSymCompare.hh.
|
mutableprivate |
Spatial transform that reproduces most recent application of SymCompare::spatial_prepare()
Definition at line 179 of file ClusterSymCompare.hh.
|
private |
Definition at line 174 of file ClusterSymCompare.hh.
|
private |
Definition at line 152 of file ClusterSymCompare.hh.
|
private |
Definition at line 150 of file ClusterSymCompare.hh.