1 #ifndef CASM_LatticeIsEquivalent
2 #define CASM_LatticeIsEquivalent
6 #include "casm/external/Eigen/Dense"
49 template <
typename ExternSymOp>
58 bool operator()(
const Eigen::Matrix3i &frac_op)
const;
Checks if operations are point group operations.
bool _check(const Eigen::Matrix3d &tfrac_op) const
Find the effect of applying symmetry to the lattice vectors.
bool operator()(const ExternSymOp &cart_op) const
Eigen::Matrix3d cart_op() const
const Eigen::Matrix3d & lat_column_mat() const
IsPointGroupOp(const Lattice &lat)
Eigen::Matrix3d m_cart_op
bool operator()(const SymOp &cart_op) const
Checks if ref_lat = cart_op*ref_lat*transf_mat(), for any transf_mat()
double map_error() const
Return the mapping error, calculated after performing an equivalence check.
const Eigen::Matrix3d & inv_lat_column_mat() const
Eigen::Matrix3d U() const
Returns U found for last check.
LatticeIsEquivalent(const Lattice &_lat)
bool operator()(const Lattice &other, double tol=-1.) const
Checks if lat = other*U, with unimodular U.
bool is_equivalent(const Lattice &ref_lattice, const Lattice &other)
Check if ref_lattice = other*U, where U is unimodular.