|
CASM
AClustersApproachtoStatisticalMechanics
|
#include <SupercellEnumerator.hh>
Iterators used with SupercellEnumerator.
Allows iterating over unique supercells of a UnitType object (may be Lattice, eventually BasicStructure, or Structure)
Definition at line 252 of file SupercellEnumerator.hh.
Public Types | |
| typedef int | difference_type |
| typedef UnitType | value_type |
| typedef const UnitType & | reference |
| typedef const UnitType * | pointer |
Public Member Functions | |
| SupercellIterator () | |
| SupercellIterator (const SupercellEnumerator< UnitType > &enumerator, int volume, int dims) | |
| SupercellIterator< UnitType > & | operator= (const SupercellIterator< UnitType > &B) |
| bool | operator== (const SupercellIterator< UnitType > &B) const |
| Iterator comparison. More... | |
| bool | operator!= (const SupercellIterator< UnitType > &B) const |
| Iterator comparison. More... | |
| reference | operator* () const |
| Access the supercell. More... | |
| pointer | operator-> () const |
| Access the supercell. More... | |
| Eigen::Matrix3i | matrix () const |
| constructed supercell matrix More... | |
| HermiteCounter::value_type | volume () const |
| current volume More... | |
| const SupercellEnumerator < UnitType > & | enumerator () const |
| const reference to the SupercellEnumerator this is iterating with More... | |
| SupercellIterator< UnitType > & | operator++ () |
| Prefix increment operator. Increment to next unique supercell. More... | |
Public Attributes | |
| EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef std::forward_iterator_tag | iterator_category |
| fixes alignment of m_deformation More... | |
Private Member Functions | |
| void | _increment () |
| Postfix increment operator. Increment to next unique supercell. More... | |
| void | _try_increment () |
| Check if the current supercell matrix hermite normal form is in a canonical form. More... | |
| void | _update_super () |
| Update m_super when required. More... | |
Private Attributes | |
| bool | m_super_updated |
| Indicates if m_super reflects the current m_current supercell matrix. More... | |
| const SupercellEnumerator < UnitType > * | m_enum |
| Pointer to SupercellEnumerator which holds the unit cell and point group. More... | |
| notstd::cloneable_ptr < HermiteCounter > | m_current |
| Current supercell matrix in HermitCounter form. More... | |
| UnitType | m_super |
| A supercell, stored here so that iterator dereferencing will be OK. Only used when requested. More... | |
| std::vector< Eigen::Matrix3i > | m_canon_hist |
| Keep track of the HNF matrices for the current determinant value. More... | |
| typedef int CASM::SupercellIterator< UnitType >::difference_type |
Definition at line 260 of file SupercellEnumerator.hh.
| typedef const UnitType* CASM::SupercellIterator< UnitType >::pointer |
Definition at line 263 of file SupercellEnumerator.hh.
| typedef const UnitType& CASM::SupercellIterator< UnitType >::reference |
Definition at line 262 of file SupercellEnumerator.hh.
| typedef UnitType CASM::SupercellIterator< UnitType >::value_type |
Definition at line 261 of file SupercellEnumerator.hh.
|
inline |
Definition at line 265 of file SupercellEnumerator.hh.
|
private |
Check if the current supercell matrix hermite normal form is in a canonical form.
Increment the supercell matrix by one (maintaining hermite normal form)
|
private |
Update m_super when required.
| EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef std::forward_iterator_tag CASM::SupercellIterator< UnitType >::iterator_category |
fixes alignment of m_deformation
Definition at line 259 of file SupercellEnumerator.hh.
|
private |
Keep track of the HNF matrices for the current determinant value.
Definition at line 333 of file SupercellEnumerator.hh.
|
private |
Current supercell matrix in HermitCounter form.
Definition at line 327 of file SupercellEnumerator.hh.
|
private |
Pointer to SupercellEnumerator which holds the unit cell and point group.
Definition at line 324 of file SupercellEnumerator.hh.
|
mutableprivate |
A supercell, stored here so that iterator dereferencing will be OK. Only used when requested.
Definition at line 330 of file SupercellEnumerator.hh.
|
mutableprivate |
Indicates if m_super reflects the current m_current supercell matrix.
Definition at line 321 of file SupercellEnumerator.hh.