1#ifndef RADIAL_PROJECTION_H
2#define RADIAL_PROJECTION_H
119 const std::vector<int>& iproj2l,
120 std::vector<int>& irow2it,
121 std::vector<int>& irow2iproj,
122 std::vector<int>& irow2m);
124 const std::vector<std::vector<int>>& it2iproj,
125 const std::vector<int>& iproj2l,
126 std::map<std::tuple<int, int, int, int>,
int>& itiaiprojm2irow);
157 const std::vector<double*>& radials,
158 const std::vector<int>& l,
162 const std::vector<std::vector<double>>& radials,
163 const std::vector<int>& l,
168 const std::vector<double>& r,
169 const std::vector<std::vector<double>>& radials,
170 const std::vector<int>& l,
190 std::vector<std::complex<double>>& out,
191 const char type =
'r',
192 const double& omega = 1.0,
193 const double& tpiba = 1.0);
199 std::unique_ptr<ModuleBase::CubicSpline>
cubspl_;
3 elements vector
Definition vector3.h:22
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:67
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:137
RadialProjector(const bool realspace=false)
Construct a new Radial Projector object.
Definition radial_proj.h:136
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:199
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:200
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:29
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