CASM  1.1.0
A Clusters Approach to Statistical Mechanics
Lattice Enumerators

Detailed Description

Enumerates Lattice.

Classes

class  CASM::LatticeEnumEquivalents
 Enumerate equivalent Lattics, given a SymGroup. More...
 
class  CASM::xtal::ScelEnumProps
 Data structure for holding supercell enumeration properties. More...
 
class  CASM::xtal::SuperlatticeIterator
 Iterators used with SuperlatticeEnumerator. More...
 
class  CASM::xtal::SuperlatticeEnumerator
 A fake container of supercell matrices. More...
 

Typedefs

typedef long CASM::xtal::ScelEnumProps::size_type
 
typedef int CASM::xtal::SuperlatticeIterator::difference_type
 
typedef Lattice CASM::xtal::SuperlatticeIterator::value_type
 
typedef const LatticeCASM::xtal::SuperlatticeIterator::reference
 
typedef const LatticeCASM::xtal::SuperlatticeIterator::pointer
 
typedef long int CASM::xtal::SuperlatticeEnumerator::size_type
 
typedef SuperlatticeIterator CASM::xtal::SuperlatticeEnumerator::const_iterator
 

Functions

 CASM::xtal::ScelEnumProps::ScelEnumProps (size_type begin_volume, size_type end_volume, std::string dirs="abc", Eigen::Matrix3i generating_matrix=Eigen::Matrix3i::Identity())
 Constructor. More...
 
size_type CASM::xtal::ScelEnumProps::begin_volume () const
 
size_type CASM::xtal::ScelEnumProps::end_volume () const
 
int CASM::xtal::ScelEnumProps::dims () const
 
std::string CASM::xtal::ScelEnumProps::dirs () const
 
Eigen::Matrix3i CASM::xtal::ScelEnumProps::generating_matrix () const
 
 CASM::xtal::SuperlatticeIterator::SuperlatticeIterator ()
 
 CASM::xtal::SuperlatticeIterator::SuperlatticeIterator (const SuperlatticeEnumerator &enumerator, int volume, int dims)
 
SuperlatticeIteratorCASM::xtal::SuperlatticeIterator::operator= (const SuperlatticeIterator &B)
 
bool CASM::xtal::SuperlatticeIterator::operator== (const SuperlatticeIterator &B) const
 Iterator comparison. More...
 
bool CASM::xtal::SuperlatticeIterator::operator!= (const SuperlatticeIterator &B) const
 Iterator comparison. More...
 
reference CASM::xtal::SuperlatticeIterator::operator* () const
 Access the supercell. More...
 
pointer CASM::xtal::SuperlatticeIterator::operator-> () const
 Access the supercell. More...
 
Eigen::Matrix3i CASM::xtal::SuperlatticeIterator::matrix () const
 constructed supercell matrix More...
 
HermiteCounter::value_type CASM::xtal::SuperlatticeIterator::volume () const
 current volume More...
 
const SuperlatticeEnumeratorCASM::xtal::SuperlatticeIterator::enumerator () const
 const reference to the SuperlatticeEnumerator this is iterating with More...
 
SuperlatticeIteratorCASM::xtal::SuperlatticeIterator::operator++ ()
 Prefix increment operator. Increment to next unique supercell. More...
 
void CASM::xtal::SuperlatticeIterator::_increment ()
 Postfix increment operator. Increment to next unique supercell. More...
 
void CASM::xtal::SuperlatticeIterator::_try_increment ()
 Check if the current supercell matrix hermite normal form is in a canonical form. More...
 
void CASM::xtal::SuperlatticeIterator::_update_super ()
 Update m_super when required. More...
 
 CASM::xtal::SuperlatticeEnumerator::SuperlatticeEnumerator (const Lattice &unit, const SymOpVector &point_grp, const ScelEnumProps &enum_props)
 Construct a SuperlatticeEnumerator using custom point group operations. More...
 
