CASM
1.1.0
A Clusters Approach to Statistical Mechanics
|
#include <ClusterSymCompare.hh>
CRTP Base class for common cluster symmetry and comparison implementations.
ClusterSymCompare can be used for common implementations of SymCompareType methods for cluster orbits. To do so, it requires that a traits class (traits<SymCompareType>) is implemented with:
The orbit element type, Element, is required to implement:
The orbit invariants type, InvariantsType, is required to implement:
ClusterSymCompare itself implements:
The methods ClusterSymCompare implements are overriden if an implementation exists in final SymCompareType implementations.
Final SymCompareType implementations inheriting from ClusterSymCompare still require:
Definition at line 76 of file ClusterSymCompare.hh.
Public Types | |
typedef Base::MostDerived | MostDerived |
typedef Element | ClusterType |
Public Member Functions | |
ClusterType | copy_apply (PermuteIterator const &permute_it, ClusterType obj) const |
Get SymOp from PermuteIterator and apply to cluster. 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... | |
typedef Element CASM::ClusterSymCompare< Base >::ClusterType |
Element (of orbit) refers to Cluster, not element of Cluster
Definition at line 81 of file ClusterSymCompare.hh.
typedef Base::MostDerived CASM::ClusterSymCompare< Base >::MostDerived |
Definition at line 78 of file ClusterSymCompare.hh.
|
protected |
Returns transformation that takes 'obj' to its prepared (canonical) form.
Definition at line 66 of file ClusterSymCompare_impl.hh.
|
protected |
Compares 'prepared' clusters.
Definition at line 46 of file ClusterSymCompare_impl.hh.
ClusterSymCompare< Base >::ClusterType CASM::ClusterSymCompare< Base >::copy_apply | ( | PermuteIterator const & | permute_it, |
ClusterType | obj | ||
) | const |
Get SymOp from PermuteIterator and apply to cluster.
Definition at line 14 of file ClusterSymCompare_impl.hh.
|
protected |
Applies SymOp to cluster.
Definition at line 54 of file ClusterSymCompare_impl.hh.
|
protected |
Orders 'prepared' elements in the same orbit.
Definition at line 35 of file ClusterSymCompare_impl.hh.
|
protected |
Make orbit invariants from one element in the orbit.
Definition at line 22 of file ClusterSymCompare_impl.hh.