CASM
1.1.0
A Clusters Approach to Statistical Mechanics
|
#include <ClusterSymCompare.hh>
Comparisons of clusters using prim periodic symmetry.
Before doing a comparison of cluster sites, PrimPeriodicSymCompare translates the cluster so that the first site is within the origin unit cell.
Beyond ClusterSymCompare requirements, requires:
Definition at line 201 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 | |
PrimPeriodicSymCompare (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< PrimPeriodicSymCompare< 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< PrimPeriodicSymCompare< Element > > |
friend | Base |
friend | SymCompare< CRTPBase< PrimPeriodicSymCompare< 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 223 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::PrimPeriodicSymCompare< Element >::PrimType |
Definition at line 205 of file ClusterSymCompare.hh.
typedef std::shared_ptr<PrimType const> CASM::PrimPeriodicSymCompare< Element >::PrimType_ptr |
Definition at line 206 of file ClusterSymCompare.hh.
CASM::PrimPeriodicSymCompare< Element >::PrimPeriodicSymCompare | ( | 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 115 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 215 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 147 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 123 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 139 of file ClusterSymCompare_impl.hh.
|
inline |
Return tolerance.
Definition at line 218 of file ClusterSymCompare.hh.
|
private |
Definition at line 225 of file ClusterSymCompare.hh.
|
private |
Pointer to the primitive structure, necessary to apply symmetry to the Element
Definition at line 247 of file ClusterSymCompare.hh.
|
mutableprivate |
Spatial transform that reproduces most recent application of SymCompare::spatial_prepare()
Definition at line 254 of file ClusterSymCompare.hh.
|
private |
Definition at line 249 of file ClusterSymCompare.hh.
|
private |
Definition at line 226 of file ClusterSymCompare.hh.
|
private |
Definition at line 224 of file ClusterSymCompare.hh.