template<typename ExternSymGroupTypeIt >
 CASM::xtal::SuperlatticeEnumerator::SuperlatticeEnumerator (ExternSymGroupTypeIt begin, ExternSymGroupTypeIt end, const Lattice &unit, const ScelEnumProps &enum_props)
 
const LatticeCASM::xtal::SuperlatticeEnumerator::unit () const
 Access the unit the is being made into superlattices. More...
 
const SymOpVectorCASM::xtal::SuperlatticeEnumerator::point_group () const
 Access the unit point group. More...
 
void CASM::xtal::SuperlatticeEnumerator::begin_volume (size_type _begin_volume)
 Set the beginning volume. More...
 
size_type CASM::xtal::SuperlatticeEnumerator::begin_volume () const
 Get the beginning volume. More...
 
void CASM::xtal::SuperlatticeEnumerator::end_volume (size_type _end_volume)
 Set the end volume. More...
 
size_type CASM::xtal::SuperlatticeEnumerator::end_volume () const
 Get the end volume. More...
 
const Eigen::Matrix3i & CASM::xtal::SuperlatticeEnumerator::gen_mat () const
 Get the transformation matrix that's being applied to the unit vectors. More...
 
int CASM::xtal::SuperlatticeEnumerator::dimension () const
 Get the dimensions of the enumerator (1D, 2D or 3D) More...
 
const_iterator CASM::xtal::SuperlatticeEnumerator::begin () const
 A const iterator to the beginning volume, specify here how the iterator should jump through the enumeration. More...
 
const_iterator CASM::xtal::SuperlatticeEnumerator::end () const
 A const iterator to the past-the-last volume. More...
 
const_iterator CASM::xtal::SuperlatticeEnumerator::cbegin () const
 A const iterator to the beginning volume. More...
 
const_iterator CASM::xtal::SuperlatticeEnumerator::cend () const
 A const iterator to the past-the-last volume. More...
 
const_iterator CASM::xtal::SuperlatticeEnumerator::citerator (size_type volume) const
 A const iterator to a specified volume. More...
 
Eigen::Matrix3i CASM::xtal::enforce_min_volume (const Lattice &unit, const Eigen::Matrix3i &T, const SymOpVector &point_grp, Index volume, bool fix_shape=false)
 Return a transformation matrix that ensures a supercell of at least some volume. More...
 
template<typename ExternSymGroupTypeIt >
Eigen::Matrix3i CASM::xtal::enforce_min_volume (ExternSymGroupTypeIt begin, ExternSymGroupTypeIt end, const Lattice &unit, const Eigen::Matrix3i &T, Index volume, bool fix_shape=false)
 
Eigen::Matrix3i CASM::xtal::canonical_hnf (const Eigen::Matrix3i &T, const SymOpVector &effective_pg, const Lattice &ref_lattice)
 Return canonical hermite normal form of the supercell matrix. More...
 
template<typename ExternSymGroupTypeIt >
Eigen::Matrix3i CASM::xtal::canonical_hnf (ExternSymGroupTypeIt begin, ExternSymGroupTypeIt end, const Eigen::Matrix3i &T, const Lattice &ref_lattice)
 
Eigen::Matrix3i canonical_hnf (const Eigen::Matrix3i &T, const SymOpVector &effective_pg, const Lattice &ref_lattice)
 Return canonical hermite normal form of the supercell matrix. More...
 

Variables

EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef std::forward_iterator_tag CASM::xtal::SuperlatticeIterator::iterator_category
 fixes alignment of m_deformation More...
 
size_type CASM::xtal::ScelEnumProps::m_begin_volume
 
size_type CASM::xtal::ScelEnumProps::m_end_volume
 
int CASM::xtal::ScelEnumProps::m_dims
 
std::string CASM::xtal::ScelEnumProps::m_dirs
 
Eigen::Matrix3i CASM::xtal::ScelEnumProps::m_gen_mat
 
