ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
Loading...
Searching...
No Matches
Functions
Grid::Angular Namespace Reference

Functions

int ngrid_delley (int &lmax)
 Number of Delley's grid points for a certain order of accuracy.
 
int delley (int &lmax, double *grid, double *weight)
 Delley's quadrature grid and weights.
 
int delley (int &lmax, std::vector< double > &grid, std::vector< double > &weight)
 

Function Documentation

◆ delley() [1/2]

int Grid::Angular::delley ( int &  lmax,
double *  grid,
double *  weight 
)

Delley's quadrature grid and weights.

This function retrieves the minimum Delley's grid with an accuray of order "lmax". On exit, lmax is set to the order of this grid, and the coordinates & weights are returned in "grid" & "weight".

Coordinates are stored in the following order:

 x0, y0, z0, x1, y1, z1, x2, y2, z2, ...

"grid" and "weight" must be pre-allocated to hold 3*ngrid(lmax) and ngrid(lmax) elements, respectively. The function will return 0 if successful, or -1 if the requested order cannot be fulfilled.

Reference: Delley, B. (1996). High order integration schemes on the unit sphere. Journal of computational chemistry, 17(9), 1152-1155.

Here is the caller graph for this function:

◆ delley() [2/2]

int Grid::Angular::delley ( int &  lmax,
std::vector< double > &  grid,
std::vector< double > &  weight 
)

◆ ngrid_delley()

int Grid::Angular::ngrid_delley ( int &  lmax)

Number of Delley's grid points for a certain order of accuracy.

This function finds the minimum Delley's grid with an accuracy of order "lmax". On exit, lmax is set to the order of this grid, and its corresponding number of grid points is returned. If no such grid is available, lmax is left unchanged and the function will return -1.

For example, if lmax = 20 on input, the function will return 194 and lmax will be set to 23.

Here is the caller graph for this function: