Class ORB_table_phi

Class Documentation

class ORB_table_phi

Public Functions

ORB_table_phi()
~ORB_table_phi()
void allocate(const int &ntype, const int &lmax_in, const int &kmesh_in, const double &Rmax_in, const double &dR_in, const double &dk_in)
Parameters
  • ntype – number of atom types

  • lmax_in – max L used to calculate overlap

  • kmesh_in – kpoints, for integration in k space

  • Rmax_in – max value of radial table

  • dR_in – delta R, for making radial table

  • dk_in – delta k, for integration in k space

void init_Table(const int &job, LCAO_Orbitals &orb)
void Destroy_Table(LCAO_Orbitals &orb)
void init_Lmax(const int orb_num, const int mode, int &Lmax_used, int &Lmax, const int &Lmax_exx) const

make table of Spherical bessel

Sph_Bes : jlx[kmesh][Rmesh][L], L should be 2*Lmax, which is max L of all type

void init_Table_Spherical_Bessel(const int orb_num, const int mode, int &Lmax_used, int &Lmax, const int &Lmax_exx)
void init_OV_Tpair(LCAO_Orbitals &orb)

make the index, in order to get the element from Table_SR and Table_TR quickly. OV stands for ‘overlap’

T stands for atom type.

void init_OV_Opair(LCAO_Orbitals &orb)

O stands for orbitals.

void cal_ST_Phi12_R(const int &job, const int &l, const Numerical_Orbital_Lm &n1, const Numerical_Orbital_Lm &n2, const int &rmesh, double *rs, double *drs) const
void cal_ST_Phi12_R(const int &job, const int &l, const Numerical_Orbital_Lm &n1, const Numerical_Orbital_Lm &n2, const set<size_t> &radials, double *rs, double *drs) const

Public Members

double *****Table_SR

Five dimension:

(1) 0: normal (S(R)) ; 1: derivative( dS/dR )

(2) pairs type number.

(3) pairs chi

(4) Max angular momentum: L.

(5) Distance between atoms: R.

double *****Table_TR
bool destroy_sr
bool destroy_tr
Sph_Bessel_Recursive::D2 *pSB = nullptr
int OV_nTpairs
IntArray OV_Tpair
IntArray OV_Opair
IntArray OV_L2plus1
int Rmesh

Public Static Functions

static int get_rmesh(const double &R1, const double &R2)

Public Static Attributes

static double dr = -1.0