1 #ifndef BASICSTRUCTURETOOLS_HH
2 #define BASICSTRUCTURETOOLS_HH
8 #include "casm/external/Eigen/Core"
31 BasicStructure
make_primitive(
const BasicStructure &non_primitive_struc,
37 const SymOp &op,
const Lattice &lat);
50 std::vector<Eigen::PermutationMatrix<Eigen::Dynamic, Eigen::Dynamic, Index>>
56 const xtal::BasicStructure &struc,
const std::vector<SymOp> &
factor_group);
60 const xtal::BasicStructure &struc);
70 const std::vector<SymOp> &enforced_group);
75 template <
typename IntegralType,
int Options = 0>
77 const BasicStructure &tiling_unit,
78 const Eigen::Matrix<IntegralType, 3, 3, Options> &transformation_matrix);
ConfigIO::GenericConfigFormatter< jsonParser > structure()
std::set< std::set< Index > > make_asymmetric_unit(const xtal::BasicStructure &struc, const std::vector< SymOp > &factor_group)
Return indices of equivalent basis sites.
BasicStructure symmetrize(const BasicStructure &structure, const std::vector< SymOp > &enforced_group)
std::vector< SymOp > make_factor_group(const BasicStructure &struc, double tol=TOL)
std::vector< Eigen::PermutationMatrix< Eigen::Dynamic, Eigen::Dynamic, Index > > make_permutation_representation(const xtal::BasicStructure &struc, const std::vector< SymOp > &factor_group)
Create the permutation group of a structure.
void sort_factor_group(std::vector< SymOp > &factor_group, const Lattice &lat)
Sort SymOp in the SymGroup.
std::pair< double, Eigen::Vector3d > calc_rotation_angle_and_axis(const SymOp &op, const Lattice &lat)
Calculates the rotation angle and axis of a symmetry operation. This function is almost exactly ident...
BasicStructure make_primitive(const BasicStructure &non_primitive_struc, double tol=TOL)
Returns the smallest possible tiling unit of the given structure.
bool is_primitive(const BasicStructure &struc, double tol=TOL)
Index find_index(const std::vector< Site > &basis, const Site &test_site, double tol)
BasicStructure make_superstructure(const BasicStructure &tiling_unit, const Eigen::Matrix< IntegralType, 3, 3, Options > &transformation_matrix)
INDEX_TYPE Index
For long integer indexing: