CASM
AClustersApproachtoStatisticalMechanics
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules
CASM::SupercellEnumerator< UnitType > Class Template Reference

#include <Enumerator.hh>

Detailed Description

template<typename UnitType>
class CASM::SupercellEnumerator< UnitType >

A fake container of supercell matrices.

Provides iterators over symmetrically unique supercells of some object of UnitType. Could be Lattice, eventually BasicStructure or Structure

Definition at line 407 of file Enumerator.hh.

Public Types

typedef long int size_type
 
typedef SupercellIterator
< UnitType > 
const_iterator
 

Public Member Functions

 SupercellEnumerator (UnitType unit, const ScelEnumProps &enum_props, double tol)
 Construct a SupercellEnumerator. More...
 
 SupercellEnumerator (UnitType unit, const SymGroup &point_grp, const ScelEnumProps &enum_props)
 Construct a SupercellEnumerator using custom point group operations. More...
 
const UnitType & unit () const
 Access the unit the is being made into supercells. More...
 
const Latticelattice () const
 Access the unit lattice. More...
 
const SymGrouppoint_group () const
 Access the unit point group. More...
 
void begin_volume (size_type _begin_volume)
 Set the beginning volume. More...
 
size_type begin_volume () const
 Get the beginning volume. More...
 
void end_volume (size_type _end_volume)
 Set the end volume. More...
 
size_type end_volume () const
 Get the end volume. More...
 
const Eigen::Matrix3i & gen_mat () const
 Get the transformation matrix that's being applied to the unit vectors. More...
 
int dimension () const
 Get the dimensions of the enumerator (1D, 2D or 3D) More...
 
const_iterator begin () const
 A const iterator to the beginning volume, specify here how the iterator should jump through the enumeration. More...
 
const_iterator end () const
 A const iterator to the past-the-last volume. More...
 
const_iterator cbegin () const
 A const iterator to the beginning volume. More...
 
const_iterator cend () const
 A const iterator to the past-the-last volume. More...
 
const_iterator citerator (size_type volume) const
 A const iterator to a specified volume. More...
 
template<>
 SupercellEnumerator (Lattice unit, const ScelEnumProps &enum_props, double tol)
 
template<>
 SupercellEnumerator (Lattice unit, const SymGroup &point_grp, const ScelEnumProps &enum_props)
 
template<>
 SupercellEnumerator (Lattice unit, const ScelEnumProps &enum_props, double tol)
 
template<>
 SupercellEnumerator (Lattice unit, const SymGroup &point_grp, const ScelEnumProps &enum_props)
 

Private Attributes

const UnitType m_unit
 The unit cell of the supercells. More...
 
Lattice m_lat
 The lattice of the unit cell. More...
 
SymGroup m_point_group
 The point group of the unit cell. More...
 
const int m_begin_volume
 The first volume supercells to be iterated over (what cbegin uses) More...
 
const int m_end_volume
 The past-the-last volume supercells to be iterated over (what cend uses) More...
 
const Eigen::Matrix3i 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 m_dims
 The number of lattice directions the enumeration is being done in. More...
 

Member Typedef Documentation

template<typename UnitType>
typedef SupercellIterator<UnitType> CASM::SupercellEnumerator< UnitType >::const_iterator

Definition at line 350 of file SupercellEnumerator.hh.

template<typename UnitType>
typedef long int CASM::SupercellEnumerator< UnitType >::size_type

Definition at line 348 of file SupercellEnumerator.hh.

Constructor & Destructor Documentation

template<typename UnitType>
CASM::SupercellEnumerator< UnitType >::SupercellEnumerator ( UnitType  unit,
const ScelEnumProps enum_props,
double  tol 
)

Construct a SupercellEnumerator.

Returns
a SupercellEnumerator
Parameters
unitThe thing that is tiled to form supercells. For now Lattice.
enum_propsData structure specifying how to enumerate supercells
tolTolerance for generating the point group
template<typename UnitType>
CASM::SupercellEnumerator< UnitType >::SupercellEnumerator ( UnitType  unit,
const SymGroup point_grp,
const ScelEnumProps enum_props 
)

Construct a SupercellEnumerator using custom point group operations.

Returns
a SupercellEnumerator
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
template<>
CASM::SupercellEnumerator< Lattice >::SupercellEnumerator ( Lattice  unit,
const ScelEnumProps enum_props,
double  tol 
)
template<>
CASM::SupercellEnumerator< Lattice >::SupercellEnumerator ( Lattice  unit,
const SymGroup point_grp,
const ScelEnumProps enum_props 
)
template<>
CASM::SupercellEnumerator< Lattice >::SupercellEnumerator ( Lattice  unit,
const ScelEnumProps enum_props,
double  tol 
)

Definition at line 544 of file SupercellEnumerator.cc.

template<>
CASM::SupercellEnumerator< Lattice >::SupercellEnumerator ( Lattice  unit,
const SymGroup point_grp,
const ScelEnumProps enum_props 
)

Definition at line 563 of file SupercellEnumerator.cc.

Member Function Documentation

template<typename UnitType>
void CASM::SupercellEnumerator< UnitType >::begin_volume ( size_type  _begin_volume)

Set the beginning volume.

template<typename UnitType>
void CASM::SupercellEnumerator< UnitType >::end_volume ( size_type  _end_volume)

Set the end volume.

Member Data Documentation

template<typename UnitType>
const int CASM::SupercellEnumerator< UnitType >::m_begin_volume
private

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

Definition at line 431 of file SupercellEnumerator.hh.

template<typename UnitType>
const int CASM::SupercellEnumerator< UnitType >::m_dims
private

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

Definition at line 441 of file SupercellEnumerator.hh.

template<typename UnitType>
const int CASM::SupercellEnumerator< UnitType >::m_end_volume
private

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

Definition at line 434 of file SupercellEnumerator.hh.

template<typename UnitType>
const Eigen::Matrix3i CASM::SupercellEnumerator< UnitType >::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 438 of file SupercellEnumerator.hh.

template<typename UnitType>
Lattice CASM::SupercellEnumerator< UnitType >::m_lat
private

The lattice of the unit cell.

Definition at line 425 of file SupercellEnumerator.hh.

template<typename UnitType>
SymGroup CASM::SupercellEnumerator< UnitType >::m_point_group
private

The point group of the unit cell.

Definition at line 428 of file SupercellEnumerator.hh.

template<typename UnitType>
const UnitType CASM::SupercellEnumerator< UnitType >::m_unit
private

The unit cell of the supercells.

Definition at line 422 of file SupercellEnumerator.hh.


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