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

#include <math_sphbes.h>

Collaboration diagram for ModuleBase::Sphbes:

Public Member Functions

 Sphbes ()
 
 ~Sphbes ()
 

Static Public Member Functions

static void Spherical_Bessel (const int &msh, const double *r, const double &q, const int &l, double *jl)
 spherical bessel jl(qr)
 
static void dSpherical_Bessel_dx (const int &msh, const double *r, const double &q, const int &l, double *jl)
 derivative of spherical bessel djl(qr)/d(qr)
 
static void Spherical_Bessel (const int &msh, const double *r, const double &q, const int &l, double *sj, double *sjp)
 spherical bessel
 
static void Spherical_Bessel_Roots (const int &num, const int &l, const double &epsilon, double *eigenvalue, const double &rcut)
 return num eigenvalues of spherical bessel function
 
static double sphbesj (const int l, const double x)
 spherical Bessel function of the first kind
 
static double dsphbesj (const int l, const double x)
 derivative of spherical Bessel function
 
static void sphbesj (const int n, const double *const r, const double q, const int l, double *const jl)
 computes the values of l-th order spherical Bessel function at q*r[ir]
 
static void dsphbesj (const int n, const double *const r, const double q, const int l, double *const djl)
 computes the derivative of l-th order spherical Bessel function at q*r[ir]
 
static void sphbes_zeros (const int l, const int n, double *const zeros, bool return_all=false)
 Zeros of spherical Bessel functions.
 

Static Private Member Functions

static double Spherical_Bessel_7 (const int n, const double &x)
 
static void BESSJY (double x, double xnu, double *rj, double *ry, double *rjp, double *ryp)
 
static void BESCHB (double x, double *gam1, double *gam2, double *gampl, double *gammi)
 
static double CHEBEV (double a, double b, double c[], int m, double x)
 
static int IMAX (int a, int b)
 
static double _sphbesj_ascending_recurrence (int l, double x)
 
static double _sphbesj_series (int l, double x)
 
static double illinois (std::function< double(double)> func, double x0, double x1, const double tol=1e-12, const int max_iter=50)
 

Constructor & Destructor Documentation

◆ Sphbes()

Sphbes::Sphbes ( )

◆ ~Sphbes()

Sphbes::~Sphbes ( )

Member Function Documentation

◆ _sphbesj_ascending_recurrence()

double Sphbes::_sphbesj_ascending_recurrence ( int  l,
double  x 
)
staticprivate
Here is the caller graph for this function:

◆ _sphbesj_series()

double Sphbes::_sphbesj_series ( int  l,
double  x 
)
staticprivate
Here is the caller graph for this function:

◆ BESCHB()

void Sphbes::BESCHB ( double  x,
double *  gam1,
double *  gam2,
double *  gampl,
double *  gammi 
)
staticprivate
Here is the call graph for this function:
Here is the caller graph for this function:

◆ BESSJY()

void Sphbes::BESSJY ( double  x,
double  xnu,
double *  rj,
double *  ry,
double *  rjp,
double *  ryp 
)
staticprivate
Here is the call graph for this function:
Here is the caller graph for this function:

◆ CHEBEV()

double Sphbes::CHEBEV ( double  a,
double  b,
double  c[],
int  m,
double  x 
)
staticprivate
Here is the caller graph for this function:

◆ dsphbesj() [1/2]

double Sphbes::dsphbesj ( const int  l,
const double  x 
)
static

derivative of spherical Bessel function

Parameters
[in]lorder
[in]xargument
Here is the call graph for this function:
Here is the caller graph for this function:

◆ dsphbesj() [2/2]

void Sphbes::dsphbesj ( const int  n,
const double *const  r,
const double  q,
const int  l,
double *const  djl 
)
static

computes the derivative of l-th order spherical Bessel function at q*r[ir]

Parameters
[in]nnumber of r grid points
[in]rr grid
[in]qwave vector
[in]lorder of the spherical Bessel function
[out]djlresults
Here is the call graph for this function:

