Loading...
Searching...
No Matches
DynamicsSaddleSearch.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 DynamicsSaddleSearch(std::shared_ptr<Matter> matterPassed,
25 const Parameters &parametersPassed)
26 : SaddleSearchMethod(nullptr, parametersPassed),
27 product{std::make_shared<Matter>(*matterPassed)},
28 reactant{std::make_shared<Matter>(*matterPassed)},
29 saddle{matterPassed} {
30 this->pot = matterPassed->getPotential();
31 eigenvector.resize(reactant->numberOfAtoms(), 3);
32 eigenvector.setZero();
33 };
35
36 int run();
37 double getEigenvalue();
39 std::string_view describeStatus(int status) const override {
41 }
42 int getStatus() const override { return status; }
43
44 int refineTransition(const std::vector<std::shared_ptr<Matter>> &snapshots,
45 std::shared_ptr<Matter> product);
46
47 double eigenvalue{0.0};
49
50 double time{0.0};
51
52 std::shared_ptr<Matter> product;
53 std::shared_ptr<Matter> reactant;
54 std::shared_ptr<Matter> saddle;
55
56 int status{0};
57
58private:
60};
61
62} // namespace eonc
63
Eigen::Matrix< double, Eigen::Dynamic, 3, eOnStorageOrder > AtomMatrix
Definition Eigen.h:37
DynamicsSaddleSearch(std::shared_ptr< Matter > matterPassed, const Parameters &parametersPassed)
int refineTransition(const std::vector< std::shared_ptr< Matter > > &snapshots, std::shared_ptr< Matter > product)
Binary search through MD snapshots to find the transition point.
DynamicsSaddleSearch(std::shared_ptr< Matter > matterPassed, const Parameters &parametersPassed)
std::shared_ptr< Matter > saddle
std::shared_ptr< Matter > reactant
std::string_view describeStatus(int status) const override
std::shared_ptr< Matter > product
static constexpr std::string_view statusMessage(int status)
Human-readable message for a status code.
std::shared_ptr< Potential > pot
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