bool CASM::xtal::SuperlatticeIterator::m_super_updated
 Indicates if m_super reflects the current m_current supercell matrix. More...
 
const SuperlatticeEnumeratorCASM::xtal::SuperlatticeIterator::m_enum
 Pointer to SuperlatticeEnumerator which holds the unit cell and point group. More...
 
notstd::cloneable_ptr< HermiteCounterCASM::xtal::SuperlatticeIterator::m_current
 Current supercell matrix in HermitCounter form. More...
 
Lattice CASM::xtal::SuperlatticeIterator::m_super
 A supercell, stored here so that iterator dereferencing will be OK. Only used when requested. More...
 
std::vector< Eigen::Matrix3i > CASM::xtal::SuperlatticeIterator::m_canon_hist
 Keep track of the HNF matrices for the current determinant value. More...
 
const Lattice CASM::xtal::SuperlatticeEnumerator::m_unit
 The unit cell of the supercells. More...
 
SymOpVector CASM::xtal::SuperlatticeEnumerator::m_point_group
 The lattice of the unit cell. More...
 
const int CASM::xtal::SuperlatticeEnumerator::m_begin_volume
 The first volume supercells to be iterated over (what cbegin uses) More...
 
const int CASM::xtal::SuperlatticeEnumerator::m_end_volume
 The past-the-last volume supercells to be iterated over (what cend uses) More...
 
const Eigen::Matrix3i CASM::xtal::SuperlatticeEnumerator::m_gen_mat
 This matrix (G) specifies new lattice vectors to enumerate over column-wise, such that the resulting transformation matrix is G*B, where B is the block matrix constructed out of the HermiteCounter matrix H. More...
 
const int CASM::xtal::SuperlatticeEnumerator::m_dims
 The number of lattice directions the enumeration is being done in. More...
 

Typedef Documentation

◆ const_iterator

◆ difference_type

◆ pointer

◆ reference

◆ size_type [1/2]

Definition at line 31 of file SuperlatticeEnumerator.hh.

◆ size_type [2/2]

Definition at line 206 of file SuperlatticeEnumerator.hh.

◆ value_type

Function Documentation

◆ _increment()

void CASM::xtal::SuperlatticeIterator::_increment ( )
private

Postfix increment operator. Increment to next unique supercell.

Uses _try_increment until the next unique supercell is found.

Definition at line 83 of file SuperlatticeEnumerator.cc.

◆ _try_increment()

void CASM::xtal::SuperlatticeIterator::_try_increment ( )
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)

◆ _update_super()

void CASM::xtal::SuperlatticeIterator::_update_super ( )
private

Update m_super when required.

◆ begin()

SuperlatticeEnumerator::const_iterator CASM::xtal::SuperlatticeEnumerator::begin ( ) const

A const iterator to the beginning volume, specify here how the iterator should jump through the enumeration.

Definition at line 149 of file SuperlatticeEnumerator.cc.

◆ begin_volume() [1/3]

size_type CASM::xtal::ScelEnumProps::begin_volume ( ) const
inline

Definition at line 89 of file SuperlatticeEnumerator.hh.

◆ begin_volume() [2/3]

SuperlatticeEnumerator::size_type CASM::xtal::SuperlatticeEnumerator::begin_volume ( ) const

Get the beginning volume.

Definition at line 140 of file SuperlatticeEnumerator.cc.

◆ begin_volume() [3/3]

void CASM::xtal::SuperlatticeEnumerator::begin_volume ( size_type  _begin_volume)

Set the beginning volume.

◆ canonical_hnf() [1/3]

Eigen::Matrix3i canonical_hnf ( const Eigen::Matrix3i &  T,
const SymOpVector effective_pg,
const Lattice ref_lattice 
)
related

Return canonical hermite normal form of the supercell matrix.

