CASM
AClustersApproachtoStatisticalMechanics
|
#include <Enumerator.hh>
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 Lattice & | lattice () const |
Access the unit lattice. More... | |
const SymGroup & | point_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... | |
typedef SupercellIterator<UnitType> CASM::SupercellEnumerator< UnitType >::const_iterator |
Definition at line 350 of file SupercellEnumerator.hh.
typedef long int CASM::SupercellEnumerator< UnitType >::size_type |
Definition at line 348 of file SupercellEnumerator.hh.
CASM::SupercellEnumerator< UnitType >::SupercellEnumerator | ( | UnitType | unit, |
const ScelEnumProps & | enum_props, | ||
double | tol | ||
) |
Construct a SupercellEnumerator.
unit | The thing that is tiled to form supercells. For now Lattice. |
enum_props | Data structure specifying how to enumerate supercells |
tol | Tolerance for generating the point group |
CASM::SupercellEnumerator< UnitType >::SupercellEnumerator | ( | UnitType | unit, |
const SymGroup & | point_grp, | ||
const ScelEnumProps & | enum_props | ||
) |
Construct a SupercellEnumerator using custom point group operations.
unit | The thing that is tiled to form supercells. For now Lattice. |
point_grp | Point group operations to use for checking supercell uniqueness. |
enum_props | Data structure specifying how to enumerate supercells |
CASM::SupercellEnumerator< Lattice >::SupercellEnumerator | ( | Lattice | unit, |
const ScelEnumProps & | enum_props, | ||
double | tol | ||
) |
CASM::SupercellEnumerator< Lattice >::SupercellEnumerator | ( | Lattice | unit, |
const SymGroup & | point_grp, | ||
const ScelEnumProps & | enum_props | ||
) |
CASM::SupercellEnumerator< Lattice >::SupercellEnumerator | ( | Lattice | unit, |
const ScelEnumProps & | enum_props, | ||
double | tol | ||
) |
Definition at line 544 of file SupercellEnumerator.cc.
CASM::SupercellEnumerator< Lattice >::SupercellEnumerator | ( | Lattice | unit, |
const SymGroup & | point_grp, | ||
const ScelEnumProps & | enum_props | ||
) |
Definition at line 563 of file SupercellEnumerator.cc.
void CASM::SupercellEnumerator< UnitType >::begin_volume | ( | size_type | _begin_volume | ) |
Set the beginning volume.
void CASM::SupercellEnumerator< UnitType >::end_volume | ( | size_type | _end_volume | ) |
Set the end volume.
|
private |
The first volume supercells to be iterated over (what cbegin uses)
Definition at line 431 of file SupercellEnumerator.hh.
|
private |
The number of lattice directions the enumeration is being done in.
Definition at line 441 of file SupercellEnumerator.hh.
|
private |
The past-the-last volume supercells to be iterated over (what cend uses)
Definition at line 434 of file SupercellEnumerator.hh.
|
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.
|
private |
The lattice of the unit cell.
Definition at line 425 of file SupercellEnumerator.hh.
|
private |
The point group of the unit cell.
Definition at line 428 of file SupercellEnumerator.hh.
|
private |
The unit cell of the supercells.
Definition at line 422 of file SupercellEnumerator.hh.