1#ifndef RADIAL_PROJECTION_H
2#define RADIAL_PROJECTION_H
118 const std::vector<int>& iproj2l,
119 std::vector<int>& irow2it,
120 std::vector<int>& irow2iproj,
121 std::vector<int>& irow2m);
123 const std::vector<std::vector<int>>& it2iproj,
124 const std::vector<int>& iproj2l,
125 std::map<std::tuple<int, int, int, int>,
int>& itiaiprojm2irow);
156 const std::vector<double*>& radials,
157 const std::vector<int>& l,
161 const std::vector<std::vector<double>>& radials,
162 const std::vector<int>& l,
167 const std::vector<double>& r,
168 const std::vector<std::vector<double>>& radials,
169 const std::vector<int>& l,
189 std::vector<std::complex<double>>& out,
190 const char type =
'r',
191 const double& omega = 1.0,
192 const double& tpiba = 1.0);
198 std::unique_ptr<ModuleBase::CubicSpline>
cubspl_;
3 elements vector
Definition vector3.h:24
double float array
Definition realarray.h:21
RadialProjector is for projecting a function who has seperatable radial and angular parts: f(r) = f(|...
Definition radial_proj.h:66
static void _build_forward_map(const std::vector< std::vector< int > > &it2ia, const std::vector< std::vector< int > > &it2iproj, const std::vector< int > &iproj2l, std::map< std::tuple< int, int, int, int >, int > &itiaiprojm2irow)
Definition radial_proj.cpp:53
~RadialProjector()
Definition radial_proj.h:136
RadialProjector(const bool realspace=false)
Construct a new Radial Projector object.
Definition radial_proj.h:135
void _build_sbt_tab(const int nr, const double *r, const std::vector< double * > &radials, const std::vector< int > &l, const int nq, const double &dq)
make a interpolation table for the Spherical Bessel Transform of f(r)
Definition radial_proj.cpp:78
std::unique_ptr< ModuleBase::CubicSpline > cubspl_
Definition radial_proj.h:198
void sbtft(const std::vector< ModuleBase::Vector3< double > > &qs, std::vector< std::complex< double > > &out, const char type='r', const double &omega=1.0, const double &tpiba=1.0)
perform analytical version of the Fourier transform: F(q) = int(f(r)*exp(-iq.r) d^3r) = 4*pi/sqrt(ome...
Definition radial_proj.cpp:195
std::vector< int > l_
Definition radial_proj.h:199
static void _build_backward_map(const std::vector< std::vector< int > > &it2iproj, const std::vector< int > &iproj2l, std::vector< int > &irow2it, std::vector< int > &irow2iproj, std::vector< int > &irow2m)
Definition radial_proj.cpp:13
Definition radial_proj.h:28
void _mask_func(std::vector< double > &mask)
get the mask function for SBFFT
Definition radial_proj.cpp:243
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 rad...
Definition radial_proj.cpp:305