15 Configuration default_prim_config(
const PrimClex &
primclex) {
16 const Supercell &scel = *
primclex.db<Supercell>()
19 Configuration res(scel);
20 res.init_occupation();
30 : m_unit_scel(&unit_config.supercell()),
38 std::vector<PermuteIterator> fg = unit_config.
factor_group();
39 for (
Index unitl = 0; unitl < unit_Nsites; ++unitl) {
41 for (
auto it = fg.begin(); it != fg.end(); ++it) {
53 for (
Index unitl = 0; unitl < unit_Nsites; ++unitl) {
62 auto index_converter =
66 auto index_converter_inv =
std::vector< PermuteIterator > factor_group() const
Returns the subgroup of the Supercell factor group that leaves the Configuration unchanged.
const Supercell & unit_scel() const
Index bijk_to_unitl(const UnitCellCoord &bijk) const
const std::set< Index > & asym_to_b(Index asym) const
UnitCell l_to_ijk(Index l) const
std::vector< std::set< Index > > m_asym_to_unitl
std::vector< std::set< Index > > m_asym_to_b
Conversions(const Supercell &mc_scel)
std::vector< std::vector< Index > > m_species_to_occ
m_species_to_occ[asym][species_index] -> occ_index
Index species_index(Index asym, Index occ_index) const
const Supercell * m_mc_scel
const std::set< Index > & asym_to_unitl(Index asym) const
Index l_to_b(Index l) const
Index unitl_to_asym(Index unitl) const
Index occ_size(Index asym) const
const Molecule & species_to_mol(Index species_index) const
std::vector< Molecule > m_struc_mol
const Supercell & mc_scel() const
Index occ_index(Index asym, Index species_index) const
std::vector< std::string > m_struc_molname
Index l_to_asym(Index l) const
UnitCellCoord l_to_bijk(Index l) const
const Supercell * m_unit_scel
Index bijk_to_l(const UnitCellCoord &bijk) const
Index unitl_to_b(Index unitl) const
std::vector< std::vector< Index > > m_occ_to_species
m_occ_to_species[asym][occ_index] -> species_index
UnitCellCoord unitl_to_bijk(Index unitl) const
bool species_allowed(Index asym, Index species_index) const
Index l_to_unitl(Index l) const
const std::string & species_name(Index species_index) const
Index bijk_to_asym(const UnitCellCoord &bijk) const
std::vector< Index > m_unitl_to_asym
Index components_size(Index species_index) const
Index species_size() const
Represents a supercell of the primitive parent crystal structure.
Index sublat(Index linear_index) const
Return the sublattice index for a linear index.
Index linear_index(const Coordinate &coord, double tol=TOL) const
Given a Coordinate and tolerance, return linear index into Configuration.
UnitCellCoord uccoord(Index linear_index) const
Return the integral coordinates corresponding to a linear index.
const Structure & prim() const
Class representing a Molecule.
const UnitCell & unitcell() const
Index size() const
Number of atoms contained Molecule.
std::vector< Molecule > struc_molecule(BasicStructure const &_struc)
Returns an Array of each possible Molecule in this Structure.
std::vector< std::string > struc_molecule_name(BasicStructure const &_struc)
Returns an Array of each possible Molecule in this Structure.
IdentitySymRepBuilder Identity()
Index find_index(Iterator begin, Iterator end, const T &value)
Equivalent to std::distance(begin, std::find(begin, end, value))
std::vector< std::vector< Index > > make_index_converter(const Structure &struc, std::vector< xtal::Molecule > mol_list)
std::vector< std::vector< Index > > make_index_converter_inverse(const Structure &struc, std::vector< std::string > mol_name_list)
INDEX_TYPE Index
For long integer indexing: