Loading...
Searching...
No Matches
Hessian.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
16#include "Matter.h"
17#include "Parameters.h"
18
19namespace eonc {
20
21class Hessian {
22public:
23 Hessian(const Parameters &params, Matter *matter);
24 ~Hessian() = default;
25
26 MatrixXd getHessian(Matter *matterIn, const VectorXi &atomsIn);
27 VectorXd getFreqs(Matter *matterIn, const VectorXi &atomsIn);
28 // VectorXd getModes(Matter *matterIn, VectorXi atomsIn);
29 VectorXd removeZeroFreqs(const VectorXd &freqs);
30
31private:
34
36 VectorXd freqs;
37
38 VectorXi atoms;
39 bool calculate();
41};
42
43} // namespace eonc
44
45using eonc::Hessian;
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic, eOnStorageOrder > MatrixXd
Definition Eigen.h:33
bool calculate()
Definition Hessian.cpp:113
eonc::log::Scoped log
Definition Hessian.h:40
Matter * matter
Definition Hessian.h:32
VectorXd freqs
Definition Hessian.h:36
VectorXd removeZeroFreqs(const VectorXd &freqs)
Definition Hessian.cpp:280
VectorXi atoms
Definition Hessian.h:38
MatrixXd getHessian(Matter *matterIn, const VectorXi &atomsIn)
Definition Hessian.cpp:85
VectorXd getFreqs(Matter *matterIn, const VectorXi &atomsIn)
Definition Hessian.cpp:99
const Parameters & parameters
Definition Hessian.h:33
Hessian(const Parameters &params, Matter *matter)
Definition Hessian.cpp:78
~Hessian()=default
MatrixXd hessian
Definition Hessian.h:35
RAII resource manager for the ARTn C library with global synchronization.
RAII helper for class-scoped logging.
Definition EonLogger.h:171