Returns
Eigen::Matrix3i of H in canonical form
Parameters
TA supercell matrix (Eigen::Matrix3i), such that S = U*T, where S is the superlattice and U the unit lattice, as column vector matrices
ref_latticeThe lattice the transformation matrix T is meant to be acting on
effective_pgGroup of symmetry operations to use for determining whether a canonical HNF matrix has been found. This is probably the point group of a structure or configuration Canonical form is such that T is in Hermite normal form (as from CASM::hermite_normal_form), and the unrolled coefficients
[a f e]
[0 b d] -> abcdef
[0 0 c]
form the highest lexicographic order when considering equivalent superlattices by point group operations.
  • Equivalent superlattices can be obtained using point group operations: S' = op*S = U*H*V, where V is integer and has determinant +/- 1
  • Substituting S = U*T, we have op*U*T = U*H*V.
  • Or H*V = U.inverse*op*U*T, which is the hermite normal form of U.inverse*op*U*T
  • So T is canonical if it is in hermite normal form and for all point group operations it has a higher lexicographic order than the resulting H

Definition at line 211 of file SuperlatticeEnumerator.cc.

◆ canonical_hnf() [2/3]

Eigen::Matrix3i CASM::xtal::canonical_hnf ( const Eigen::Matrix3i &  T,
const SymOpVector effective_pg,
const Lattice ref_lattice 
)

Return canonical hermite normal form of the supercell matrix.

Returns
Eigen::Matrix3i of H in canonical form
Parameters
TA supercell matrix (Eigen::Matrix3i), such that S = U*T, where S is the superlattice and U the unit lattice, as column vector matrices
ref_latticeThe lattice the transformation matrix T is meant to be acting on
effective_pgGroup of symmetry operations to use for determining whether a canonical HNF matrix has been found. This is probably the point group of a structure or configuration Canonical form is such that T is in Hermite normal form (as from CASM::hermite_normal_form), and the unrolled coefficients
[a f e]
[0 b d] -> abcdef
[0 0 c]
form the highest lexicographic order when considering equivalent superlattices by point group operations.
  • Equivalent superlattices can be obtained using point group operations: S' = op*S = U*H*V, where V is integer and has determinant +/- 1
  • Substituting S = U*T, we have op*U*T = U*H*V.
  • Or H*V = U.inverse*op*U*T, which is the hermite normal form of U.inverse*op*U*T
  • So T is canonical if it is in hermite normal form and for all point group operations it has a higher lexicographic order than the resulting H

Definition at line 211 of file SuperlatticeEnumerator.cc.

◆ canonical_hnf() [3/3]

template<typename ExternSymGroupTypeIt >
Eigen::Matrix3i CASM::xtal::canonical_hnf ( ExternSymGroupTypeIt  begin,
ExternSymGroupTypeIt  end,
const Eigen::Matrix3i &  T,
const Lattice ref_lattice 
)

Definition at line 383 of file SuperlatticeEnumerator.hh.

◆ cbegin()

SuperlatticeEnumerator::const_iterator CASM::xtal::SuperlatticeEnumerator::cbegin ( ) const

A const iterator to the beginning volume.

Definition at line 159 of file SuperlatticeEnumerator.cc.

◆ cend()

SuperlatticeEnumerator::const_iterator CASM::xtal::SuperlatticeEnumerator::cend ( ) const

A const iterator to the past-the-last volume.

Definition at line 164 of file SuperlatticeEnumerator.cc.

◆ citerator()

SuperlatticeEnumerator::const_iterator CASM::xtal::SuperlatticeEnumerator::citerator ( size_type  volume) const

A const iterator to a specified volume.

Definition at line 170 of file SuperlatticeEnumerator.cc.

◆ dimension()

int CASM::xtal::SuperlatticeEnumerator::dimension ( ) const

Get the dimensions of the enumerator (1D, 2D or 3D)

Definition at line 137 of file SuperlatticeEnumerator.cc.

◆ dims()

int CASM::xtal::ScelEnumProps::dims ( ) const
inline

Definition at line 93 of file SuperlatticeEnumerator.hh.

◆ dirs()

