CASM
1.1.0
A Clusters Approach to Statistical Mechanics
|
#include <PermuteIterator.hh>
Iterate over all combined factor group and translation permutations for a Supercell
The sequence:
Replicates this sequence of permutations:
Bidirectional iterators are supposed to be input/output iterators, but this is actually only an input iterator (meaning operator* returns by value).
Definition at line 43 of file PermuteIterator.hh.
Public Types | |
typedef Base::MostDerived | MostDerived |
Public Member Functions | |
PermuteIterator () | |
PermuteIterator (const PermuteIterator &iter) | |
PermuteIterator (SupercellSymInfo const &_sym_info, Index _factor_group_index, Index _translation_index) | |
PermuteIterator & | operator= (PermuteIterator iter) |
const PermuteIterator & | operator* () const |
Returns a reference to this. More... | |
const PermuteIterator * | operator-> () const |
Returns a pointer to this. More... | |
Permutation | combined_permute () const |
SymGroup const & | factor_group () const |
Reference the SupercellSymInfo::factor_group() More... | |
SupercellSymInfo const & | sym_info () const |
Reference the SupercellSymInfo containing the operations being pointed at. More... | |
Index | factor_group_index () const |
Return the supercell factor group index. More... | |
Index | prim_factor_group_index () const |
Return the prim factor group index. More... | |
Index | translation_index () const |
Return the index into the supercell translation permutations. More... | |
const Permutation & | factor_group_permute () const |
Return the factor group permutation being pointed at. More... | |
const Permutation & | translation_permute () const |
Return the translation permutation being pointed at. More... | |
SymOpRepresentation const & | occ_rep (Index b) const |
SymOpRepresentation const & | local_dof_rep (DoFKey const &_key, Index b) const |
SymOpRepresentation const & | global_dof_rep (DoFKey const &_key) const |
SymOp | sym_op () const |
Index | permute_ind (Index i) const |
bool | operator< (const PermuteIterator &iter) const |
PermuteIterator & | operator++ () |
PermuteIterator | operator++ (int) |
PermuteIterator & | operator-- () |
PermuteIterator | operator-- (int) |
PermuteIterator | begin_next_fg_op () const |
PermuteIterator | inverse () const |
PermuteIterator | operator* (const PermuteIterator &RHS) const |
bool | is_compatible (const PermuteIterator &other_permute_iterator) const |
bool | operator> (const MostDerived &B) const |
bool | operator<= (const MostDerived &B) const |
bool | operator>= (const MostDerived &B) const |
bool | operator== (const MostDerived &B) const |
bool | operator!= (const MostDerived &B) const |
Protected Member Functions | |
bool | eq_impl (const MostDerived &B) const |
bool | ne_impl (const MostDerived &B) const |
Private Member Functions | |
bool | eq_impl (const PermuteIterator &iter) const |
Private Attributes | |
SupercellSymInfo const * | m_sym_info |
std::vector< Permutation > const * | m_trans_permute |
Index | m_factor_group_index |
Index | m_translation_index |
friend | Comparisons< CRTPBase< PermuteIterator > > |
Friends | |
void | swap (PermuteIterator &a, PermuteIterator &b) |
|
inherited |
Definition at line 27 of file Comparisons.hh.
CASM::PermuteIterator::PermuteIterator | ( | ) |
Definition at line 14 of file PermuteIterator.cc.
CASM::PermuteIterator::PermuteIterator | ( | const PermuteIterator & | iter | ) |
Definition at line 16 of file PermuteIterator.cc.
CASM::PermuteIterator::PermuteIterator | ( | SupercellSymInfo const & | _sym_info, |
Index | _factor_group_index, | ||
Index | _translation_index | ||
) |
Definition at line 22 of file PermuteIterator.cc.
PermuteIterator CASM::PermuteIterator::begin_next_fg_op | ( | ) | const |
Iterator to next beginning of next factor group operation skipping all of the intervening operations that differ only by a translation
Definition at line 175 of file PermuteIterator.cc.
Permutation CASM::PermuteIterator::combined_permute | ( | ) | const |
Returns the combination of factor_group permutation and translation permutation
Definition at line 43 of file PermuteIterator.cc.
|
inlineprotectedinherited |
Definition at line 40 of file Comparisons.hh.
|
private |
Definition at line 133 of file PermuteIterator.cc.
SymGroup const & CASM::PermuteIterator::factor_group | ( | ) | const |
Reference the SupercellSymInfo::factor_group()
Reference the supercell factor group (SupercellSymInfo::factor_group()
)
Definition at line 53 of file PermuteIterator.cc.
Index CASM::PermuteIterator::factor_group_index | ( | ) | const |
Return the supercell factor group index.
Return the supercell factor group index
Index into SupercellSymInfo::factor_group()
of the factor group op being pointed at
Definition at line 61 of file PermuteIterator.cc.
const Permutation & CASM::PermuteIterator::factor_group_permute | ( | ) | const |
Return the factor group permutation being pointed at.
Definition at line 80 of file PermuteIterator.cc.
SymOpRepresentation const & CASM::PermuteIterator::global_dof_rep | ( | DoFKey const & | _key | ) | const |
Returns representation of current operation corresponding to global DoF specified by _key
Definition at line 106 of file PermuteIterator.cc.
PermuteIterator CASM::PermuteIterator::inverse | ( | ) | const |
Definition at line 184 of file PermuteIterator.cc.
|
inline |
Returns true if the two PermuteIterators share the same instance of sym_info. This is meant to be used if you want to check that a particular range of PermuteIterators are referring to the same supercell, to ensure your iterating over a consistent set of permutations.
Definition at line 152 of file PermuteIterator.hh.
SymOpRepresentation const & CASM::PermuteIterator::local_dof_rep | ( | DoFKey const & | _key, |
Index | b | ||
) | const |
Returns representation of current operation corresponding to local DoF specified by _key on sublattice b
Definition at line 99 of file PermuteIterator.cc.
|
inlineprotectedinherited |
Definition at line 44 of file Comparisons.hh.
SymOpRepresentation const & CASM::PermuteIterator::occ_rep | ( | Index | b | ) | const |
Returns representation of current operation corresponding to species transformation on sublattice b
Definition at line 93 of file PermuteIterator.cc.
|
inlineinherited |
Definition at line 37 of file Comparisons.hh.
const PermuteIterator & CASM::PermuteIterator::operator* | ( | ) | const |
Returns a reference to this.
Returns a reference to this – allows PermuteIterator to be treated as an iterator to PermuteIterator object
Definition at line 36 of file PermuteIterator.cc.
PermuteIterator CASM::PermuteIterator::operator* | ( | const PermuteIterator & | RHS | ) | const |
Return the PermuteIterator product (equivalent to first applying RHS and then applying *this).
Definition at line 206 of file PermuteIterator.cc.
PermuteIterator & CASM::PermuteIterator::operator++ | ( | ) |
Definition at line 142 of file PermuteIterator.cc.
PermuteIterator CASM::PermuteIterator::operator++ | ( | int | ) |
Definition at line 152 of file PermuteIterator.cc.
PermuteIterator & CASM::PermuteIterator::operator-- | ( | ) |
Definition at line 159 of file PermuteIterator.cc.
PermuteIterator CASM::PermuteIterator::operator-- | ( | int | ) |
Definition at line 169 of file PermuteIterator.cc.
const PermuteIterator * CASM::PermuteIterator::operator-> | ( | ) | const |
Returns a pointer to this.
Returns a pointer to this – allows PermuteIterator to be treated as an iterator to PermuteIterator object
Definition at line 39 of file PermuteIterator.cc.
bool CASM::PermuteIterator::operator< | ( | const PermuteIterator & | iter | ) | const |
Definition at line 126 of file PermuteIterator.cc.
|
inlineinherited |
Definition at line 31 of file Comparisons.hh.
PermuteIterator & CASM::PermuteIterator::operator= | ( | PermuteIterator | iter | ) |
Definition at line 30 of file PermuteIterator.cc.
|
inlineinherited |
Definition at line 35 of file Comparisons.hh.
|
inlineinherited |
Definition at line 29 of file Comparisons.hh.
|
inlineinherited |
Definition at line 33 of file Comparisons.hh.
Index-wise permutation defined via: after_permutation[i] = before_permutation[permute_iterator.permute_ind(i)];
Definition at line 122 of file PermuteIterator.cc.
Index CASM::PermuteIterator::prim_factor_group_index | ( | ) | const |
Return the prim factor group index.
Return the prim factor group index
Index into Structure::factor_group()
of the factor group op being pointed at
Definition at line 69 of file PermuteIterator.cc.
SupercellSymInfo const & CASM::PermuteIterator::sym_info | ( | ) | const |
Reference the SupercellSymInfo containing the operations being pointed at.
Definition at line 48 of file PermuteIterator.cc.
SymOp CASM::PermuteIterator::sym_op | ( | ) | const |
gets the SymOp for the current operation, defined by translation_op[trans_index]*factor_group_op[fg_index] i.e, equivalent to application of the factor group operation, FOLLOWED BY application of the translation operation
Definition at line 111 of file PermuteIterator.cc.
Index CASM::PermuteIterator::translation_index | ( | ) | const |
Return the index into the supercell translation permutations.
Return the index into the supercell translation permutations
Index into SupercellSymInfo::translation_permutations()
of the translation being pointed at
Definition at line 77 of file PermuteIterator.cc.
const Permutation & CASM::PermuteIterator::translation_permute | ( | ) | const |
Return the translation permutation being pointed at.
Definition at line 87 of file PermuteIterator.cc.
|
friend |
Definition at line 315 of file PermuteIterator.cc.
|
private |
Definition at line 157 of file PermuteIterator.hh.
|
private |
Definition at line 52 of file PermuteIterator.hh.
|
private |
Definition at line 46 of file PermuteIterator.hh.
|
private |
Pointer to the vector<Permutation> of translation permutations inside of m_sym_info (to provide faster access)
Definition at line 50 of file PermuteIterator.hh.
|
private |
Definition at line 53 of file PermuteIterator.hh.