A function on a non-uniform real-space radial grid. More...
#include <RadialFunction.h>
Public Member Functions | |
RadialFunctionR (int nSamples=0) | |
allocate for a specified sample count | |
RadialFunctionR (const std::vector< double > &r, double dlogr) | |
initialize logarithmic grid | |
void | set (std::vector< double > r, std::vector< double > dr) |
update the sample locations, weights | |
void | initWeights () |
double | transform (int l, double G) const |
void | transform (int l, double dG, int nGrid, RadialFunctionG &func) const |
Public Attributes | |
std::vector< double > | r |
radial location | |
std::vector< double > | dr |
radial weight | |
std::vector< double > | f |
sample value | |
A function on a non-uniform real-space radial grid.
void RadialFunctionR::initWeights | ( | ) |
Compute optimum dr given r (must be in ascending order) which will be exact for the integration of cubic splines with natural boundary conditions. It is recommended that r[0]=0 or r[0]<<r[1], but it'll work fine even otherwise.
double RadialFunctionR::transform | ( | int | l, |
double | G | ||
) | const |
Evaluate spherical bessel transform of order l at wavevector G: $ func(G) = dr 4 r^2 j_l(G r) f(r) $
void RadialFunctionR::transform | ( | int | l, |
double | dG, | ||
int | nGrid, | ||
RadialFunctionG & | func | ||
) | const |
Initialize a uniform G radial function from the logPrintf grid function according to $ func(G) = dr 4 r^2 j_l(G r) f(r) $