CASM  1.1.0
A Clusters Approach to Statistical Mechanics
ScelDatabaseTools.hh
Go to the documentation of this file.
1 #ifndef CASM_ScelDatabaseTools
2 #define CASM_ScelDatabaseTools
3 
5 
6 namespace CASM {
7 
8 namespace DB {
9 
10 // Note: Supercell is being transitioned to no longer have a `PrimClex const *`.
11 // While this is occuring there are overloads of these functions with and
12 // without a `PrimClex const *`. Currently, the `PrimClex const *` is required
13 // for Configuration calculated properties, but not for enumeration without
14 // calculated properties.
15 
16 // /// Return const reference to canonical equivalent supercell in the supercell
17 // database Supercell const &canonical_supercell(
18 // Supercell const &supercell,
19 // PrimClex const *primclex,
20 // Database<Supercell> &supercell_db);
21 //
22 // /// Make canonical supercell and insert into supercell database
23 // std::pair<Database<Supercell>::iterator, bool> make_canonical_and_insert(
24 // PrimClex const *primclex,
25 // Lattice const &super_lattice,
26 // Database<Supercell> &supercell_db);
27 //
28 // /// Make canonical supercell and insert into supercell database
29 // std::pair<Database<Supercell>::iterator, bool> make_canonical_and_insert(
30 // PrimClex const *primclex,
31 // Eigen::Matrix3l const &transformation_matrix_to_super,
32 // Database<Supercell> &supercell_db);
33 
36 Supercell const &canonical_supercell(Supercell const &supercell,
37  Database<Supercell> &supercell_db);
38 
40 std::pair<Database<Supercell>::iterator, bool> make_canonical_and_insert(
41  std::shared_ptr<Structure const> const &shared_prim,
42  Lattice const &super_lattice, Database<Supercell> &supercell_db);
43 
45 std::pair<Database<Supercell>::iterator, bool> make_canonical_and_insert(
46  std::shared_ptr<Structure const> const &shared_prim,
48  Database<Supercell> &supercell_db);
49 
51 std::pair<Database<Supercell>::iterator, bool> make_canonical_and_insert(
52  Supercell const &supercell, Database<Supercell> &supercell_db);
53 
59 template <typename EnumeratorType>
60 std::pair<Database<Supercell>::iterator, bool> make_canonical_and_insert(
61  EnumeratorType const &enumerator, Supercell const &supercell,
62  Database<Supercell> &supercell_db);
63 } // namespace DB
64 } // namespace CASM
65 
66 #endif
std::shared_ptr< Structure const > shared_prim
Supercell const & canonical_supercell(Supercell const &supercell, Database< Supercell > &supercell_db)
ConfigInsertResult make_canonical_and_insert(Configuration const &configuration, Database< Supercell > &supercell_db, Database< Configuration > &configuration_db, bool primitive_only)
Insert this configuration (in primitive & canonical form) in the database.
MatrixXiSupercellSymInfoFormatter transformation_matrix_to_super()
Main CASM namespace.
Definition: APICommand.hh:8
Matrix< long int, 3, 3 > Matrix3l
Definition: eigen.hh:12