MPQC  3.0.0-alpha
eigensolver.hpp
1 //
2 // eigensolver.hpp
3 //
4 // Copyright (C) 2013 Drew Lewis
5 //
6 // Authors: Drew Lewis
7 // Maintainer: Drew Lewis and Edward Valeev
8 //
9 // This file is part of the MPQC Toolkit.
10 //
11 // The MPQC Toolkit is free software; you can redistribute it and/or modify
12 // it under the terms of the GNU Library General Public License as published by
13 // the Free Software Foundation; either version 2, or (at your option)
14 // any later version.
15 //
16 // The MPQC Toolkit is distributed in the hope that it will be useful,
17 // but WITHOUT ANY WARRANTY; without even the implied warranty of
18 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 // GNU Library General Public License for more details.
20 //
21 // You should have received a copy of the GNU Library General Public License
22 // along with the MPQC Toolkit; see the file COPYING.LIB. If not, write to
23 // the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
24 //
25 // The U.S. Government is granted a limited license as per AL 91-7.
26 //
27 
28 #ifndef MPQC_MATH_ELEMENTAL_EIGENSOLVER_HPP
29 #define MPQC_MATH_ELEMENTAL_EIGENSOLVER_HPP
30 
31 #include <tiledarray_fwd.h>
32 #include <elemental-lite.hpp>
33 
34 namespace mpqc {
35 namespace TA {
36 
37  using TiledArray::TArray2D;
38  using ElemVector = elem::DistMatrix<double, elem::VR, elem::STAR>;
39  using ElemTAEigenSystem = std::pair<ElemVector, TArray2D>;
40 
41  /***
42  * Solve generalized Hermitian eigenproblem to form density.
43  */
44  TArray2D
45  eigensolver_D(const TArray2D &F, const TArray2D &S, int occ);
46 
47  /***
48  * Solve generatlized Hermitian eigenproblem for occupied coefficients
49  */
50  TArray2D
51  eigensolver_occ_Coeff(const TArray2D &F, const TArray2D &S, int occ);
52 
53  /***
54  * Solve generalized Hermitian eigenproblem for all coefficents
55  */
56  ElemTAEigenSystem
57  eigensolver_full_Coeff(const TArray2D &F, const TArray2D &S);
58 
59 } // namespace mpqc::TA
60 } // namespace mpqc
61 
62 
63 #endif /* MPQC_MATH_ELEMENTAL_EIGENSOLVER_HPP */
mpqc
Contains new MPQC code since version 3.
Definition: integralenginepool.hpp:37

Generated at Sun Jan 26 2020 23:24:00 for MPQC 3.0.0-alpha using the documentation package Doxygen 1.8.16.