1 #ifndef SIMPLESTRUCTURETOOLS_HH
2 #define SIMPLESTRUCTURETOOLS_HH
10 #include "casm/external/Eigen/Dense"
22 namespace SimpleStructureTools {
27 class SimpleStructure;
33 SimpleStructure
const &_sstruc);
38 Eigen::Ref<const Eigen::Matrix3i>
const &_T,
39 SimpleStructure
const &_sstruc);
48 SimpleStructure
const &sstruc, BasicStructure
const &_prim);
54 SimpleStructure
const &sstruc, BasicStructure
const &_prim);
57 void _atomize(SimpleStructure &_sstruc,
58 Eigen::Ref<const Eigen::VectorXi>
const &_mol_occ,
59 BasicStructure
const &_reference);
70 SimpleStructure
const &_sstruc, std::vector<DoFKey>
const &_all_dofs,
72 std::vector<std::vector<Molecule>> _allowed_occupants = {});
76 const std::vector<Eigen::PermutationMatrix<Eigen::Dynamic, Eigen::Dynamic,
77 Index>> &permute_group);
std::vector< Index > superstructure_basis_idx(Eigen::Ref< const Eigen::Matrix3i > const &_T, SimpleStructure const &_sstruc)
Constructs a vector containing the basis index of the ith site in the supercell.
SimpleStructure make_simple_structure(BasicStructure const &_struc)
Construct from decorated structure.
std::vector< std::set< Index > > mol_site_compatibility(SimpleStructure const &sstruc, BasicStructure const &_prim)
Determine which sites of a BasicStructure can host each molecule of a SimpleStructure result[i] is se...
void _atomize(SimpleStructure &_sstruc, Eigen::Ref< const Eigen::VectorXi > const &_mol_occ, BasicStructure const &_reference)
use information in _reference to initialize atom_info from mol_info
std::vector< Eigen::MatrixXd > generate_invariant_shuffle_modes(const std::vector< xtal::SymOp > &factor_group, const std::vector< Eigen::PermutationMatrix< Eigen::Dynamic, Eigen::Dynamic, Index >> &permute_group)
BasicStructure make_basic_structure(SimpleStructure const &_sstruc, std::vector< DoFKey > const &_all_dofs, SimpleStructureTools::SpeciesMode mode, std::vector< std::vector< Molecule >> _allowed_occupants={})
Construct BasicStructure from SimpleStructure.
std::vector< std::set< Index > > atom_site_compatibility(SimpleStructure const &sstruc, BasicStructure const &_prim)
Determine which sites of a BasicStructure can host each atom of a SimpleStructure result[i] is set of...
BasicStructure make_superstructure(const BasicStructure &tiling_unit, const Eigen::Matrix< IntegralType, 3, 3, Options > &transformation_matrix)
INDEX_TYPE Index
For long integer indexing: