Scine::Swoose  2.1.0
This is the SCINE module Swoose.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Pages
Parametrizer.h
Go to the documentation of this file.
1 
8 #ifndef MMPARAMETRIZATION_PARAMETRIZER_H
9 #define MMPARAMETRIZATION_PARAMETRIZER_H
10 
11 #include "ParametrizationData.h"
13 
14 namespace Scine {
15 
16 namespace Utils {
17 class Settings;
18 } // namespace Utils
19 
20 namespace MMParametrization {
21 class ConnectivityGenerator;
22 class ReparametrizationHelper;
23 
29  public:
30  static constexpr const char* model = "SFAM_parametrizer";
34  Parametrizer();
39  void parametrize(Utils::AtomCollection structure) override;
43  Utils::Settings& settings() override;
47  const Utils::Settings& settings() const override;
51  std::string name() const override;
52 
53  private:
54  /*
55  * @brief Performs some additional settings checks.
56  */
57  void performAdditionalSettingsChecks();
58  /*
59  * @brief Performs the initial set-up and fragmentation step.
60  */
61  void performInitialSetup(Utils::AtomCollection structure);
62  /*
63  * @brief Performs reference data generation step.
64  */
65  void generateReferenceData();
66  /*
67  * @brief Generates the topology and sets up the parameter optimization.
68  */
69  void setupParameterOptimization();
70  /*
71  * @brief Optimizes the parameters.
72  */
73  void optimizeParameters();
74  /*
75  * @brief Writes parameters and connectivity to files.
76  */
77  void writeParametersAndConnectivity();
78  /*
79  * @brief Generates the MM topology.
80  */
81  void generateTopology();
82  /*
83  * @brief Generates the atom types.
84  */
85  void generateAtomTypes();
86  /*
87  * @brief Sets the default settings values for method and basis set depending on the selected program.
88  */
89  void setDefaultsForMethodAndBasisSetSettings();
90  /*
91  * @brief Sets the protonation state of all pH sensitive sites after evaluation of the pKa.
92  */
93  void determineProtonationStateOfTitrableSites();
94  // This object holds all the data used in the MM parametrization algorithm.
95  ParametrizationData data_;
96  // This object holds all the data used for titration.
97  TitrationResults titrationResults_;
98  // The settings.
99  std::shared_ptr<Utils::Settings> settings_;
100  // The connectivity generator class.
101  std::shared_ptr<ConnectivityGenerator> connectivityGenerator_;
102  // The re-parametrization helper class.
103  std::shared_ptr<ReparametrizationHelper> reparametrizationHelper_;
104 };
105 
106 } // namespace MMParametrization
107 } // namespace Scine
108 
109 #endif // MMPARAMETRIZATION_PARAMETRIZER_H
Utils::Settings & settings() override
Accessor for the settings.
Definition: Parametrizer.cpp:287
This class manages the parametrization of an MM model from quantum-chemical reference data...
Definition: Parametrizer.h:28
Definition: ParametrizationData.h:146
void parametrize(Utils::AtomCollection structure) override
Main function of this class. It generates the MM parameters.
Definition: Parametrizer.cpp:42
Parametrizer()
Constructor.
Definition: Parametrizer.cpp:32
This struct holds all objects used inside the MM parametrization algorithm.
Definition: ParametrizationData.h:29
std::string name() const override
Getter for the name of the Parametrizer.
Definition: Parametrizer.cpp:37