CASM
AClustersApproachtoStatisticalMechanics
|
Enumerates Lattice.
Namespaces | |
CASM::HermiteCounter_impl | |
Classes | |
class | CASM::LatticeEnumEquivalents |
Enumerate equivalent Lattics, given a SymGroup. More... | |
class | CASM::ScelEnumProps |
Data structure for holding supercell enumeration properties. More... | |
class | CASM::HermiteCounter |
class | CASM::SupercellEnumerator< UnitType > |
A fake container of supercell matrices. More... | |
class | CASM::SupercellIterator< UnitType > |
Iterators used with SupercellEnumerator. More... | |
Functions | |
Eigen::Matrix3i | CASM::make_unit_cell (PrimClex &primclex, const jsonParser &json) |
Read unit cell transformation matrix from JSON input. More... | |
ScelEnumProps | CASM::make_scel_enum_props (PrimClex &primclex, const jsonParser &input) |
Make a ScelEnumProps object from JSON input. More... | |
template<typename UnitType > | |
Eigen::Matrix3i | CASM::enforce_min_volume (const UnitType &unit, const Eigen::Matrix3i &T, const SymGroup &point_grp, Index volume, bool fix_shape=false) |
Return a transformation matrix that ensures a supercell of at least some volume. More... | |
template<> | |
Eigen::Matrix3i | CASM::enforce_min_volume< Lattice > (const Lattice &unit, const Eigen::Matrix3i &T, const SymGroup &point_grp, Index volume, bool fix_shape) |
Eigen::Matrix3i | CASM::canonical_hnf (const Eigen::Matrix3i &T, const SymGroup &effective_pg, const Lattice &ref_lattice) |
Return canonical hermite normal form of the supercell matrix, and op used to find it. More... | |
CASM::SupercellIterator< UnitType >::SupercellIterator (const SupercellEnumerator< UnitType > &enumerator, int volume, int dims) | |
SupercellIterator< UnitType > & | CASM::SupercellIterator< UnitType >::operator= (const SupercellIterator< UnitType > &B) |
bool | CASM::SupercellIterator< UnitType >::operator== (const SupercellIterator< UnitType > &B) const |
Iterator comparison. More... | |
bool | CASM::SupercellIterator< UnitType >::operator!= (const SupercellIterator< UnitType > &B) const |
Iterator comparison. More... | |
reference | CASM::SupercellIterator< UnitType >::operator* () const |
Access the supercell. More... | |
pointer | CASM::SupercellIterator< UnitType >::operator-> () const |
Access the supercell. More... | |
HermiteCounter::value_type | CASM::SupercellIterator< UnitType >::volume () const |
current volume More... | |
Eigen::Matrix3i | CASM::SupercellIterator< UnitType >::matrix () const |
constructed supercell matrix More... | |
const SupercellEnumerator < UnitType > & | CASM::SupercellIterator< UnitType >::enumerator () const |
const reference to the SupercellEnumerator this is iterating with More... | |
SupercellIterator< UnitType > & | CASM::SupercellIterator< UnitType >::operator++ () |
Prefix increment operator. Increment to next unique supercell. More... | |
void | CASM::SupercellIterator< UnitType >::_increment () |
Postfix increment operator. Increment to next unique supercell. More... | |
const UnitType & | CASM::SupercellEnumerator< UnitType >::unit () const |
Access the unit the is being made into supercells. More... | |
const Lattice & | CASM::SupercellEnumerator< UnitType >::lattice () const |
Access the unit lattice. More... | |
const SymGroup & | CASM::SupercellEnumerator< UnitType >::point_group () const |
Access the unit point group. More... | |
const Eigen::Matrix3i & | CASM::SupercellEnumerator< UnitType >::gen_mat () const |
Get the transformation matrix that's being applied to the unit vectors. More... | |
int | CASM::SupercellEnumerator< UnitType >::dimension () const |
Get the dimensions of the enumerator (1D, 2D or 3D) More... | |
size_type | CASM::SupercellEnumerator< UnitType >::begin_volume () const |
Get the beginning volume. More... | |
size_type | CASM::SupercellEnumerator< UnitType >::end_volume () const |
Get the end volume. More... | |
const_iterator | CASM::SupercellEnumerator< UnitType >::begin () const |
A const iterator to the beginning volume, specify here how the iterator should jump through the enumeration. More... | |
const_iterator | CASM::SupercellEnumerator< UnitType >::end () const |
A const iterator to the past-the-last volume. More... | |
const_iterator | CASM::SupercellEnumerator< UnitType >::cbegin () const |
A const iterator to the beginning volume. More... | |
const_iterator | CASM::SupercellEnumerator< UnitType >::cend () const |
A const iterator to the past-the-last volume. More... | |
const_iterator | CASM::SupercellEnumerator< UnitType >::citerator (size_type volume) const |
A const iterator to a specified volume. More... | |
|
private |
Postfix increment operator. Increment to next unique supercell.
Uses _try_increment until the next unique supercell is found.
Definition at line 571 of file SupercellEnumerator.hh.
SupercellEnumerator< UnitType >::const_iterator CASM::SupercellEnumerator< UnitType >::begin | ( | ) | const |
A const iterator to the beginning volume, specify here how the iterator should jump through the enumeration.
Definition at line 641 of file SupercellEnumerator.hh.
SupercellEnumerator< UnitType >::size_type CASM::SupercellEnumerator< UnitType >::begin_volume | ( | ) | const |
Get the beginning volume.
Definition at line 623 of file SupercellEnumerator.hh.
Eigen::Matrix3i canonical_hnf | ( | const Eigen::Matrix3i & | T, |
const SymGroup & | effective_pg, | ||
const Lattice & | ref_lattice | ||
) |
Return canonical hermite normal form of the supercell matrix, and op used to find it.
Return canonical hermite normal form of the supercell matrix.
T | A supercell matrix (Eigen::Matrix3i), such that S = U*T, where S is the superlattice and U the unit lattice, as column vector matrices |
ref_lattice | The lattice the transformation matrix T is meant to be acting on |
effective_pg | Group 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]
|
Definition at line 653 of file SupercellEnumerator.cc.
SupercellEnumerator< UnitType >::const_iterator CASM::SupercellEnumerator< UnitType >::cbegin | ( | ) | const |
A const iterator to the beginning volume.
Definition at line 651 of file SupercellEnumerator.hh.
SupercellEnumerator< UnitType >::const_iterator CASM::SupercellEnumerator< UnitType >::cend | ( | ) | const |
A const iterator to the past-the-last volume.
Definition at line 656 of file SupercellEnumerator.hh.
SupercellEnumerator< UnitType >::const_iterator CASM::SupercellEnumerator< UnitType >::citerator | ( | size_type | volume | ) | const |
A const iterator to a specified volume.
Definition at line 661 of file SupercellEnumerator.hh.
int CASM::SupercellEnumerator< UnitType >::dimension | ( | ) | const |
Get the dimensions of the enumerator (1D, 2D or 3D)
Definition at line 610 of file SupercellEnumerator.hh.
SupercellEnumerator< UnitType >::const_iterator CASM::SupercellEnumerator< UnitType >::end | ( | ) | const |
A const iterator to the past-the-last volume.
Definition at line 646 of file SupercellEnumerator.hh.
SupercellEnumerator< UnitType >::size_type CASM::SupercellEnumerator< UnitType >::end_volume | ( | ) | const |
Get the end volume.
Definition at line 636 of file SupercellEnumerator.hh.
Eigen::Matrix3i CASM::enforce_min_volume | ( | const UnitType & | unit, |
const Eigen::Matrix3i & | T, | ||
const SymGroup & | point_grp, | ||
Index | volume, | ||
bool | fix_shape = false |
||
) |
Return a transformation matrix that ensures a supercell of at least some volume.
unit | The thing that is tiled to form supercells. May not be the primitive cell. |
T | The transformation matrix of the unit, relative the prim. The volume of the unit is determined from T.determinant(). |
point_grp | Point group operations to use for checking supercell uniqueness. |
volume | The beginning volume to enumerate |
end_volume | The past-the-last volume to enumerate |
fix_shape | If true, enforce that S = T*m*I, where m is a scalar and I is the identity matrix. |
Eigen::Matrix3i CASM::enforce_min_volume< Lattice > | ( | const Lattice & | unit, |
const Eigen::Matrix3i & | T, | ||
const SymGroup & | point_grp, | ||
Index | volume, | ||
bool | fix_shape | ||
) |
Definition at line 582 of file SupercellEnumerator.cc.
const SupercellEnumerator< UnitType > & CASM::SupercellIterator< UnitType >::enumerator | ( | ) | const |
const reference to the SupercellEnumerator this is iterating with
Definition at line 547 of file SupercellEnumerator.hh.
const Eigen::Matrix3i & CASM::SupercellEnumerator< UnitType >::gen_mat | ( | ) | const |
Get the transformation matrix that's being applied to the unit vectors.
Definition at line 605 of file SupercellEnumerator.hh.
const Lattice & CASM::SupercellEnumerator< UnitType >::lattice | ( | ) | const |
Access the unit lattice.
Definition at line 595 of file SupercellEnumerator.hh.
ScelEnumProps CASM::make_scel_enum_props | ( | PrimClex & | primclex, |
const jsonParser & | input | ||
) |
Make a ScelEnumProps object from JSON input.
Definition at line 68 of file SupercellEnumerator.cc.
Eigen::Matrix3i CASM::make_unit_cell | ( | PrimClex & | primclex, |
const jsonParser & | input | ||
) |
Read unit cell transformation matrix from JSON input.
Input json with one of the following forms:
Definition at line 28 of file SupercellEnumerator.cc.
Eigen::Matrix3i CASM::SupercellIterator< UnitType >::matrix | ( | ) | const |
constructed supercell matrix
Definition at line 541 of file SupercellEnumerator.hh.
bool CASM::SupercellIterator< UnitType >::operator!= | ( | const SupercellIterator< UnitType > & | B | ) | const |
Iterator comparison.
Definition at line 513 of file SupercellEnumerator.hh.
SupercellIterator< UnitType >::reference CASM::SupercellIterator< UnitType >::operator* | ( | ) | const |
Access the supercell.
Definition at line 518 of file SupercellEnumerator.hh.
SupercellIterator< UnitType > & CASM::SupercellIterator< UnitType >::operator++ | ( | ) |
Prefix increment operator. Increment to next unique supercell.
Definition at line 553 of file SupercellEnumerator.hh.
SupercellIterator< UnitType >::pointer CASM::SupercellIterator< UnitType >::operator-> | ( | ) | const |
Access the supercell.
Definition at line 527 of file SupercellEnumerator.hh.
SupercellIterator< UnitType > & CASM::SupercellIterator< UnitType >::operator= | ( | const SupercellIterator< UnitType > & | B | ) |
Definition at line 498 of file SupercellEnumerator.hh.
bool CASM::SupercellIterator< UnitType >::operator== | ( | const SupercellIterator< UnitType > & | B | ) | const |
Iterator comparison.
Definition at line 508 of file SupercellEnumerator.hh.
const SymGroup & CASM::SupercellEnumerator< UnitType >::point_group | ( | ) | const |
Access the unit point group.
Definition at line 600 of file SupercellEnumerator.hh.
CASM::SupercellIterator< UnitType >::SupercellIterator | ( | const SupercellEnumerator< UnitType > & | enumerator, |
int | volume, | ||
int | dims | ||
) |
Definition at line 474 of file SupercellEnumerator.hh.
const UnitType & CASM::SupercellEnumerator< UnitType >::unit | ( | ) | const |
Access the unit the is being made into supercells.
Definition at line 590 of file SupercellEnumerator.hh.
HermiteCounter::value_type CASM::SupercellIterator< UnitType >::volume | ( | ) | const |
current volume
Definition at line 536 of file SupercellEnumerator.hh.