Loading...
Searching...
No Matches
XtsciMinMode.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
14#include "LowestEigenmode.h"
15
16struct RgsaddleMinMode;
17
18namespace eonc {
19
24public:
25 XtsciMinMode(std::shared_ptr<Matter> matter, const Parameters &params,
26 std::shared_ptr<Potential> pot);
27 ~XtsciMinMode() override;
28 XtsciMinMode(const XtsciMinMode &) = delete;
30
31 void compute(std::shared_ptr<Matter> matter,
32 AtomMatrix initialDirection) override;
33 double getEigenvalue() override;
34 AtomMatrix getEigenvector() override;
35
36private:
37 double m_eigenvalue{0.0};
40 // The rgsaddle session kept across compute() calls (ABI minor 5 and up).
41 RgsaddleMinMode *m_session{nullptr};
43};
44
45} // namespace eonc
Eigen::Matrix< double, Eigen::Dynamic, 3, eOnStorageOrder > AtomMatrix
Definition Eigen.h:37
const Parameters & params
std::shared_ptr< Potential > pot
LowestEigenmode(std::shared_ptr< Potential > potPassed, const Parameters &parameters)
XtsciMinMode & operator=(const XtsciMinMode &)=delete
XtsciMinMode(std::shared_ptr< Matter > matter, const Parameters &params, std::shared_ptr< Potential > pot)
AtomMatrix getEigenvector() override
double getEigenvalue() override
XtsciMinMode(const XtsciMinMode &)=delete
void compute(std::shared_ptr< Matter > matter, AtomMatrix initialDirection) override
AtomMatrix m_eigenvector
RgsaddleMinMode * m_session
RAII resource manager for the ARTn C library with global synchronization.