ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
Loading...
Searching...
No Matches
diago_pexsi.h
Go to the documentation of this file.
1#ifndef DIGAOPEXSI_H
2#define DIGAOPEXSI_H
3
4#include <vector>
5#include <memory>
6#include "source_base/macros.h" // GetRealType
10
11namespace hsolver
12{
13
14template <typename T>
16{
17 private:
18 using Real = typename GetTypeReal<T>::type;
19 static std::vector<double> mu_buffer;
20
21 public:
22 DiagoPexsi(const Parallel_Orbitals* ParaV_in);
23 void diag(hamilt::Hamilt<T>* phm_in, psi::Psi<T>& psi, Real* eigenvalue_in);
24 const Parallel_Orbitals* ParaV = nullptr;
25 std::vector<T*> DM;
26 std::vector<T*> EDM;
30 std::unique_ptr<pexsi::PEXSI_Solver> ps;
32};
33} // namespace hsolver
34
35#endif
Definition parallel_orbitals.h:9
Definition hamilt.h:17
Definition diago_pexsi.h:16
std::unique_ptr< pexsi::PEXSI_Solver > ps
Definition diago_pexsi.h:30
static std::vector< double > mu_buffer
Definition diago_pexsi.h:19
double totalEnergyS
Definition diago_pexsi.h:28
void diag(hamilt::Hamilt< T > *phm_in, psi::Psi< T > &psi, Real *eigenvalue_in)
const Parallel_Orbitals * ParaV
Definition diago_pexsi.h:24
typename GetTypeReal< T >::type Real
Definition diago_pexsi.h:18
double totalFreeEnergy
Definition diago_pexsi.h:29
std::vector< T * > DM
Definition diago_pexsi.h:25
std::vector< T * > EDM
Definition diago_pexsi.h:26
DiagoPexsi(const Parallel_Orbitals *ParaV_in)
double totalEnergyH
Definition diago_pexsi.h:27
Definition psi.h:37
Definition diag_comm_info.h:9
Definition exx_lip.h:23
T type
Definition macros.h:8