CASM
AClustersApproachtoStatisticalMechanics
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules
Conversions.hh
Go to the documentation of this file.
1 #ifndef CASM_Monte_Conversions_HH
2 #define CASM_Monte_Conversions_HH
3 
4 #include <vector>
5 #include <set>
7 
8 namespace CASM {
9 
10  class PrimClex;
11  class Supercell;
12  class Configuration;
13  class UnitCell;
14  class UnitCellCoord;
15  class Molecule;
16 
17  namespace Monte {
18 
25  class Conversions {
26 
27  public:
28 
30 
31  Conversions(const Configuration &unit_config, const Supercell &mc_scel);
32 
33 
34  Index l_to_b(Index l) const;
35  UnitCell l_to_ijk(Index l) const;
36  UnitCellCoord l_to_bijk(Index l) const;
37  Index l_to_unitl(Index l) const;
38  Index l_to_asym(Index l) const;
39 
40  Index bijk_to_l(const UnitCellCoord &bijk) const;
41  Index bijk_to_unitl(const UnitCellCoord &bijk) const;
42  Index bijk_to_asym(const UnitCellCoord &bijk) const;
43 
44  Index unitl_to_b(Index unitl) const;
45  UnitCellCoord unitl_to_bijk(Index unitl) const;
46  Index unitl_to_asym(Index unitl) const;
47 
48  Index asym_size() const;
49  const std::set<Index> &asym_to_b(Index asym) const;
50  const std::set<Index> &asym_to_unitl(Index asym) const;
51 
52  const Supercell &unit_scel() const;
53  const Supercell &mc_scel() const;
54 
55  Index occ_size(Index asym) const;
57  Index occ_index(Index asym, Index species_index) const;
58  bool species_allowed(Index asym, Index species_index) const;
59 
60  Index species_size() const;
61  Index species_index(std::string species_name) const;
62  const Molecule &species_to_mol(Index species_index) const;
63  const std::string &species_name(Index species_index) const;
64  Index components_size(Index species_index) const;
65 
66  private:
67 
70  std::vector<Molecule> m_struc_mol;
71  std::vector<std::string> m_struc_molname;
72 
74  std::vector<Index> m_unitl_to_asym;
75  std::vector<std::set<Index> > m_asym_to_unitl;
76  std::vector<std::set<Index> > m_asym_to_b;
77 
79  std::vector<std::vector<Index> > m_occ_to_species;
80 
82  std::vector<std::vector<Index> > m_species_to_occ;
83  };
84  }
85 }
86 
87 #endif
Index asym_size() const
Definition: Conversions.cc:107
const std::set< Index > & asym_to_unitl(Index asym) const
Definition: Conversions.cc:113
Index unitl_to_asym(Index unitl) const
Definition: Conversions.cc:103
Index l_to_unitl(Index l) const
Definition: Conversions.cc:80
std::vector< std::string > m_struc_molname
Definition: Conversions.hh:71
bool species_allowed(Index asym, Index species_index) const
Definition: Conversions.cc:134
Index bijk_to_unitl(const UnitCellCoord &bijk) const
Definition: Conversions.cc:90
const std::string & species_name(Index species_index) const
Definition: Conversions.cc:147
Unit Cell Coordinates.
Index species_size() const
Definition: Conversions.cc:138
std::vector< std::vector< Index > > m_species_to_occ
m_species_to_occ[asym][species_index] -> occ_index
Definition: Conversions.hh:82
const Supercell * m_mc_scel
Definition: Conversions.hh:69
Main CASM namespace.
Definition: complete.cpp:8
Represents a supercell of the primitive parent crystal structure.
Definition: Supercell.hh:37
const Supercell * m_unit_scel
Definition: Conversions.hh:68
Unit Cell Indices.
Index l_to_asym(Index l) const
Definition: Conversions.cc:83
Index bijk_to_l(const UnitCellCoord &bijk) const
Definition: Conversions.cc:87
const Supercell & mc_scel() const
Definition: Conversions.cc:120
std::vector< Molecule > m_struc_mol
Definition: Conversions.hh:70
EigenIndex Index
For long integer indexing:
std::vector< Index > m_unitl_to_asym
Definition: Conversions.hh:74
UnitCellCoord l_to_bijk(Index l) const
Definition: Conversions.cc:77
const std::set< Index > & asym_to_b(Index asym) const
Definition: Conversions.cc:110
Index l_to_b(Index l) const
Definition: Conversions.cc:71
const Molecule & species_to_mol(Index species_index) const
Definition: Conversions.cc:144
UnitCellCoord unitl_to_bijk(Index unitl) const
Definition: Conversions.cc:100
Index occ_index(Index asym, Index species_index) const
Definition: Conversions.cc:130
std::vector< std::set< Index > > m_asym_to_b
Definition: Conversions.hh:76
Conversions(const Supercell &mc_scel)
Definition: Conversions.cc:19
Index components_size(Index species_index) const
Definition: Conversions.cc:150
Index bijk_to_asym(const UnitCellCoord &bijk) const
Definition: Conversions.cc:93
Index species_index(Index asym, Index occ_index) const
Definition: Conversions.cc:127
std::vector< std::set< Index > > m_asym_to_unitl
Definition: Conversions.hh:75
std::vector< std::vector< Index > > m_occ_to_species
m_occ_to_species[asym][occ_index] -> species_index
Definition: Conversions.hh:79
Index unitl_to_b(Index unitl) const
Definition: Conversions.cc:97
const Supercell & unit_scel() const
Definition: Conversions.cc:117
Index occ_size(Index asym) const
Definition: Conversions.cc:124
A Configuration represents the values of all degrees of freedom in a Supercell.
UnitCell l_to_ijk(Index l) const
Definition: Conversions.cc:74