CASM
1.1.0
A Clusters Approach to Statistical Mechanics
|
#include <HasCanonicalForm.hh>
Implements canonical form finding when using SymCompare.
Definition at line 19 of file HasCanonicalForm.hh.
Public Types | |
typedef Base::MostDerived | MostDerived |
Public Member Functions | |
template<typename SymCompareType > | |
bool | is_canonical (const std::vector< SymOp > &g, const SymCompareType &sym_compare) const |
Check if canonical. More... | |
template<typename SymCompareType > | |
MostDerived | canonical_form (const std::vector< SymOp > &g, const SymCompareType &sym_compare) const |
Return canonical form. More... | |
template<typename SymCompareType > | |
bool | is_sym_equivalent (const MostDerived &other, const std::vector< SymOp > &g, const SymCompareType &sym_compare) const |
Check if two elements have the same canonical form. More... | |
template<typename ObjIterator , typename SymCompareType > | |
ObjIterator | find_sym_equivalent (ObjIterator begin, ObjIterator end, const std::vector< SymOp > &g, const SymCompareType &sym_compare) const |
Find element that has the same canonical form. More... | |
template<typename SymCompareType > | |
SymOp | to_canonical (const std::vector< SymOp > &g, const SymCompareType &sym_compare) const |
Return op that transforms this into canonical form. More... | |
template<typename SymCompareType > | |
SymOp | from_canonical (const std::vector< SymOp > &g, const SymCompareType &sym_compare) const |
Return op that transforms the canonical form into this. More... | |
template<typename SymCompareType > | |
SymGroup | invariant_subgroup (const SymGroup &super_grp, const SymCompareType &sym_compare) const |
Return subgroup of super_grp that leaves this invariant. More... | |
bool | is_canonical (const Supercell &scel) const |
Check if canonical in Supercell. More... | |
MostDerived | canonical_form (const Supercell &scel) const |
Return canonical form in Supercell. More... | |
bool | is_sym_equivalent (const MostDerived &B, const Supercell &scel) const |
True if this and B have same canonical form in Supercell. More... | |
SymOp | to_canonical (const Supercell &scel) const |
Return operation in Supercell that transforms this into canonical form. More... | |
SymOp | from_canonical (const Supercell &scel) const |
Return operation in Supercell that transforms canonical form into this. More... | |
std::vector< PermuteIterator > | invariant_subgroup (const Supercell &scel) const |
Return subgroup of Supercell permutations that leave this invariant. More... | |
template<typename PermuteIteratorIt > | |
bool | is_canonical (const Supercell &scel, PermuteIteratorIt begin, PermuteIteratorIt end) const |
template<typename PermuteIteratorIt > | |
MostDerived | canonical_form (const Supercell &scel, PermuteIteratorIt begin, PermuteIteratorIt end) const |
template<typename PermuteIteratorIt > | |
bool | is_sym_equivalent (const MostDerived &B, const Supercell &scel, PermuteIteratorIt begin, PermuteIteratorIt end) const |
True if this and B have same canonical form. More... | |
template<typename ObjIterator , typename PermuteIteratorIt > | |
ObjIterator | find_sym_equivalent (ObjIterator obj_begin, ObjIterator obj_end, const Supercell &scel, PermuteIteratorIt begin, PermuteIteratorIt end) const |
Find element that has the same canonical form, with respect to a subgroup. More... | |
template<typename PermuteIteratorIt > | |
SymOp | to_canonical (const Supercell &scel, PermuteIteratorIt begin, PermuteIteratorIt end) const |
template<typename PermuteIteratorIt > | |
SymOp | from_canonical (const Supercell &scel, PermuteIteratorIt begin, PermuteIteratorIt end) const |
template<typename PermuteIteratorIt > | |
std::vector< PermuteIterator > | invariant_subgroup (const Supercell &scel, PermuteIteratorIt begin, PermuteIteratorIt end) const |
typedef Base::MostDerived CASM::CanonicalForm< Base >::MostDerived |
Definition at line 21 of file HasCanonicalForm.hh.
CanonicalForm< _Base >::MostDerived CASM::CanonicalForm< _Base >::canonical_form | ( | const std::vector< SymOp > & | g, |
const SymCompareType & | sym_compare | ||
) | const |
Return canonical form.
Definition at line 29 of file HasCanonicalForm_impl.hh.
CanonicalForm< _Base >::MostDerived CASM::CanonicalForm< _Base >::canonical_form | ( | const Supercell & | scel | ) | const |
Return canonical form in Supercell.
Definition at line 87 of file HasCanonicalForm_impl.hh.
CanonicalForm< _Base >::MostDerived CASM::CanonicalForm< _Base >::canonical_form | ( | const Supercell & | scel, |
PermuteIteratorIt | begin, | ||
PermuteIteratorIt | end | ||
) | const |
Return canonical form in Supercell, with respect to a subgroup of Supercell permutations
Definition at line 131 of file HasCanonicalForm_impl.hh.
ObjIterator CASM::CanonicalForm< _Base >::find_sym_equivalent | ( | ObjIterator | begin, |
ObjIterator | end, | ||
const std::vector< SymOp > & | g, | ||
const SymCompareType & | sym_compare | ||
) | const |
Find element that has the same canonical form.
Definition at line 46 of file HasCanonicalForm_impl.hh.
ObjIterator CASM::CanonicalForm< _Base >::find_sym_equivalent | ( | ObjIterator | obj_begin, |
ObjIterator | obj_end, | ||
const Supercell & | scel, | ||
PermuteIteratorIt | begin, | ||
PermuteIteratorIt | end | ||
) | const |
Find element that has the same canonical form, with respect to a subgroup.
Definition at line 152 of file HasCanonicalForm_impl.hh.
SymOp CASM::CanonicalForm< _Base >::from_canonical | ( | const std::vector< SymOp > & | g, |
const SymCompareType & | sym_compare | ||
) | const |
Return op that transforms the canonical form into this.
Definition at line 68 of file HasCanonicalForm_impl.hh.
SymOp CASM::CanonicalForm< _Base >::from_canonical | ( | const Supercell & | scel | ) | const |
Return operation in Supercell that transforms canonical form into this.
Definition at line 108 of file HasCanonicalForm_impl.hh.
SymOp CASM::CanonicalForm< _Base >::from_canonical | ( | const Supercell & | scel, |
PermuteIteratorIt | begin, | ||
PermuteIteratorIt | end | ||
) | const |
Return operation in Supercell that transforms canonical form into this, with respect to a subgroup of Supercell permutations
Definition at line 175 of file HasCanonicalForm_impl.hh.
std::vector< PermuteIterator > CASM::CanonicalForm< _Base >::invariant_subgroup | ( | const Supercell & | scel | ) | const |
Return subgroup of Supercell permutations that leave this invariant.
Definition at line 114 of file HasCanonicalForm_impl.hh.
std::vector< PermuteIterator > CASM::CanonicalForm< _Base >::invariant_subgroup | ( | const Supercell & | scel, |
PermuteIteratorIt | begin, | ||
PermuteIteratorIt | end | ||
) | const |
Return subgroup of Supercell permutations that leave this invariant, with respect to a subgroup of Supercell permutations
Definition at line 184 of file HasCanonicalForm_impl.hh.
SymGroup CASM::CanonicalForm< _Base >::invariant_subgroup | ( | const SymGroup & | super_grp, |
const SymCompareType & | sym_compare | ||
) | const |
Return subgroup of super_grp that leaves this invariant.
Definition at line 75 of file HasCanonicalForm_impl.hh.
bool CASM::CanonicalForm< _Base >::is_canonical | ( | const std::vector< SymOp > & | g, |
const SymCompareType & | sym_compare | ||
) | const |
Check if canonical.
Definition at line 21 of file HasCanonicalForm_impl.hh.
bool CASM::CanonicalForm< _Base >::is_canonical | ( | const Supercell & | scel | ) | const |
Check if canonical in Supercell.
Definition at line 81 of file HasCanonicalForm_impl.hh.
bool CASM::CanonicalForm< _Base >::is_canonical | ( | const Supercell & | scel, |
PermuteIteratorIt | begin, | ||
PermuteIteratorIt | end | ||
) | const |
Check if canonical in Supercell, with respect to a subgroup of Supercell permutations
Definition at line 122 of file HasCanonicalForm_impl.hh.
bool CASM::CanonicalForm< _Base >::is_sym_equivalent | ( | const MostDerived & | B, |
const Supercell & | scel | ||
) | const |
True if this and B have same canonical form in Supercell.
True if this and B have same canonical form.
Definition at line 95 of file HasCanonicalForm_impl.hh.
bool CASM::CanonicalForm< _Base >::is_sym_equivalent | ( | const MostDerived & | B, |
const Supercell & | scel, | ||
PermuteIteratorIt | begin, | ||
PermuteIteratorIt | end | ||
) | const |
True if this and B have same canonical form.
True if this and B have same canonical form, with respect to a subgroup of Supercell permutations
Definition at line 141 of file HasCanonicalForm_impl.hh.
bool CASM::CanonicalForm< _Base >::is_sym_equivalent | ( | const MostDerived & | other, |
const std::vector< SymOp > & | g, | ||
const SymCompareType & | sym_compare | ||
) | const |
Check if two elements have the same canonical form.
Definition at line 37 of file HasCanonicalForm_impl.hh.
SymOp CASM::CanonicalForm< _Base >::to_canonical | ( | const std::vector< SymOp > & | g, |
const SymCompareType & | sym_compare | ||
) | const |
Return op that transforms this into canonical form.
Definition at line 59 of file HasCanonicalForm_impl.hh.
SymOp CASM::CanonicalForm< _Base >::to_canonical | ( | const Supercell & | scel | ) | const |
Return operation in Supercell that transforms this into canonical form.
Definition at line 102 of file HasCanonicalForm_impl.hh.
SymOp CASM::CanonicalForm< _Base >::to_canonical | ( | const Supercell & | scel, |
PermuteIteratorIt | begin, | ||
PermuteIteratorIt | end | ||
) | const |
Return operation in Supercell that transforms this into canonical form, with respect to a subgroup of Supercell permutations
Definition at line 165 of file HasCanonicalForm_impl.hh.