Scine::Swoose  1.0.0
This is the SCINE module Swoose.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Pages
MockQmCalculator.h
Go to the documentation of this file.
1 
8 #ifndef SWOOSE_MOCK_QMCALCULATOR_H
9 #define SWOOSE_MOCK_QMCALCULATOR_H
10 
15 #include <Utils/Settings.h>
18 
19 namespace Scine {
20 namespace Swoose {
21 
22 namespace SettingsNames {
23 static constexpr const char* mockIntSettingKey = "mock_int_setting";
24 static constexpr const char* mockStringSettingKey = "mock_string_setting";
25 } // namespace SettingsNames
26 
29  public:
30  MockQmCalculatorSettings() : Utils::Settings("MockQmCalculatorSettings") {
31  Utils::UniversalSettings::IntDescriptor mockIntSetting("Mock integer setting.");
32  mockIntSetting.setDefaultValue(42);
33  _fields.push_back(SettingsNames::mockIntSettingKey, std::move(mockIntSetting));
34 
35  Utils::UniversalSettings::StringDescriptor mockStringSetting("Mock string setting.");
36  mockStringSetting.setDefaultValue("test");
37  _fields.push_back(SettingsNames::mockStringSettingKey, std::move(mockStringSetting));
38 
39  Utils::UniversalSettings::IntDescriptor spinMultiplicity("Spin multiplicity.");
40  spinMultiplicity.setDefaultValue(1);
41  _fields.push_back(Utils::SettingsNames::spinMultiplicity, std::move(spinMultiplicity));
42 
43  Utils::UniversalSettings::IntDescriptor molecularCharge("Molecular charge.");
44  molecularCharge.setDefaultValue(0);
45  _fields.push_back(Utils::SettingsNames::molecularCharge, std::move(molecularCharge));
46 
47  resetToDefaults();
48  }
49 };
50 
52 class MockQmCalculator : public Utils::CloneInterface<MockQmCalculator, Core::Calculator> {
53  public:
54  static constexpr const char* model = "MOCK-QM";
58  ~MockQmCalculator() final = default;
65  void setStructure(const Utils::AtomCollection& structure) override;
70  std::unique_ptr<Utils::AtomCollection> getStructure() const override;
75  void modifyPositions(Utils::PositionCollection newPositions) override;
79  const Utils::PositionCollection& getPositions() const override;
85  void setRequiredProperties(const Utils::PropertyList& requiredProperties) override;
95  Utils::PropertyList possibleProperties() const override;
104  const Utils::Results& calculate(std::string description) override;
109  std::string name() const override;
114  Utils::Settings& settings() override;
119  const Utils::Settings& settings() const override;
124  std::shared_ptr<Core::State> getState() const final;
129  void loadState(std::shared_ptr<Core::State> state) final;
134  Utils::Results& results() override;
139  const Utils::Results& results() const override;
143  std::string getFileNameBase() const;
147  std::string getCalculationDirectory() const;
153  bool supportsMethodFamily(const std::string& methodFamily) const override;
154 
155  private:
156  /*
157  * @brief Apply settings.
158  */
159  void applySettings();
160  // The settings.
161  std::unique_ptr<Utils::Settings> settings_;
162  // The results.
163  Utils::Results results_;
164  // The required properties.
165  Utils::PropertyList requiredProperties_;
166  // The molecular structure.
167  Utils::AtomCollection structure_;
168  // An integer setting.
169  int intSetting_;
170  // A string setting.
171  std::string stringSetting_;
172 };
173 
174 } // namespace Swoose
175 } // namespace Scine
176 
177 #endif // SWOOSE_MOCK_QMCALCULATOR_H
Utils::PropertyList possibleProperties() const override
Returns the list of the possible properties to calculate analytically. By some method analytical hess...
Definition: MockQmCalculator.cpp:71
const Utils::PositionCollection & getPositions() const override
Getter for the coordinates of the underlying AtomCollection.
Definition: MockQmCalculator.cpp:59
Mock class for a QM calculator to use in QM/MM tests.
Definition: MockQmCalculator.h:52
std::unique_ptr< Utils::AtomCollection > getStructure() const override
Gets the molecular structure as a std::unique_ptr&lt;AtomCollection&gt;.
Definition: MockQmCalculator.cpp:51
Utils::Results & results() override
Accessor for the saved instance of Results.
Definition: MockQmCalculator.cpp:117
bool supportsMethodFamily(const std::string &methodFamily) const override
Whether the calculator supports a method family.
Definition: MockQmCalculator.cpp:17
Utils::Settings & settings() override
Accessor for the settings.
Definition: MockQmCalculator.cpp:101
const Utils::Results & calculate(std::string description) override
The main function running calculations (dummy).
Definition: MockQmCalculator.cpp:75
std::shared_ptr< Core::State > getState() const final
Implements Core::StateHandableObject::getState().
Definition: MockQmCalculator.cpp:105
~MockQmCalculator() final=default
Default Destructor.
MockQmCalculator()
Default Constructor.
Definition: MockQmCalculator.cpp:21
std::string getCalculationDirectory() const
Getter for the calculation directory.
Mocks the settings for the mock QM calculator.
Definition: MockQmCalculator.h:28
void setRequiredProperties(const Utils::PropertyList &requiredProperties) override
Sets the properties to calculate.
Definition: MockQmCalculator.cpp:63
std::string name() const override
Getter for the name of the Calculator.
Definition: MockQmCalculator.cpp:13
std::string getFileNameBase() const
Getter for the file name base string.
void loadState(std::shared_ptr< Core::State > state) final
Implements Core::StateHandableObject::loadState().
Definition: MockQmCalculator.cpp:109
void setStructure(const Utils::AtomCollection &structure) override
Changes the molecular structure to calculate.
Definition: MockQmCalculator.cpp:46
void modifyPositions(Utils::PositionCollection newPositions) override
Allows to modify the positions of the underlying AtomCollection.
Definition: MockQmCalculator.cpp:55
Utils::PropertyList getRequiredProperties() const override
Getter for the properties to calculate.
Definition: MockQmCalculator.cpp:67