Loading...
Searching...
No Matches
BasinHoppingSaddleSearch.h
Go to the documentation of this file.
1/*
2** This file is part of eOn.
3**
4** SPDX-License-Identifier: BSD-3-Clause
5**
6** Copyright (c) 2010--present, eOn Development Team
7** All rights reserved.
8**
9** Repo:
10** https://github.com/TheochemUI/eOn
11*/
12#pragma once
13#include "Eigen.h"
14#include "EonLogger.h"
15#include "Matter.h"
16#include "MinModeSaddleSearch.h"
17#include "SaddleSearchMethod.h"
18#include <vector>
19
20namespace eonc {
21
23public:
24 BasinHoppingSaddleSearch(std::shared_ptr<Matter> reactant,
25 std::shared_ptr<Matter> displacement,
26 std::shared_ptr<Potential> potPassed,
27 const Parameters &parametersPassed)
28 : SaddleSearchMethod(potPassed, parametersPassed),
29 reactant{std::make_shared<Matter>(*reactant)},
30 saddle{displacement} {
31 eigenvector.resize(reactant->numberOfAtoms(), 3);
32 eigenvector.setZero();
33 }
35
36 int run(void);
37 double getEigenvalue();
39 std::string_view describeStatus(int status) const override {
41 }
42 int getStatus() const override { return status; }
43
44 double eigenvalue{0.0};
46
47 std::shared_ptr<Matter> reactant;
48 std::shared_ptr<Matter> saddle;
49 std::shared_ptr<Matter> product;
50
51 int status{0};
52
53private:
55};
56
57} // namespace eonc
58
Eigen::Matrix< double, Eigen::Dynamic, 3, eOnStorageOrder > AtomMatrix
Definition Eigen.h:37
BasinHoppingSaddleSearch(std::shared_ptr< Matter > reactant, std::shared_ptr< Matter > displacement, std::shared_ptr< Potential > potPassed, const Parameters &parametersPassed)
BasinHoppingSaddleSearch(std::shared_ptr< Matter > reactant, std::shared_ptr< Matter > displacement, std::shared_ptr< Potential > potPassed, const Parameters &parametersPassed)
std::string_view describeStatus(int status) const override
static constexpr std::string_view statusMessage(int status)
Human-readable message for a status code.
SaddleSearchMethod(std::shared_ptr< Potential > potPassed, const Parameters &paramsPassed)
RAII resource manager for the ARTn C library with global synchronization.
RAII helper for class-scoped logging.
Definition EonLogger.h:171