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
11
12namespace hsolver
13{
14
15template <typename T>
17{
18 private:
19 using Real = typename GetTypeReal<T>::type;
20 static std::vector<double> mu_buffer;
21
22 public:
23 DiagoPexsi(const Parallel_Orbitals* ParaV_in);
24 void diag(hamilt::Hamilt<T>* phm_in, psi::Psi<T>& psi, Real* eigenvalue_in);
26 std::vector<T*> DM;
27 std::vector<T*> EDM;
31 std::unique_ptr<pexsi::PEXSI_Solver> ps;
33};
34} // namespace hsolver
35
36#endif
Definition parallel_orbitals.h:9
Definition hamilt.h:16
Definition diago_pexsi.h:17
std::unique_ptr< pexsi::PEXSI_Solver > ps
Definition diago_pexsi.h:31
static std::vector< double > mu_buffer
Definition diago_pexsi.h:20
double totalEnergyS
Definition diago_pexsi.h:29
void diag(hamilt::Hamilt< T > *phm_in, psi::Psi< T > &psi, Real *eigenvalue_in)
const Parallel_Orbitals * ParaV
Definition diago_pexsi.h:25
typename GetTypeReal< T >::type Real
Definition diago_pexsi.h:19
double totalFreeEnergy
Definition diago_pexsi.h:30
std::vector< T * > DM
Definition diago_pexsi.h:26
std::vector< T * > EDM
Definition diago_pexsi.h:27
DiagoPexsi(const Parallel_Orbitals *ParaV_in)
double totalEnergyH
Definition diago_pexsi.h:28
Definition psi.h:37
Definition diag_comm_info.h:9
Definition exx_lip.h:23
T type
Definition macros.h:8