Loading...
Searching...
No Matches
ARTnSaddleSearch.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
13#pragma once
14
15#include "EonLogger.h"
16#include "Matter.h"
17#include "MinModeSaddleSearch.h"
18#include "Parameters.h"
19#include "SaddleSearchMethod.h"
20#include <limits>
21
22namespace eonc {
23
24class IARTnResource;
25
29public:
30 static constexpr int STATUS_GOOD = 0;
31 static constexpr int STATUS_BAD_MAX_ITERATIONS =
33 static constexpr int STATUS_BAD_ARTN_ERROR = 22;
34
35 ARTnSaddleSearch(std::shared_ptr<Matter> matterPassed,
36 std::shared_ptr<Potential> potPassed, AtomMatrix modeInitial,
37 const Parameters &paramsPassed);
38 ~ARTnSaddleSearch() override;
39
41 int run() override;
43 int run(IARTnResource &res);
44 double getEigenvalue() override;
45 AtomMatrix getEigenvector() override;
46 std::string_view describeStatus(int status) const override;
47 int getStatus() const override { return status; }
48 int getIterationCount() const override { return iteration; }
49 int getForceCalls() const override { return forcecalls; }
50
51private:
52 std::shared_ptr<Matter> matter;
53 double eigenvalue{std::numeric_limits<double>::quiet_NaN()};
55 int status{0};
56 int iteration{0};
57 int forcecalls{0};
59};
60
61} // namespace eonc
Eigen::Matrix< double, Eigen::Dynamic, 3, eOnStorageOrder > AtomMatrix
Definition Eigen.h:37
double getEigenvalue() override
ARTnSaddleSearch(std::shared_ptr< Matter > matterPassed, std::shared_ptr< Potential > potPassed, AtomMatrix modeInitial, const Parameters &paramsPassed)
int run() override
Production path loads the process ARTn library when that library is linked.
eonc::log::Scoped log
std::string_view describeStatus(int status) const override
AtomMatrix getEigenvector() override
int getForceCalls() const override
static constexpr int STATUS_GOOD
static constexpr int STATUS_BAD_ARTN_ERROR
int getStatus() const override
std::shared_ptr< Matter > matter
static constexpr int STATUS_BAD_MAX_ITERATIONS
int getIterationCount() const override
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