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

#include <diago_scalapack.h>

Collaboration diagram for hsolver::DiagoScalapack< T >:

Public Member Functions

void diag (hamilt::Hamilt< T > *phm_in, psi::Psi< T > &psi, Real *eigenvalue_in)
 
void diag_pool (hamilt::MatrixBlock< T > &h_mat, hamilt::MatrixBlock< T > &s_mat, psi::Psi< T > &psi, Real *eigenvalue_in, MPI_Comm &comm)
 
void diag (hamilt::Hamilt< double > *phm_in, psi::Psi< double > &psi, Real *eigenvalue_in)
 
void diag (hamilt::Hamilt< std::complex< double > > *phm_in, psi::Psi< std::complex< double > > &psi, Real *eigenvalue_in)
 
void diag_pool (hamilt::MatrixBlock< double > &h_mat, hamilt::MatrixBlock< double > &s_mat, psi::Psi< double > &psi, Real *eigenvalue_in, MPI_Comm &comm)
 
void diag_pool (hamilt::MatrixBlock< std::complex< double > > &h_mat, hamilt::MatrixBlock< std::complex< double > > &s_mat, psi::Psi< std::complex< double > > &psi, Real *eigenvalue_in, MPI_Comm &comm)
 

Private Types

using Real = typename GetTypeReal< T >::type
 

Private Member Functions

void pdsygvx_diag (const int *const desc, const int ncol, const int nrow, const double *const h_mat, const double *const s_mat, double *const ekb, psi::Psi< double > &wfc_2d)
 
void pzhegvx_diag (const int *const desc, const int ncol, const int nrow, const std::complex< double > *const h_mat, const std::complex< double > *const s_mat, double *const ekb, psi::Psi< std::complex< double > > &wfc_2d)
 
std::pair< int, std::vector< int > > pdsygvx_once (const int *const desc, const int ncol, const int nrow, const double *const h_mat, const double *const s_mat, double *const ekb, psi::Psi< double > &wfc_2d) const
 
std::pair< int, std::vector< int > > pzhegvx_once (const int *const desc, const int ncol, const int nrow, const std::complex< double > *const h_mat, const std::complex< double > *const s_mat, double *const ekb, psi::Psi< std::complex< double > > &wfc_2d) const
 
void post_processing (const int info, const std::vector< int > &vec)
 

Private Attributes

int degeneracy_max = 12
 

Member Typedef Documentation

◆ Real

template<typename T >
using hsolver::DiagoScalapack< T >::Real = typename GetTypeReal<T>::type
private

Member Function Documentation

◆ diag() [1/3]

void hsolver::DiagoScalapack< double >::diag ( hamilt::Hamilt< double > *  phm_in,
psi::Psi< double > &  psi,
Real eigenvalue_in 
)
Here is the call graph for this function:

◆ diag() [2/3]

void hsolver::DiagoScalapack< std::complex< double > >::diag ( hamilt::Hamilt< std::complex< double > > *  phm_in,
psi::Psi< std::complex< double > > &  psi,
Real eigenvalue_in 
)
Here is the call graph for this function:

◆ diag() [3/3]

template<typename T >
void hsolver::DiagoScalapack< T >::diag ( hamilt::Hamilt< T > *  phm_in,
psi::Psi< T > &  psi,
Real eigenvalue_in 
)
Here is the caller graph for this function:

◆ diag_pool() [1/3]

void hsolver::DiagoScalapack< double >::diag_pool ( hamilt::MatrixBlock< double > &  h_mat,
hamilt::MatrixBlock< double > &  s_mat,
psi::Psi< double > &  psi,
Real eigenvalue_in,
MPI_Comm &  comm 
)
Here is the call graph for this function:

◆ diag_pool() [2/3]

void hsolver::DiagoScalapack< std::complex< double > >::diag_pool ( hamilt::MatrixBlock< std::complex< double > > &  h_mat,
hamilt::MatrixBlock< std::complex< double > > &  s_mat,
psi::Psi< std::complex< double > > &  psi,
Real eigenvalue_in,
MPI_Comm &  comm 
)
Here is the call graph for this function:

◆ diag_pool() [3/3]

template<typename T >
void hsolver::DiagoScalapack< T >::diag_pool ( hamilt::MatrixBlock< T > &  h_mat,
hamilt::MatrixBlock< T > &  s_mat,
psi::Psi< T > &  psi,
Real eigenvalue_in,
MPI_Comm &  comm 
)
Here is the caller graph for this function:

◆ pdsygvx_diag()

template<typename T >
void hsolver::DiagoScalapack< T >::pdsygvx_diag ( const int *const  desc,
const int  ncol,
const int  nrow,
const double *const  h_mat,
const double *const  s_mat,
double *const  ekb,
psi::Psi< double > &  wfc_2d 
)
private

◆ pdsygvx_once()

template<typename T >
std::pair< int, std::vector< int > > hsolver::DiagoScalapack< T >::pdsygvx_once ( const int *const  desc,
const int  ncol,
const int  nrow,
const double *const  h_mat,
const double *const  s_mat,
double *const  ekb,
psi::Psi< double > &  wfc_2d 
) const
private
Here is the call graph for this function:

◆ post_processing()

template<typename T >
void hsolver::DiagoScalapack< T >::post_processing ( const int  info,
const std::vector< int > &  vec 
)
private
Here is the call graph for this function:

◆ pzhegvx_diag()

template<typename T >
void hsolver::DiagoScalapack< T >::pzhegvx_diag ( const int *const  desc,
const int  ncol,
const int  nrow,
const std::complex< double > *const  h_mat,
const std::complex< double > *const  s_mat,
double *const  ekb,
psi::Psi< std::complex< double > > &  wfc_2d 
)
private

◆ pzhegvx_once()

template<typename T >
std::pair< int, std::vector< int > > hsolver::DiagoScalapack< T >::pzhegvx_once ( const int *const  desc,
const int  ncol,
const int  nrow,
const std::complex< double > *const  h_mat,
const std::complex< double > *const  s_mat,
double *const  ekb,
psi::Psi< std::complex< double > > &  wfc_2d 
) const
private
Here is the call graph for this function:

Member Data Documentation

◆ degeneracy_max

template<typename T >
int hsolver::DiagoScalapack< T >::degeneracy_max = 12
private

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