CASM  1.1.0
A Clusters Approach to Statistical Mechanics
CASM::xtal::SuperlatticeIterator Class Reference

#include <SuperlatticeEnumerator.hh>

Detailed Description

Iterators used with SuperlatticeEnumerator.

Allows iterating over unique superlattices

Definition at line 116 of file SuperlatticeEnumerator.hh.

Public Types

typedef int difference_type
 
typedef Lattice value_type
 
typedef const Latticereference
 
typedef const Latticepointer
 

Public Member Functions

 SuperlatticeIterator ()
 
 SuperlatticeIterator (const SuperlatticeEnumerator &enumerator, int volume, int dims)
 
SuperlatticeIteratoroperator= (const SuperlatticeIterator &B)
 
bool operator== (const SuperlatticeIterator &B) const
 Iterator comparison. More...
 
bool operator!= (const SuperlatticeIterator &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 SuperlatticeEnumeratorenumerator () const
 const reference to the SuperlatticeEnumerator this is iterating with More...
 
SuperlatticeIteratoroperator++ ()
 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 SuperlatticeEnumeratorm_enum
 Pointer to SuperlatticeEnumerator which holds the unit cell and point group. More...
 
notstd::cloneable_ptr< HermiteCounterm_current
 Current supercell matrix in HermitCounter form. More...
 
Lattice 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...
 

The documentation for this class was generated from the following files: