CASM
1.1.0
A Clusters Approach to Statistical Mechanics
|
#include <ClusterSymCompare.hh>
Comparisons of clusters using supercell periodic symmetry, but without periodic images.
Before doing a comparison, ScelPeriodicSymCompare translates the cluster so that the first site is within the supercell.
ScelPeriodicSymCompare uses the direct distance between sites for orbit invariants without accounting for periodic images.
Beyond ClusterSymCompare requirements, requires:
Definition at line 279 of file ClusterSymCompare.hh.
Public Types | |
typedef Structure | PrimType |
typedef std::shared_ptr< PrimType const > | PrimType_ptr |
typedef Eigen::Matrix3l | transf_mat_type |
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 | |
ScelPeriodicSymCompare (PrimType_ptr prim_ptr, transf_mat_type transf_mat, double tol) | |
Constructor. More... | |
const PrimType & | prim () const |
transf_mat_type const & | transf_mat () const |
Prim to supercell transformation matrix. More... | |
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< ScelPeriodicSymCompare< 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< ScelPeriodicSymCompare< Element > > |
friend | Base |
friend | SymCompare< CRTPBase< ScelPeriodicSymCompare< Element > > > |
PrimType_ptr | m_prim |
transf_mat_type | m_transf_mat |
Prim to supercell transformation matrix. More... | |
xtal::IntegralCoordinateWithin_f | m_bring_within_f |
Bring UnitCellCoord within the supercell. More... | |
double | m_tol |
SymOp | m_spatial_transform |
Spatial transform that reproduces most recent application of SymCompare::spatial_prepare() More... | |
|
private |
Definition at line 307 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::ScelPeriodicSymCompare< Element >::PrimType |
Definition at line 283 of file ClusterSymCompare.hh.
typedef std::shared_ptr<PrimType const> CASM::ScelPeriodicSymCompare< Element >::PrimType_ptr |
Definition at line 284 of file ClusterSymCompare.hh.
typedef Eigen::Matrix3l CASM::ScelPeriodicSymCompare< Element >::transf_mat_type |
Definition at line 285 of file ClusterSymCompare.hh.
CASM::ScelPeriodicSymCompare< Element >::ScelPeriodicSymCompare | ( | PrimType_ptr | prim_ptr, |
transf_mat_type | transf_mat, | ||
double | tol | ||
) |
Constructor.
prim_ptr | Prim structure |
transf_mat | Prim to supercell transformation matrix |
tol | Tolerance for invariants_compare of site-to-site distances |
tol | Tolerance for invariants_compare of site-to-site distances |
Definition at line 165 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 296 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 201 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 176 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 193 of file ClusterSymCompare_impl.hh.
|
inline |
Return tolerance.
Definition at line 302 of file ClusterSymCompare.hh.
|
inline |
Prim to supercell transformation matrix.
Definition at line 299 of file ClusterSymCompare.hh.
|
private |
Definition at line 309 of file ClusterSymCompare.hh.
|
private |
Bring UnitCellCoord within the supercell.
Definition at line 337 of file ClusterSymCompare.hh.
|
private |
Pointer to the primitive structure, necessary to apply symmetry to the Element
Definition at line 331 of file ClusterSymCompare.hh.
|
mutableprivate |
Spatial transform that reproduces most recent application of SymCompare::spatial_prepare()
Definition at line 344 of file ClusterSymCompare.hh.
|
private |
Definition at line 339 of file ClusterSymCompare.hh.
|
private |
Prim to supercell transformation matrix.
Definition at line 334 of file ClusterSymCompare.hh.
|
private |
Definition at line 310 of file ClusterSymCompare.hh.
|
private |
Definition at line 308 of file ClusterSymCompare.hh.