11 Configuration default_prim_config(PrimClex &
primclex) {
12 auto &scel = primclex.get_supercell(primclex.add_supercell(primclex.get_prim().lattice()));
13 Configuration res(scel);
14 res.init_occupation();
20 Conversions(default_prim_config(mc_scel.get_primclex()), mc_scel) {}
24 m_unit_scel(&unit_config.get_supercell()),
26 m_struc_mol(m_mc_scel->get_prim().get_struc_molecule()),
27 m_struc_molname(m_mc_scel->get_prim().get_struc_molecule_name()) {
33 std::vector<PermuteIterator> fg = unit_config.
factor_group();
34 for(
Index unitl = 0; unitl < unit_Nsites; ++unitl) {
36 for(
auto it = fg.begin(); it != fg.end(); ++it) {
48 for(
Index unitl = 0; unitl < unit_Nsites; ++unitl) {
const PrimGrid & prim_grid() const
const std::set< Index > & asym_to_unitl(Index asym) const
Index unitl_to_asym(Index unitl) const
Index l_to_unitl(Index l) const
std::vector< std::string > m_struc_molname
bool species_allowed(Index asym, Index species_index) const
Index bijk_to_unitl(const UnitCellCoord &bijk) const
const Structure & get_prim() const
const std::string & species_name(Index species_index) const
Index find_index(Iterator begin, Iterator end, const T &value)
Equivalent to std::distance(begin, std::find(begin, end, value))
Index species_size() const
std::vector< std::vector< Index > > m_species_to_occ
m_species_to_occ[asym][species_index] -> occ_index
const Supercell * m_mc_scel
Represents a supercell of the primitive parent crystal structure.
const Supercell * m_unit_scel
Index l_to_asym(Index l) const
Index bijk_to_l(const UnitCellCoord &bijk) const
const Supercell & mc_scel() const
std::vector< Molecule > m_struc_mol
EigenIndex Index
For long integer indexing:
Index volume() const
Return number of primitive cells that fit inside of *this.
std::vector< Index > m_unitl_to_asym
UnitCellCoord l_to_bijk(Index l) const
UnitCellCoord uccoord(Index i) const
const std::set< Index > & asym_to_b(Index asym) const
Index l_to_b(Index l) const
std::vector< std::vector< Index > > get_index_converter(const Structure &struc, std::vector< Molecule > mol_list)
Helper Functions.
const Molecule & species_to_mol(Index species_index) const
UnitCellCoord unitl_to_bijk(Index unitl) const
Index occ_index(Index asym, Index species_index) const
Index find(const UnitCellCoord &bijk) const
std::vector< std::set< Index > > m_asym_to_b
std::vector< PermuteIterator > factor_group() const
Returns the subgroup of the Supercell factor group that leaves the Configuration unchanged.
std::vector< std::vector< Index > > get_index_converter_inverse(const Structure &struc, std::vector< std::string > mol_name_list)
Conversions(const Supercell &mc_scel)
Index components_size(Index species_index) const
Index bijk_to_asym(const UnitCellCoord &bijk) const
Index species_index(Index asym, Index occ_index) const
std::vector< std::set< Index > > m_asym_to_unitl
std::vector< std::vector< Index > > m_occ_to_species
m_occ_to_species[asym][occ_index] -> species_index
UnitCell unitcell(Index i) const
Index get_b(Index i) const
Index unitl_to_b(Index unitl) const
const Supercell & unit_scel() const
Index occ_size(Index asym) const
A Configuration represents the values of all degrees of freedom in a Supercell.
UnitCell l_to_ijk(Index l) const