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 |