std::string CASM::xtal::ScelEnumProps::dirs ( ) const
inline

Definition at line 95 of file SuperlatticeEnumerator.hh.

◆ end()

SuperlatticeEnumerator::const_iterator CASM::xtal::SuperlatticeEnumerator::end ( ) const

A const iterator to the past-the-last volume.

Definition at line 154 of file SuperlatticeEnumerator.cc.

◆ end_volume() [1/3]

size_type CASM::xtal::ScelEnumProps::end_volume ( ) const
inline

Definition at line 91 of file SuperlatticeEnumerator.hh.

◆ end_volume() [2/3]

SuperlatticeEnumerator::size_type CASM::xtal::SuperlatticeEnumerator::end_volume ( ) const

Get the end volume.

Definition at line 144 of file SuperlatticeEnumerator.cc.

◆ end_volume() [3/3]

void CASM::xtal::SuperlatticeEnumerator::end_volume ( size_type  _end_volume)

Set the end volume.

◆ enforce_min_volume() [1/2]

Eigen::Matrix3i CASM::xtal::enforce_min_volume ( const Lattice unit,
const Eigen::Matrix3i &  T,
const SymOpVector point_grp,
Index  volume,
bool  fix_shape = false 
)

Return a transformation matrix that ensures a supercell of at least some volume.

Parameters
unitThe thing that is tiled to form supercells. May not be the primitive cell.
TThe transformation matrix of the unit, relative the prim. The volume of the unit is determined from T.determinant().
point_grpPoint group operations to use for checking supercell uniqueness.
volumeThe beginning volume to enumerate
end_volumeThe past-the-last volume to enumerate
fix_shapeIf true, enforce that S = T*m*I, where m is a scalar and I is the identity matrix.
Returns
M, a transformation matrix, S = T*M, where M is an integer matrix and S.determinant() >= volume

Definition at line 177 of file SuperlatticeEnumerator.cc.

◆ enforce_min_volume() [2/2]

template<typename ExternSymGroupTypeIt >
Eigen::Matrix3i CASM::xtal::enforce_min_volume ( ExternSymGroupTypeIt  begin,
ExternSymGroupTypeIt  end,
const Lattice unit,
const Eigen::Matrix3i &  T,
Index  volume,
bool  fix_shape = false 
)

Definition at line 327 of file SuperlatticeEnumerator.hh.

◆ enumerator()

const SuperlatticeEnumerator & CASM::xtal::SuperlatticeIterator::enumerator ( ) const

const reference to the SuperlatticeEnumerator this is iterating with

Definition at line 73 of file SuperlatticeEnumerator.cc.

◆ gen_mat()

const Eigen::Matrix3i & CASM::xtal::SuperlatticeEnumerator::gen_mat ( ) const

Get the transformation matrix that's being applied to the unit vectors.

Definition at line 133 of file SuperlatticeEnumerator.cc.

◆ generating_matrix()

Eigen::Matrix3i CASM::xtal::ScelEnumProps::generating_matrix ( ) const
inline

Definition at line 97 of file SuperlatticeEnumerator.hh.

◆ matrix()

Eigen::Matrix3i CASM::xtal::SuperlatticeIterator::matrix ( ) const

constructed supercell matrix

Definition at line 100 of file SuperlatticeEnumerator.cc.

◆ operator!=()

bool CASM::xtal::SuperlatticeIterator::operator!= ( const SuperlatticeIterator B) const

Iterator comparison.

Definition at line 47 of file SuperlatticeEnumerator.cc.

◆ operator*()

SuperlatticeIterator::reference CASM::xtal::SuperlatticeIterator::operator* ( ) const

Access the supercell.

Definition at line 51 of file SuperlatticeEnumerator.cc.

◆ operator++()

SuperlatticeIterator & CASM::xtal::SuperlatticeIterator::operator++ ( )

Prefix increment operator. Increment to next unique supercell.

Definition at line 78 of file SuperlatticeEnumerator.cc.

◆ operator->()

