ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
Loading...
Searching...
No Matches
Public Member Functions | Static Public Attributes | Private Attributes | List of all members
pexsi::PEXSI_Solver Class Reference

#include <pexsi_solver.h>

Collaboration diagram for pexsi::PEXSI_Solver:

Public Member Functions

void prepare (const int blacs_text, const int nb, const int nrow, const int ncol, const double *h, const double *s, double *&DM, double *&EDM)
 
int solve (double mu0)
 
const double get_totalFreeEnergy () const
 
const double get_totalEnergyH () const
 
const double get_totalEnergyS () const
 
const double get_mu () const
 

Static Public Attributes

static int pexsi_npole
 Number of terms in the pole expansion.
 
static bool pexsi_inertia
 Whether inertia counting is used at the very beginning.
 
static int pexsi_nmax
 Maximum number of PEXSI iterations after each inertia counting procedure.
 
static bool pexsi_comm
 Whether to construct PSelInv communication pattern.
 
static bool pexsi_storage
 Whether to use symmetric storage space used by the Selected Inversion algorithm for symmetric matrices.

 
static int pexsi_ordering
 Ordering strategy for factorization and selected inversion.
 
static int pexsi_row_ordering
 row permutation strategy for factorization and selected inversion.

 
static int pexsi_nproc
 Number of processors for PARMETIS/PT-SCOTCH. Only used if the ordering == 0.
 
static bool pexsi_symm
 Matrix structure.
 
static bool pexsi_trans
 Transpose.
 
static int pexsi_method
 The pole expansion method to be used.
 
static int pexsi_nproc_pole
 The point parallelizaion of PEXSI.
 
static double pexsi_temp
 Temperature, in the same unit as H.
 
static double pexsi_gap
 Spectral gap. Note This can be set to be 0 in most cases.
 
static double pexsi_delta_e
 An upper bound for the spectral radius of $S^{-1} H$.
 
static double pexsi_mu_lower
 Initial guess of lower bound for mu.
 
static double pexsi_mu_upper
 Initial guess of upper bound for mu.
 
static double pexsi_mu
 Initial guess for mu (for the solver) (AG)
 
static double pexsi_mu_thr
 Stopping criterion in terms of the chemical potential for the inertia counting procedure.
 
static double pexsi_mu_expand
 If the chemical potential is not in the initial interval, the interval is expanded by muInertiaExpansion.
 
static double pexsi_mu_guard
 Safe guard criterion in terms of the chemical potential to reinvoke the inertia counting procedure.
 
static double pexsi_elec_thr
 Stopping criterion of the PEXSI iteration in terms of the number of electrons compared to numElectronExact.
 
static double pexsi_zero_thr
 If the absolute value of CCS matrix element is less than this value, it will be considered as zero.
 

Private Attributes

int blacs_text
 
int nb
 
int nrow
 
int ncol
 
double * h
 
double * s
 
double * DM
 
double * EDM
 
double totalEnergyH
 
double totalEnergyS
 
double totalFreeEnergy
 
double mu
 

Member Function Documentation

◆ get_mu()

const double pexsi::PEXSI_Solver::get_mu ( ) const

◆ get_totalEnergyH()

const double pexsi::PEXSI_Solver::get_totalEnergyH ( ) const

◆ get_totalEnergyS()

const double pexsi::PEXSI_Solver::get_totalEnergyS ( ) const

◆ get_totalFreeEnergy()

const double pexsi::PEXSI_Solver::get_totalFreeEnergy ( ) const

◆ prepare()

void pexsi::PEXSI_Solver::prepare ( const int  blacs_text,
const int  nb,
const int  nrow,
const int  ncol,
const double *  h,
const double *  s,
double *&  DM,
double *&  EDM 
)

◆ solve()

int pexsi::PEXSI_Solver::solve ( double  mu0)

Member Data Documentation

◆ blacs_text

int pexsi::PEXSI_Solver::blacs_text
private

◆ DM

double* pexsi::PEXSI_Solver::DM
private

◆ EDM

double* pexsi::PEXSI_Solver::EDM
private

◆ h

double* pexsi::PEXSI_Solver::h
private

◆ mu

double pexsi::PEXSI_Solver::mu
private

◆ nb

int pexsi::PEXSI_Solver::nb
private

◆ ncol

int pexsi::PEXSI_Solver::ncol
private

◆ nrow

