QMCPACK
Eigensolver.h
Go to the documentation of this file.
1 //////////////////////////////////////////////////////////////////////////////////////
2 // This file is distributed under the University of Illinois/NCSA Open Source License.
3 // See LICENSE file in top directory for details.
4 //
5 // Copyright (c) 2024 QMCPACK developers.
6 //
7 // File developed by: Miguel Morales, moralessilva2@llnl.gov, Lawrence Livermore National Laboratory
8 // Jeremy McMinnis, jmcminis@gmail.com, University of Illinois at Urbana-Champaign
9 // Jeongnim Kim, jeongnim.kim@gmail.com, University of Illinois at Urbana-Champaign
10 // Mark A. Berrill, berrillma@ornl.gov, Oak Ridge National Laboratory
11 //
12 // File created by: Mark Dewing, markdewing@gmail.com
13 //////////////////////////////////////////////////////////////////////////////////////
14 
15 
16 /** @file EigenSolver.h
17  * @brief EigenSolver related functions.
18  */
19 #ifndef QMCPLUSPLUS_EIGENSOLVER_H
20 #define QMCPLUSPLUS_EIGENSOLVER_H
21 
22 #include <Configuration.h>
23 #include <OhmmsPETE/OhmmsMatrix.h>
24 
25 namespace qmcplusplus
26 {
27 
29 {
31 
32 public:
33  /** Use generalized eigenvalue solver
34  * @param[in] A Hamiltonian matrix
35  * @param[in] B Overlap matrix
36  * @param[out] eigenvals Eigenvalues
37  * @param[out] eigenvectors Eigenvectors corresponding to the eigenvalues
38  *
39  */
41  Matrix<Real>& B,
42  std::vector<Real>& eigenvals,
43  Matrix<Real>& eigenvectors);
44 
45  /** Solve by explicitly inverting the overlap matrix
46  * @param[in] A Hamiltonian matrix
47  * @param[in] B Overlap matrix
48  * @param[out] eigenvals Eigenvalues
49  * @param[out] eigenvectors Eigenvectors corresponding to the eigenvalues
50  *
51  */
53  Matrix<Real>& B,
54  std::vector<Real>& eigenvals,
55  Matrix<Real>& eigenvectors);
56 };
57 } // namespace qmcplusplus
58 #endif
helper functions for EinsplineSetBuilder
Definition: Configuration.h:43
QTBase::RealType RealType
Definition: Configuration.h:58
static void solveGeneralizedEigenvalues(Matrix< Real > &A, Matrix< Real > &B, std::vector< Real > &eigenvals, Matrix< Real > &eigenvectors)
Use generalized eigenvalue solver.
Definition: Eigensolver.cpp:32
static void solveGeneralizedEigenvalues_Inv(Matrix< Real > &A, Matrix< Real > &B, std::vector< Real > &eigenvals, Matrix< Real > &eigenvectors)
Solve by explicitly inverting the overlap matrix.
Definition: Eigensolver.cpp:78
double B(double x, int k, int i, const std::vector< double > &t)
QMCTraits::RealType Real
Definition: Eigensolver.h:30