◆ dSpherical_Bessel_dx()

void Sphbes::dSpherical_Bessel_dx ( const int &  msh,
const double *  r,
const double &  q,
const int &  l,
double *  jl 
)
static

derivative of spherical bessel djl(qr)/d(qr)

Parameters
msh[in] number of grid points
r[in] radial grid
q[in] k_radial
l[in] angular momentum
jl[out] jl spherical bessel function
Here is the call graph for this function:
Here is the caller graph for this function:

◆ illinois()

double Sphbes::illinois ( std::function< double(double)>  func,
double  x0,
double  x1,
const double  tol = 1e-12,
const int  max_iter = 50 
)
staticprivate
Here is the call graph for this function:
Here is the caller graph for this function:

◆ IMAX()

int Sphbes::IMAX ( int  a,
int  b 
)
staticprivate
Here is the caller graph for this function:

◆ sphbes_zeros()

void Sphbes::sphbes_zeros ( const int  l,
const int  n,
double *const  zeros,
bool  return_all = false 
)
static

Zeros of spherical Bessel functions.

This function computes the first n positive zeros of the l-th order spherical Bessel function of the first kind.

Parameters
[in]l(maximum) order of the spherical Bessel function
[in]nnumber of zeros to be computed (for each j_l if return_all is true)
[out]zeroson exit, contains the positive zeros.
[in]return_allif true, return all zeros from j_0 to j_l such that zeros[l*n+i] is the i-th zero of j_l. If false, return only the first n zeros of j_l.
Note
The size of array "zeros" must be at least (l+1)*n if return_all is true, and n otherwise.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ sphbesj() [1/2]

double Sphbes::sphbesj ( const int  l,
const double  x 
)
static

spherical Bessel function of the first kind

This function computes j_l(x) by series expansion for x < l and by ascending recurrence for x >= l.

Parameters
[in]lorder
[in]xargument
Here is the call graph for this function:
Here is the caller graph for this function:

◆ sphbesj() [2/2]

void Sphbes::sphbesj ( const int  n,
const double *const  r,
const double  q,
const int  l,
double *const  jl 
)
static

computes the values of l-th order spherical Bessel function at q*r[ir]

Parameters
[in]nnumber of r grid points
[in]rr grid
[in]qwave vector
[in]lorder of the spherical Bessel function
[out]jlresults
Here is the call graph for this function:

◆ Spherical_Bessel() [1/2]

void Sphbes::Spherical_Bessel ( const int &  msh,
const double *  r,
const double &  q,
const int &  l,
double *  jl 
)
static

spherical bessel jl(qr)

Parameters
msh[in] number of grid points
r[in] radial grid
q[in] k_radial
l[in] angular momentum
jl[out] jl spherical bessel function
Here is the call graph for this function:
Here is the caller graph for this function:

◆ Spherical_Bessel() [2/2]

void Sphbes::Spherical_Bessel ( const int &  msh,
const double *  r,
const double &  q,
const int &  l,
double *  sj,
double *  sjp 
)
static

spherical bessel

Parameters
msh[in] number of grid points
r[in] radial grid
q[in] k_radial
l[in] angular momentum
jl[out] jl spherical bessel function
sjp[out] sjp[i] is assigned to be 1.0. i < msh.
Here is the call graph for this function:

◆ Spherical_Bessel_7()

double Sphbes::Spherical_Bessel_7 ( const int  n,
const double &  x 
)
staticprivate
Here is the call graph for this function:
Here is the caller graph for this function:

◆ Spherical_Bessel_Roots()

void Sphbes::Spherical_Bessel_Roots ( const int &  num,
const int &  l,
const double &  epsilon,
double *  eigenvalue,
const double &  rcut 
)
static

return num eigenvalues of spherical bessel function

Parameters
num[in] the number of eigenvalues
l[in] angular number
epsilon[in] the accuracy
eigenvalue[out] the calculated eigenvalues
rcut[in] the cutoff the radial function
Here is the call graph for this function:
Here is the caller graph for this function:

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