SuperlatticeIterator::pointer CASM::xtal::SuperlatticeIterator::operator-> ( ) const

Access the supercell.

Definition at line 60 of file SuperlatticeEnumerator.cc.

◆ operator=()

SuperlatticeIterator & CASM::xtal::SuperlatticeIterator::operator= ( const SuperlatticeIterator B)

Definition at line 33 of file SuperlatticeEnumerator.cc.

◆ operator==()

bool CASM::xtal::SuperlatticeIterator::operator== ( const SuperlatticeIterator B) const

Iterator comparison.

Definition at line 43 of file SuperlatticeEnumerator.cc.

◆ point_group()

const SymOpVector & CASM::xtal::SuperlatticeEnumerator::point_group ( ) const

Access the unit point group.

Definition at line 129 of file SuperlatticeEnumerator.cc.

◆ ScelEnumProps()

CASM::xtal::ScelEnumProps::ScelEnumProps ( size_type  begin_volume,
size_type  end_volume,
std::string  dirs = "abc",
Eigen::Matrix3i  generating_matrix = Eigen::Matrix3i::Identity() 
)
inline

Constructor.

Parameters
begin_volumeThe beginning volume to enumerate
end_volumeThe past-the-last volume to enumerate
dirsString indicating which lattice vectors to enumerate over. Some combination of 'a', 'b', and 'c', where 'a' indicates the first lattice vector of the unit cell, 'b' the second, and 'c' the third.
generating_matrixThis matrix, G, transforms the primitive lattice vectors into the unit cell lattice vectors which are used to generate supercells. So the generated supercells, S = P*G*T, where S and P are column vector matrices of the supercell and primitive cell, respectively, and G and T are integer tranformation matrices.

Definition at line 47 of file SuperlatticeEnumerator.hh.

◆ SuperlatticeEnumerator() [1/2]

CASM::xtal::SuperlatticeEnumerator::SuperlatticeEnumerator ( const Lattice unit,
const SymOpVector point_grp,
const ScelEnumProps enum_props 
)

Construct a SuperlatticeEnumerator using custom point group operations.

Returns
a SuperlatticeEnumerator
Parameters
unitThe thing that is tiled to form supercells. For now Lattice.
point_grpPoint group operations to use for checking supercell uniqueness.
enum_propsData structure specifying how to enumerate supercells

Definition at line 111 of file SuperlatticeEnumerator.cc.

◆ SuperlatticeEnumerator() [2/2]

template<typename ExternSymGroupTypeIt >
CASM::xtal::SuperlatticeEnumerator::SuperlatticeEnumerator ( ExternSymGroupTypeIt  begin,
ExternSymGroupTypeIt  end,
const Lattice unit,
const ScelEnumProps enum_props 
)
inline

Initialize with the unit lattice to be tiled, and specification for how to enumerate the superlattices. The symmetry operations are given with an iterator range, whose type must either have an Adapter functor defined, or the same external accessors as SymOpType

Definition at line 228 of file SuperlatticeEnumerator.hh.

◆ SuperlatticeIterator() [1/2]

CASM::xtal::SuperlatticeIterator::SuperlatticeIterator ( )
inline

Definition at line 127 of file SuperlatticeEnumerator.hh.

◆ SuperlatticeIterator() [2/2]

CASM::xtal::SuperlatticeIterator::SuperlatticeIterator ( const SuperlatticeEnumerator enumerator,
int  volume,
int  dims 
)

Definition at line 16 of file SuperlatticeEnumerator.cc.

◆ unit()

const Lattice & CASM::xtal::SuperlatticeEnumerator::unit ( ) const

Access the unit the is being made into superlattices.

Definition at line 127 of file SuperlatticeEnumerator.cc.

◆ volume()

HermiteCounter::value_type CASM::xtal::SuperlatticeIterator::volume ( ) const

current volume

Definition at line 69 of file SuperlatticeEnumerator.cc.

Variable Documentation

