ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
Loading...
Searching...
No Matches
diago_elpa_native.h
Go to the documentation of this file.
1#ifndef DIAGOELPANATIVE_H
2#define DIAGOELPANATIVE_H
3
4#include "source_base/macros.h" // GetRealType
7
8namespace hsolver
9{
10
11template <typename T>
13{
14 private:
15 using Real = typename GetTypeReal<T>::type;
16
17 public:
18 void diag(hamilt::Hamilt<T>* phm_in, psi::Psi<T>& psi, Real* eigenvalue_in);
19#ifdef __MPI
20 // diagnolization used in parallel-k case
21 void diag_pool(hamilt::MatrixBlock<T>& h_mat, hamilt::MatrixBlock<T>& s_mat, psi::Psi<T>& psi, Real* eigenvalue_in, MPI_Comm& comm);
22 MPI_Comm setmpicomm(); // set mpi comm;
23 static int elpa_num_thread; // need to set mpi_comm or not,-1 not,else the number of mpi needed
24 static int lastmpinum; // last using mpi;
25
26#endif
27
28 static int DecomposedState;
29
30};
31
32template <typename T>
34#ifdef __MPI
35
36template <typename T>
38template <typename T>
40#endif
41
42} // namespace hsolver
43
44#endif
Definition hamilt.h:16
Definition diago_elpa_native.h:13
MPI_Comm setmpicomm()
Definition diago_elpa_native.cpp:15
static int DecomposedState
Definition diago_elpa_native.h:28
static int lastmpinum
Definition diago_elpa_native.h:24
static int elpa_num_thread
Definition diago_elpa_native.h:23
void diag_pool(hamilt::MatrixBlock< T > &h_mat, hamilt::MatrixBlock< T > &s_mat, psi::Psi< T > &psi, Real *eigenvalue_in, MPI_Comm &comm)
Definition diago_elpa_native.cpp:51
void diag(hamilt::Hamilt< T > *phm_in, psi::Psi< T > &psi, Real *eigenvalue_in)
Definition diago_elpa_native.cpp:146
typename GetTypeReal< T >::type Real
Definition diago_elpa_native.h:15
Definition psi.h:37
Definition diag_comm_info.h:9
Definition exx_lip.h:23
T type
Definition macros.h:8
Definition matrixblock.h:9