int pexsi::PEXSI_Solver::nrow
private

◆ pexsi_comm

bool pexsi::PEXSI_Solver::pexsi_comm
static

Whether to construct PSelInv communication pattern.

◆ pexsi_delta_e

double pexsi::PEXSI_Solver::pexsi_delta_e
static

An upper bound for the spectral radius of $S^{-1} H$.

◆ pexsi_elec_thr

double pexsi::PEXSI_Solver::pexsi_elec_thr
static

Stopping criterion of the PEXSI iteration in terms of the number of electrons compared to numElectronExact.

◆ pexsi_gap

double pexsi::PEXSI_Solver::pexsi_gap
static

Spectral gap. Note This can be set to be 0 in most cases.

◆ pexsi_inertia

bool pexsi::PEXSI_Solver::pexsi_inertia
static

Whether inertia counting is used at the very beginning.

◆ pexsi_method

int pexsi::PEXSI_Solver::pexsi_method
static

The pole expansion method to be used.

  • = 1 : Cauchy Contour Integral method used.
  • = 2 : Moussa optimized method.

◆ pexsi_mu

double pexsi::PEXSI_Solver::pexsi_mu
static

Initial guess for mu (for the solver) (AG)

◆ pexsi_mu_expand

double pexsi::PEXSI_Solver::pexsi_mu_expand
static

If the chemical potential is not in the initial interval, the interval is expanded by muInertiaExpansion.

◆ pexsi_mu_guard

double pexsi::PEXSI_Solver::pexsi_mu_guard
static

Safe guard criterion in terms of the chemical potential to reinvoke the inertia counting procedure.

◆ pexsi_mu_lower

double pexsi::PEXSI_Solver::pexsi_mu_lower
static

Initial guess of lower bound for mu.

◆ pexsi_mu_thr

double pexsi::PEXSI_Solver::pexsi_mu_thr
static

Stopping criterion in terms of the chemical potential for the inertia counting procedure.

◆ pexsi_mu_upper

double pexsi::PEXSI_Solver::pexsi_mu_upper
static

Initial guess of upper bound for mu.

◆ pexsi_nmax

int pexsi::PEXSI_Solver::pexsi_nmax
static

Maximum number of PEXSI iterations after each inertia counting procedure.

◆ pexsi_npole

int pexsi::PEXSI_Solver::pexsi_npole
static

Number of terms in the pole expansion.

◆ pexsi_nproc

int pexsi::PEXSI_Solver::pexsi_nproc
static

Number of processors for PARMETIS/PT-SCOTCH. Only used if the ordering == 0.

◆ pexsi_nproc_pole

int pexsi::PEXSI_Solver::pexsi_nproc_pole
static

The point parallelizaion of PEXSI.

  • = 2 : Recommend two points parallelization

◆ pexsi_ordering

int pexsi::PEXSI_Solver::pexsi_ordering
static

Ordering strategy for factorization and selected inversion.

◆ pexsi_row_ordering

int pexsi::PEXSI_Solver::pexsi_row_ordering
static

row permutation strategy for factorization and selected inversion.

◆ pexsi_storage

bool pexsi::PEXSI_Solver::pexsi_storage
static

Whether to use symmetric storage space used by the Selected Inversion algorithm for symmetric matrices.

◆ pexsi_symm

bool pexsi::PEXSI_Solver::pexsi_symm
static

Matrix structure.

  • = 0 : Unsymmetric matrix
  • = 1 : Symmetric matrix (default).

◆ pexsi_temp

double pexsi::PEXSI_Solver::pexsi_temp
static

Temperature, in the same unit as H.

◆ pexsi_trans

bool pexsi::PEXSI_Solver::pexsi_trans
static

Transpose.

  • = 0 : Factor non transposed matrix (default).
  • = 1 : Factor transposed matrix.

◆ pexsi_zero_thr

double pexsi::PEXSI_Solver::pexsi_zero_thr
static

If the absolute value of CCS matrix element is less than this value, it will be considered as zero.

◆ s

double* pexsi::PEXSI_Solver::s
private

◆ totalEnergyH

double pexsi::PEXSI_Solver::totalEnergyH
private

◆ totalEnergyS

double pexsi::PEXSI_Solver::totalEnergyS
private

◆ totalFreeEnergy

double pexsi::PEXSI_Solver::totalFreeEnergy
private

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