◆ iterator_category

EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef std::forward_iterator_tag CASM::xtal::SuperlatticeIterator::iterator_category

fixes alignment of m_deformation

Definition at line 121 of file SuperlatticeEnumerator.hh.

◆ m_begin_volume [1/2]

size_type CASM::xtal::ScelEnumProps::m_begin_volume
private

Definition at line 100 of file SuperlatticeEnumerator.hh.

◆ m_begin_volume [2/2]

const int CASM::xtal::SuperlatticeEnumerator::m_begin_volume
private

The first volume supercells to be iterated over (what cbegin uses)

Definition at line 287 of file SuperlatticeEnumerator.hh.

◆ m_canon_hist

std::vector<Eigen::Matrix3i> CASM::xtal::SuperlatticeIterator::m_canon_hist
private

Keep track of the HNF matrices for the current determinant value.

Definition at line 197 of file SuperlatticeEnumerator.hh.

◆ m_current

notstd::cloneable_ptr<HermiteCounter> CASM::xtal::SuperlatticeIterator::m_current
private

Current supercell matrix in HermitCounter form.

Definition at line 190 of file SuperlatticeEnumerator.hh.

◆ m_dims [1/2]

int CASM::xtal::ScelEnumProps::m_dims
private

Definition at line 102 of file SuperlatticeEnumerator.hh.

◆ m_dims [2/2]

const int CASM::xtal::SuperlatticeEnumerator::m_dims
private

The number of lattice directions the enumeration is being done in.

Definition at line 299 of file SuperlatticeEnumerator.hh.

◆ m_dirs

std::string CASM::xtal::ScelEnumProps::m_dirs
private

Definition at line 103 of file SuperlatticeEnumerator.hh.

◆ m_end_volume [1/2]

size_type CASM::xtal::ScelEnumProps::m_end_volume
private

Definition at line 101 of file SuperlatticeEnumerator.hh.

◆ m_end_volume [2/2]

const int CASM::xtal::SuperlatticeEnumerator::m_end_volume
private

The past-the-last volume supercells to be iterated over (what cend uses)

Definition at line 291 of file SuperlatticeEnumerator.hh.

◆ m_enum

const SuperlatticeEnumerator* CASM::xtal::SuperlatticeIterator::m_enum
private

Pointer to SuperlatticeEnumerator which holds the unit cell and point group.

Definition at line 187 of file SuperlatticeEnumerator.hh.

◆ m_gen_mat [1/2]

Eigen::Matrix3i CASM::xtal::ScelEnumProps::m_gen_mat
private

Definition at line 104 of file SuperlatticeEnumerator.hh.

◆ m_gen_mat [2/2]

const Eigen::Matrix3i CASM::xtal::SuperlatticeEnumerator::m_gen_mat
private

This matrix (G) specifies new lattice vectors to enumerate over column-wise, such that the resulting transformation matrix is G*B, where B is the block matrix constructed out of the HermiteCounter matrix H.

Definition at line 296 of file SuperlatticeEnumerator.hh.

◆ m_point_group

SymOpVector CASM::xtal::SuperlatticeEnumerator::m_point_group
private

The lattice of the unit cell.

The point group of the unit cell

Definition at line 284 of file SuperlatticeEnumerator.hh.

◆ m_super

Lattice CASM::xtal::SuperlatticeIterator::m_super
mutableprivate

A supercell, stored here so that iterator dereferencing will be OK. Only used when requested.

Definition at line 194 of file SuperlatticeEnumerator.hh.

◆ m_super_updated

bool CASM::xtal::SuperlatticeIterator::m_super_updated
mutableprivate

Indicates if m_super reflects the current m_current supercell matrix.

Definition at line 183 of file SuperlatticeEnumerator.hh.

◆ m_unit

const Lattice CASM::xtal::SuperlatticeEnumerator::m_unit
private

The unit cell of the supercells.

Definition at line 278 of file SuperlatticeEnumerator.hh.