Loading...
Searching...
No Matches
LowestEigenmode.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 "Eigen.h"
15#include "Matter.h"
16#include "Parameters.h"
17
18namespace eonc {
19
24protected:
25 std::shared_ptr<Potential> pot;
27
28public:
30 double statsTorque{0.0};
31 double statsCurvature{0.0};
32 double statsAngle{0.0};
35 static const char MINMODE_DIMER[];
36 static const char MINMODE_GPRDIMER[];
37 static const char MINMODE_LANCZOS[];
38 static const char MINMODE_DAVIDSON[];
39
40 LowestEigenmode(std::shared_ptr<Potential> potPassed,
41 const Parameters &parameters)
42 : pot{potPassed}, params{parameters} {}
43 virtual ~LowestEigenmode() = default;
44
45 virtual void compute(std::shared_ptr<Matter> matter,
46 AtomMatrix initialDirection) = 0;
47 virtual double getEigenvalue() = 0;
49};
50
51} // namespace eonc
Eigen::Matrix< double, Eigen::Dynamic, 3, eOnStorageOrder > AtomMatrix
Definition Eigen.h:37
virtual void compute(std::shared_ptr< Matter > matter, AtomMatrix initialDirection)=0
static const char MINMODE_GPRDIMER[]
const Parameters & params
std::shared_ptr< Potential > pot
virtual ~LowestEigenmode()=default
static const char MINMODE_DIMER[]
static const char MINMODE_LANCZOS[]
virtual double getEigenvalue()=0
static const char MINMODE_DAVIDSON[]
virtual AtomMatrix getEigenvector()=0
LowestEigenmode(std::shared_ptr< Potential > potPassed, const Parameters &parameters)
RAII resource manager for the ARTn C library with global synchronization.