ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
Loading...
Searching...
No Matches
Public Member Functions | Private Member Functions | Private Attributes | List of all members
hsolver::HSolverLCAO< T, Device > Class Template Reference

#include <hsolver_lcao.h>

Collaboration diagram for hsolver::HSolverLCAO< T, Device >:

Public Member Functions

 HSolverLCAO (const Parallel_Orbitals *ParaV_in, std::string method_in)
 
void solve (hamilt::Hamilt< T > *pHamilt, psi::Psi< T > &psi, elecstate::ElecState *pes, const bool skip_charge)
 

Private Member Functions

void hamiltSolvePsiK (hamilt::Hamilt< T > *hm, psi::Psi< T > &psi, double *eigenvalue)
 
void parakSolve (hamilt::Hamilt< T > *pHamilt, psi::Psi< T > &psi, elecstate::ElecState *pes, int kpar)
 

Private Attributes

const Parallel_OrbitalsParaV
 
const std::string method
 

Constructor & Destructor Documentation

◆ HSolverLCAO()

template<typename T , typename Device = base_device::DEVICE_CPU>
hsolver::HSolverLCAO< T, Device >::HSolverLCAO ( const Parallel_Orbitals ParaV_in,
std::string  method_in 
)
inline

Member Function Documentation

◆ hamiltSolvePsiK()

template<typename T , typename Device >
void hsolver::HSolverLCAO< T, Device >::hamiltSolvePsiK ( hamilt::Hamilt< T > *  hm,
psi::Psi< T > &  psi,
double *  eigenvalue 
)
private
Here is the call graph for this function:

◆ parakSolve()

template<typename T , typename Device >
void hsolver::HSolverLCAO< T, Device >::parakSolve ( hamilt::Hamilt< T > *  pHamilt,
psi::Psi< T > &  psi,
elecstate::ElecState pes,
int  kpar 
)
private

set psi_pool

Loop over k points for solve Hamiltonian to charge density

global index of k point

local psi in pool

solve eigenvector and eigenvalue for H(k)

Here is the call graph for this function:

◆ solve()

template<typename T , typename Device >
void hsolver::HSolverLCAO< T, Device >::solve ( hamilt::Hamilt< T > *  pHamilt,
psi::Psi< T > &  psi,
elecstate::ElecState pes,
const bool  skip_charge 
)

Loop over k points for solve Hamiltonian to eigenpairs(eigenvalues and eigenvectors).

update H(k) for each k point

find psi pointer for each k point

solve eigenvector and eigenvalue for H(k)

Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ method

template<typename T , typename Device = base_device::DEVICE_CPU>
const std::string hsolver::HSolverLCAO< T, Device >::method
private

◆ ParaV

template<typename T , typename Device = base_device::DEVICE_CPU>
const Parallel_Orbitals* hsolver::HSolverLCAO< T, Device >::ParaV
private

The documentation for this class was generated from the following files: