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)
const;
150 void set_grid(
const bool for_r_space,
const int ngrid,
const double*
const grid,
const char mode =
'i');
173 const char mode =
'i',
174 const bool enable_fft =
false);
186 const double*
const value,
191 void wipe(
const bool r_space =
true,
const bool k_space =
true);
243 const double rmax_tab,
244 const bool deriv =
false
268 int l()
const {
return l_; }
381 void set_icut(
const bool for_r_space,
const bool for_k_space,
const double tol = 1e-15);
387 static bool is_uniform(
const int n,
const double*
const grid,
const double tol = 1e-15);
395 const double*
const rgrid,
397 const double*
const kgrid,
398 const double tol = 1e-15
A class that represents a numerical radial function.
Definition numerical_radial.h:65
~NumericalRadial()
Definition numerical_radial.cpp:98
const double * kvalue() const
padded zeros ignored
Definition numerical_radial.h:278
int ircut_
Index of the first trailing zero.
Definition numerical_radial.h:315
int nr_
number of r-space grid points
Definition numerical_radial.h:296
double * rgrid_
r-space grid
Definition numerical_radial.h:299
double rmax() const
padded zeros considered
Definition numerical_radial.h:273
const double * rvalue() const
padded zeros ignored
Definition numerical_radial.h:277
int nk() const
padded zeros ignored
Definition numerical_radial.h:270
int izeta() const
padded zeros ignored
Definition numerical_radial.h:267
bool is_fft_compliant_
A flag that tells whether the r & k grids are FFT-compliant.
Definition numerical_radial.h:334
ModuleBase::SphericalBesselTransformer sbt() const
padded zeros ignored
Definition numerical_radial.h:282
double pk() const
padded zeros ignored
Definition numerical_radial.h:280
int l() const
padded zeros ignored
Definition numerical_radial.h:268
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:197
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:471
int pr_
implicit exponent in rvalues_
Definition numerical_radial.h:356
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:492
std::string symbol_
chemical symbol
Definition numerical_radial.h:291
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:271
int nk_
number of k-space grid points
Definition numerical_radial.h:297
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:106
double rgrid(int ir) const
padded zeros ignored
Definition numerical_radial.h:284
void transform(const bool forward)
Transforms the r-space values to get k-space values, or vice versa.
Definition numerical_radial.cpp:430
double * kvalue_
k-space value
Definition numerical_radial.h:319
int ikcut_
Definition numerical_radial.h:316
double pr() const
padded zeros ignored
Definition numerical_radial.h:279
int l_
angular momentum
Definition numerical_radial.h:293
double kcut() const
padded zeros ignored
Definition numerical_radial.h:272
double rcut() const
padded zeros ignored
Definition numerical_radial.h:271
int nr() const
padded zeros ignored
Definition numerical_radial.h:269
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:344
NumericalRadial & operator=(NumericalRadial const &)
Deep-copy grid & values.
Definition numerical_radial.cpp:50
int pk_
implicit exponent in kvalues_
Definition numerical_radial.h:363
NumericalRadial()=default
const double * rgrid() const
padded zeros ignored
Definition numerical_radial.h:275
int itype_
element index in calculation
Definition numerical_radial.h:292
bool is_fft_compliant() const
padded zeros ignored
Definition numerical_radial.h:281
double * kgrid_
k-space grid
Definition numerical_radial.h:300
int izeta_
further index for NumericalRadial objects with the same itype_and l_
Definition numerical_radial.h:294
double kgrid(int ik) const
padded zeros ignored
Definition numerical_radial.h:285
std::string const & symbol() const
padded zeros ignored
Definition numerical_radial.h:265
double * rvalue_
r-space value
Definition numerical_radial.h:318
void normalize(bool for_r_space=true)
Normalizes the radial function.
Definition numerical_radial.cpp:405
int itype() const
padded zeros ignored
Definition numerical_radial.h:266
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:292
double kvalue(int ik) const
padded zeros ignored
Definition numerical_radial.h:287
void to_numerical_orbital_lm(Numerical_Orbital_Lm &orbital_lm, const int nk_legacy=4005, const double lcao_dk=0.01) const
Overwrites the content of a Numerical_Orbital_Lm object with the current object.
Definition numerical_radial.cpp:157
void set_transformer(ModuleBase::SphericalBesselTransformer sbt, int update=0)
Sets a SphericalBesselTransformer.
Definition numerical_radial.cpp:178
double rvalue(int ir) const
padded zeros ignored
Definition numerical_radial.h:286
ModuleBase::SphericalBesselTransformer sbt_
An object that provides spherical Bessel transforms.
Definition numerical_radial.h:367
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:313
const double * kgrid() const
padded zeros ignored
Definition numerical_radial.h:276
double kmax() const
padded zeros ignored
Definition numerical_radial.h:274
Definition ORB_atomic_lm.h:22
const std::map< std::string, std::vector< double > > op
Definition vdwd3_autoset_xcparam.cpp:372