ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
|
#include <elpa_solver.h>
Public Member Functions | |
ELPA_Solver (const bool isReal, const MPI_Comm comm, const int nev, const int narows, const int nacols, const int *desc, const bool reuse_handle_0=true) | |
ELPA_Solver (const bool isReal, const MPI_Comm comm, const int nev, const int narows, const int nacols, const int *desc, const int *otherParameter) | |
int | eigenvector (double *A, double *EigenValue, double *EigenVector) |
int | generalized_eigenvector (double *A, double *B, int &DecomposedState, double *EigenValue, double *EigenVector) |
int | eigenvector (std::complex< double > *A, double *EigenValue, std::complex< double > *EigenVector) |
int | generalized_eigenvector (std::complex< double > *A, std::complex< double > *B, int &DecomposedState, double *EigenValue, std::complex< double > *EigenVector) |
void | setLoglevel (int loglevel) |
void | setKernel (bool isReal, int Kernel) |
void | setQR (int useQR) |
void | outputParameters () |
void | verify (double *A, double *EigenValue, double *EigenVector, double &maxRemain, double &meanRemain) |
void | verify (double *A, double *B, double *EigenValue, double *EigenVector, double &maxRemain, double &meanRemain) |
void | verify (std::complex< double > *A, double *EigenValue, std::complex< double > *EigenVector, double &maxError, double &meanError) |
void | verify (std::complex< double > *A, std::complex< double > *B, double *EigenValue, std::complex< double > *EigenVector, double &maxError, double &meanError) |
void | exit () |
Private Member Functions | |
int | read_cpuflag () |
int | read_real_kernel () |
int | read_complex_kernel () |
int | allocate_work () |
int | decomposeRightMatrix (double *B, double *EigenValue, double *EigenVector, int &DecomposedState) |
int | decomposeRightMatrix (std::complex< double > *B, double *EigenValue, std::complex< double > *EigenVector, int &DecomposedState) |
int | composeEigenVector (int DecomposedState, double *B, double *EigenVector) |
int | composeEigenVector (int DecomposedState, std::complex< double > *B, std::complex< double > *EigenVector) |
void | timer (int myid, const char function[], const char step[], double &t0) |
Private Attributes | |
const int | CHOLESKY_CRITICAL_SIZE = 1000 |
bool | isReal |
MPI_Comm | comm |
int | nFull |
int | nev |
int | narows |
int | nacols |
int | desc [9] |
int | method |
int | kernel_id |
int | cblacs_ctxt |
int | nblk |
int | lda |
std::vector< double > | dwork |
std::vector< std::complex< double > > | zwork |
int | myid |
int | nprows |
int | npcols |
int | myprow |
int | mypcol |
int | useQR |
int | wantDebug |
int | loglevel |
std::ofstream | logfile |
int | comm_f |
int | mpi_comm_rows |
int | mpi_comm_cols |
int | handle_id |
ELPA_Solver::ELPA_Solver | ( | const bool | isReal, |
const MPI_Comm | comm, | ||
const int | nev, | ||
const int | narows, | ||
const int | nacols, | ||
const int * | desc, | ||
const bool | reuse_handle_0 = true |
||
) |
ELPA_Solver::ELPA_Solver | ( | const bool | isReal, |
const MPI_Comm | comm, | ||
const int | nev, | ||
const int | narows, | ||
const int | nacols, | ||
const int * | desc, | ||
const int * | otherParameter | ||
) |
|
private |
|
private |
|
private |
|
private |
|
private |
int ELPA_Solver::eigenvector | ( | double * | A, |
double * | EigenValue, | ||
double * | EigenVector | ||
) |
int ELPA_Solver::eigenvector | ( | std::complex< double > * | A, |
double * | EigenValue, | ||
std::complex< double > * | EigenVector | ||
) |
void ELPA_Solver::exit | ( | ) |
int ELPA_Solver::generalized_eigenvector | ( | double * | A, |
double * | B, | ||
int & | DecomposedState, | ||
double * | EigenValue, | ||
double * | EigenVector | ||
) |
int ELPA_Solver::generalized_eigenvector | ( | std::complex< double > * | A, |
std::complex< double > * | B, | ||
int & | DecomposedState, | ||
double * | EigenValue, | ||
std::complex< double > * | EigenVector | ||
) |
void ELPA_Solver::outputParameters | ( | ) |
|
private |
|
private |
|
private |
void ELPA_Solver::setKernel | ( | bool | isReal, |
int | Kernel | ||
) |
void ELPA_Solver::setLoglevel | ( | int | loglevel | ) |
void ELPA_Solver::setQR | ( | int | useQR | ) |
|
private |
void ELPA_Solver::verify | ( | double * | A, |
double * | B, | ||
double * | EigenValue, | ||
double * | EigenVector, | ||
double & | maxRemain, | ||
double & | meanRemain | ||
) |
void ELPA_Solver::verify | ( | double * | A, |
double * | EigenValue, | ||
double * | EigenVector, | ||
double & | maxRemain, | ||
double & | meanRemain | ||
) |
void ELPA_Solver::verify | ( | std::complex< double > * | A, |
double * | EigenValue, | ||
std::complex< double > * | EigenVector, | ||
double & | maxError, | ||
double & | meanError | ||
) |
void ELPA_Solver::verify | ( | std::complex< double > * | A, |
std::complex< double > * | B, | ||
double * | EigenValue, | ||
std::complex< double > * | EigenVector, | ||
double & | maxError, | ||
double & | meanError | ||
) |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |