CASM  1.1.0
A Clusters Approach to Statistical Mechanics
HamiltonianModules.hh
Go to the documentation of this file.
1 #ifndef CASM_HamiltonianModules
2 #define CASM_HamiltonianModules
3 
4 #include <map>
5 #include <memory>
6 
11 
12 namespace CASM {
13 template <typename T>
14 class ParsingDictionary;
15 
16 class RuntimeLibrary;
17 class ProjectSettings;
18 
19 class SymRepBuilderInterface;
20 class AnisoValTraits;
21 
22 namespace DoFType {
23 class Traits;
24 }
25 
28  public:
32 
33  HamiltonianModules(ProjectSettings const *set = nullptr);
34 
36 
37  DoFDictionary const &dof_dict() const;
38 
40 
41  AnisoValDictionary const &aniso_val_dict() const;
42 
44 
46 
47  private:
49 
51 
53 
54  std::map<std::string, std::shared_ptr<RuntimeLibrary> > m_dof_lib;
55 
56  std::map<std::string, std::shared_ptr<RuntimeLibrary> > m_symrep_builder_lib;
57 };
58 
59 template <>
62 
64 template <typename DoFDictInserter, typename RuntimeLibInserter>
65 std::pair<DoFDictInserter, RuntimeLibInserter> load_dof_plugins(
66  const ProjectSettings &set, DoFDictInserter dict_it,
67  RuntimeLibInserter lib_it);
68 
70 template <typename SymRepBuilderDictInserter, typename RuntimeLibInserter>
71 std::pair<SymRepBuilderDictInserter, RuntimeLibInserter>
73  SymRepBuilderDictInserter dict_it,
74  RuntimeLibInserter lib_it);
75 
76 } // namespace CASM
77 
78 #endif
Collection of all the traits specific to a DoF type.
Definition: DoFTraits.hh:59
notstd::cloneable_ptr< AnisoValDictionary > m_aniso_val_dict
HamiltonianModules(ProjectSettings const *set=nullptr)
notstd::cloneable_ptr< SymRepBuilderDictionary > m_symrep_builder_dict
notstd::cloneable_ptr< DoFDictionary > m_dof_dict
SymRepBuilderDictionary & symrep_builder_dict()
AnisoValDictionary & aniso_val_dict()
std::map< std::string, std::shared_ptr< RuntimeLibrary > > m_dof_lib
std::map< std::string, std::shared_ptr< RuntimeLibrary > > m_symrep_builder_lib
Parsing dictionary for obtaining the correct MoleculeAttribute given a name.
Base class for cloning.
A 'cloneable_ptr' can be used in place of 'unique_ptr'.
#define CLONEABLE_NEEDS_DESTRUCTOR_DEF(T)
Main CASM namespace.
Definition: APICommand.hh:8
std::pair< SymRepBuilderDictInserter, RuntimeLibInserter > load_symrep_builder_plugins(const ProjectSettings &set, SymRepBuilderDictInserter dict_it, RuntimeLibInserter lib_it)
Load SymRepBuilder plugins from a CASM project.
std::pair< DoFDictInserter, RuntimeLibInserter > load_dof_plugins(const ProjectSettings &set, DoFDictInserter dict_it, RuntimeLibInserter lib_it)
Load DoF plugins from a CASM project.
HamiltonianModules::SymRepBuilderDictionary make_parsing_dictionary< SymRepBuilderInterface >()
ProjectSettings & set
Definition: settings.cc:137