1 #ifndef SYMBASISPERMUTE_HH
2 #define SYMBASISPERMUTE_HH
15 using xtal::UnitCellCoord;
67 std::vector<UnitCellCoord>
const &_ucc_permute);
SymBasisPermute describes how a symmetry operation permutes atoms in a basis.
const Eigen::Matrix3l & matrix() const
Get underlying integer transformation amtrix.
Eigen::Matrix3l m_point_mat
Transform fractional coordinates, integer version of SymOp::matrix()
SymBasisPermute(SymOp const &_op, Lattice const &_lat, std::vector< UnitCellCoord > const &_ucc_permute)
Construct SymBasisPermute.
const std::vector< UnitCellCoord > & data() const
Get underlying data (data()[b] is the result of transforming (b,0,0,0))
UnitCellCoord operator[](Index b) const
Return UnitCellCoord that (b,0,0,0) transforms to.
SymOpRepresentation * copy() const override
Return pointer to a copy of this SymBasisPermute.
UnitCellCoord at(Index b) const
Return UnitCellCoord that (b,0,0,0) transforms to.
SymBasisPermute const * ucc_permutation() const override
Get this from a SymOp.
size_type size() const
Return number of basis sites.
std::vector< UnitCellCoord > m_ucc_permute
SymOp is the Coordinate representation of a symmetry operation it keeps fraction (FRAC) and Cartesian...
SymOpRepresentation is the base class for anything describes a symmetry operation.
INDEX_TYPE Index
For long integer indexing:
Matrix< long int, 3, 3 > Matrix3l