|
ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
|
Classes | |
| class | RadialProjector |
| RadialProjector is for projecting a function who has seperatable radial and angular parts: f(r) = f(|r|) * Ylm(theta, phi) onto planewave basis. More... | |
Functions | |
| void | _mask_func (std::vector< double > &mask) |
| get the mask function for SBFFT | |
| void | _do_mask_on_radial (const int nr1, const double *r, const double *in, const int nr2, const double *mask, double *out) |
| do operation w(r)/m(r) on a radial function. The cutoff radius of w(r) is smaller than the cutoff radius of m(r). The m(r) has been rescaled so that r ranges from 0 to 1. | |
| void RadialProjection::_do_mask_on_radial | ( | const int | nr1, |
| const double * | r, | ||
| const double * | in, | ||
| const int | nr2, | ||
| const double * | mask, | ||
| double * | out | ||
| ) |
do operation w(r)/m(r) on a radial function. The cutoff radius of w(r) is smaller than the cutoff radius of m(r). The m(r) has been rescaled so that r ranges from 0 to 1.
| nr1 | number of grid points of function to operate |
| r | grid points of function to operate |
| in | function to operate |
| nr2 | number of grid points of mask function |
| mask | mask function |
| out | output value |
| void RadialProjection::_mask_func | ( | std::vector< double > & | mask | ) |
get the mask function for SBFFT
====================================================================================
Small box Fast-Fourier-Transform (SBFFT)
==================================================================================== Small box FFT is a technique for quickly intergrating real-space localized functions , or say perform FFT in a small box defined by a "mask function" with relatively low time complexity, will be out-performing in system where number of atoms are larger than ten. For details please refer to the work: Mask-function real-space implementations of nonlocal pseudopotentials by Wang, L.-W., PHYSICAL REVIEW B, VOLUME64,201107(R)
Following are the brief technical review of this technique. Given the function to be transformed w(r):
| mask | mask function |