88 Eigen::Matrix<long, 3, 1>
m_S;
104 const Eigen::Ref<const PrimGrid::matrix_type> &U,
105 const Eigen::Ref<const PrimGrid::matrix_type> &Smat,
115 const matrix_type &
invU()
const {
119 const Eigen::DiagonalWrapper<const PrimGrid::vector_type>
matrixS()
const;
129 Index find_cart(
const Eigen::Ref<const Eigen::Vector3d> &_cart_coord)
const;
150 if(m_trans_permutations.
size() > 0) {
151 throw std::runtime_error(
"***CASM has calculated the wrong number of translation permutations for a PrimGrid. This should never happen. Something is very wrong.\n");
Eigen::Matrix< long, 3, 1 > vector_type
long int m_N_vol
Number of primgrid lattice points in the supercell.
Type-safe ID object for communicating and accessing Symmetry representation info. ...
long int m_NB
Number of basis atoms in the primitive cell.
matrix_type m_U
The Smith Normal Form decomposition is: trans_mat = U*S*V, with det(U)=det(V)=1; S is diagonal...
UnitCellCoord to_canonical(const UnitCellCoord &bijk) const
Eigen::Matrix< long, 3, 1 > m_S
Lattice const * m_lat[2]
m_lat[PRIM] is primitive lattice, lat[SCEL] is super lattice
const matrix_type & matrixU() const
const Eigen::DiagonalWrapper< const PrimGrid::vector_type > matrixS() const
Index find(const Coordinate &_coord) const
Array< Permutation > m_trans_permutations
Permutations that describe how translation permutes sites of the supercell.
SymGroup is a collection of symmetry operations that satisfy the group property The symmetry operatio...
SymOp is the Coordinate representation of a symmetry operation it keeps fraction (FRAC) and Cartesian...
Represents cartesian and fractional coordinates.
SymGroupRepID make_permutation_representation(const SymGroup &group, SymGroupRepID basis_permute_rep) const
UnitCellCoord get_within(const UnitCellCoord &_uccoord) const
const matrix_type & invU() const
EigenIndex Index
For long integer indexing:
SymOp sym_op(Index l) const
ReturnArray< Permutation > make_translation_permutations(Index NB) const
Eigen::Matrix< long, 3, 3 > matrix_type
const Array< Permutation > & translation_permutations() const
const access to m_trans_permutations. Generates permutations if they don't already exist...
PrimGrid(const Lattice &p_lat, const Lattice &s_lat, Index NB=1)
UnitCellCoord uccoord(Index i) const
Coordinate coord(Index l, CELL_TYPE lat_mode) const
UnitCell unitcell(Index i) const
const Permutation & translation_permutation(Index i) const
Index find_cart(const Eigen::Ref< const Eigen::Vector3d > &_cart_coord) const
Basic std::vector like container (deprecated)
UnitCellCoord from_canonical(const UnitCellCoord &bmnp) const