1#ifndef NUMERICAL_RADIAL_H_
2#define NUMERICAL_RADIAL_H_
93 const bool for_r_space,
95 const double*
const grid,
96 const double*
const value,
99 const std::string
symbol =
"",
101 const bool init_sbt =
true
113 const int nk_legacy = 4005,
114 const double lcao_dk = 0.01,
115 const bool out_element_info =
false,
116 const bool cal_force =
false)
const;
152 void set_grid(
const bool for_r_space,
const int ngrid,
const double*
const grid,
const char mode =
'i');
175 const char mode =
'i',
176 const bool enable_fft =
false);
188 const double*
const value,
193 void wipe(
const bool r_space =
true,
const bool k_space =
true);
245 const double rmax_tab,
246 const bool deriv =
false
270 int l()
const {
return l_; }
383 void set_icut(
const bool for_r_space,
const bool for_k_space,
const double tol = 1e-15);
389 static bool is_uniform(
const int n,
const double*
const grid,
const double tol = 1e-15);
397 const double*
const rgrid,
399 const double*
const kgrid,
400 const double tol = 1e-15
A class that represents a numerical radial function.
Definition numerical_radial.h:65
~NumericalRadial()
Definition numerical_radial.cpp:97
const double * kvalue() const
padded zeros ignored
Definition numerical_radial.h:280
int ircut_
Index of the first trailing zero.
Definition numerical_radial.h:317
int nr_
number of r-space grid points
Definition numerical_radial.h:298
double * rgrid_
r-space grid
Definition numerical_radial.h:301
double rmax() const
padded zeros considered
Definition numerical_radial.h:275
const double * rvalue() const
padded zeros ignored
Definition numerical_radial.h:279
int nk() const
padded zeros ignored
Definition numerical_radial.h:272
int izeta() const
padded zeros ignored
Definition numerical_radial.h:269
bool is_fft_compliant_
A flag that tells whether the r & k grids are FFT-compliant.
Definition numerical_radial.h:336
ModuleBase::SphericalBesselTransformer sbt() const
padded zeros ignored
Definition numerical_radial.h:284
double pk() const
padded zeros ignored
Definition numerical_radial.h:282
int l() const
padded zeros ignored
Definition numerical_radial.h:270
void set_grid(const bool for_r_space, const int ngrid, const double *const grid, const char mode='i')
Sets up a grid.
Definition numerical_radial.cpp:200
void set_icut(const bool for_r_space, const bool for_k_space, const double tol=1e-15)
Updates ircut_ and/or ikcut_.
Definition numerical_radial.cpp:474
int pr_
implicit exponent in rvalues_
Definition numerical_radial.h:358
void to_numerical_orbital_lm(Numerical_Orbital_Lm &orbital_lm, const int nk_legacy=4005, const double lcao_dk=0.01, const bool out_element_info=false, const bool cal_force=false) const
Overwrites the content of a Numerical_Orbital_Lm object with the current object.
Definition numerical_radial.cpp:156
static bool is_uniform(const int n, const double *const grid, const double tol=1e-15)
Checks whether a grid is uniform.
Definition numerical_radial.cpp:495
std::string symbol_
chemical symbol
Definition numerical_radial.h:293
void set_uniform_grid(const bool for_r_space, const int ngrid, const double cutoff, const char mode='i', const bool enable_fft=false)
Sets up a uniform grid.
Definition numerical_radial.cpp:274
int nk_
number of k-space grid points
Definition numerical_radial.h:299
void build(const int l, const bool for_r_space, const int ngrid, const double *const grid, const double *const value, const int p=0, const int izeta=0, const std::string symbol="", const int itype=0, const bool init_sbt=true)
Initializes the object by providing the grid & values in one space.
Definition numerical_radial.cpp:105
double rgrid(int ir) const
padded zeros ignored
Definition numerical_radial.h:286
void transform(const bool forward)
Transforms the r-space values to get k-space values, or vice versa.
Definition numerical_radial.cpp:433
double * kvalue_
k-space value
Definition numerical_radial.h:321
int ikcut_
Definition numerical_radial.h:318
double pr() const
padded zeros ignored
Definition numerical_radial.h:281
int l_
angular momentum
Definition numerical_radial.h:295
double kcut() const
padded zeros ignored
Definition numerical_radial.h:274
double rcut() const
padded zeros ignored
Definition numerical_radial.h:273
int nr() const
padded zeros ignored
Definition numerical_radial.h:271
void radtab(const char op, const NumericalRadial &ket, const int l, double *const table, const int nr_tab, const double rmax_tab, const bool deriv=false) const
Computes the radial table for two-center integrals.
Definition numerical_radial.cpp:347
NumericalRadial & operator=(NumericalRadial const &)
Deep-copy grid & values.
Definition numerical_radial.cpp:49
int pk_
implicit exponent in kvalues_
Definition numerical_radial.h:365
NumericalRadial()=default
const double * rgrid() const
padded zeros ignored
Definition numerical_radial.h:277
int itype_
element index in calculation
Definition numerical_radial.h:294
bool is_fft_compliant() const
padded zeros ignored
Definition numerical_radial.h:283
double * kgrid_
k-space grid
Definition numerical_radial.h:302
int izeta_
further index for NumericalRadial objects with the same itype_and l_
Definition numerical_radial.h:296
double kgrid(int ik) const
padded zeros ignored
Definition numerical_radial.h:287
std::string const & symbol() const
padded zeros ignored
Definition numerical_radial.h:267
double * rvalue_
r-space value
Definition numerical_radial.h:320
void normalize(bool for_r_space=true)
Normalizes the radial function.
Definition numerical_radial.cpp:408
int itype() const
padded zeros ignored
Definition numerical_radial.h:268
void set_value(const bool for_r_space, const double *const value, const int p)
Updates values on an existing grid.
Definition numerical_radial.cpp:295
double kvalue(int ik) const
padded zeros ignored
Definition numerical_radial.h:289
void set_transformer(ModuleBase::SphericalBesselTransformer sbt, int update=0)
Sets a SphericalBesselTransformer.
Definition numerical_radial.cpp:181
double rvalue(int ir) const
padded zeros ignored
Definition numerical_radial.h:288
ModuleBase::SphericalBesselTransformer sbt_
An object that provides spherical Bessel transforms.
Definition numerical_radial.h:369
void wipe(const bool r_space=true, const bool k_space=true)
Removes the grid & values in r or k space.
Definition numerical_radial.cpp:316
const double * kgrid() const
padded zeros ignored
Definition numerical_radial.h:278
double kmax() const
padded zeros ignored
Definition numerical_radial.h:276
Definition ORB_atomic_lm.h:21
const std::map< std::string, std::vector< double > > op
Definition vdwd3_autoset_xcparam.cpp:375