ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
Loading...
Searching...
No Matches
hsolver_lcao.h
Go to the documentation of this file.
1#ifndef HSOLVERLCAO_H
2#define HSOLVERLCAO_H
3
7
8namespace hsolver
9{
10
11template <typename T, typename Device = base_device::DEVICE_CPU>
13{
14 public:
15 HSolverLCAO(const Parallel_Orbitals* ParaV_in, std::string method_in) : ParaV(ParaV_in), method(method_in) {};
16
17 void solve(hamilt::Hamilt<T>* pHamilt,
20 const bool skip_charge);
21
22 private:
23 void hamiltSolvePsiK(hamilt::Hamilt<T>* hm, psi::Psi<T>& psi, double* eigenvalue); // for kpar_lcao == 1
24
25 void parakSolve(hamilt::Hamilt<T>* pHamilt, psi::Psi<T>& psi, elecstate::ElecState* pes, int kpar); // for kpar_lcao > 1
26
28
29 const std::string method;
30};
31
32} // namespace hsolver
33
34#endif
Definition parallel_orbitals.h:9
Definition elecstate.h:15
Definition hamilt.h:16
Definition hsolver_lcao.h:13
const Parallel_Orbitals * ParaV
Definition hsolver_lcao.h:27
void parakSolve(hamilt::Hamilt< T > *pHamilt, psi::Psi< T > &psi, elecstate::ElecState *pes, int kpar)
Definition hsolver_lcao.cpp:181
const std::string method
Definition hsolver_lcao.h:29
void solve(hamilt::Hamilt< T > *pHamilt, psi::Psi< T > &psi, elecstate::ElecState *pes, const bool skip_charge)
Definition hsolver_lcao.cpp:41
void hamiltSolvePsiK(hamilt::Hamilt< T > *hm, psi::Psi< T > &psi, double *eigenvalue)
Definition hsolver_lcao.cpp:127
HSolverLCAO(const Parallel_Orbitals *ParaV_in, std::string method_in)
Definition hsolver_lcao.h:15
Definition psi.h:37
Definition diag_comm_info.h:9
Definition exx_lip.h:23