ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
Loading...
Searching...
No Matches
ORB_nonlocal_lm.h
Go to the documentation of this file.
1#ifndef NUMERICAL_NONLOCAL_LM
2#define NUMERICAL_NONLOCAL_LM
3
4#include <string>
5
19{
20
21 public:
22
23 double* beta_uniform;
26 double dr_uniform;
27
28 public:
29
32
33 const int& getL() const { return this->angular_momentum_l; }
34 const int& getType() const { return this->index_atom_type; }
35 const double& getRcut() const { return this->rcut; }
36
37 const int& getNr() const { return this->nr; }
38 const double* getRadial() const { return this->r_radial; }
39 const double& getRadial(const int &ir) const { return this->r_radial[ir]; }
40 const double* getBeta_r() const { return this->beta_r; }
41 const double& getBeta_r(const int &ir) const { return this->beta_r[ir]; }
42
43 const double& getDk()const { return this->dk; }
44 const double* getKpoint()const { return this->k_radial; }
45 const double& getKpoint(const int &ik) const { return this->k_radial[ik]; }
46 const double* getBeta_k() const { return this->beta_k; }
47 const double& getBeta_k(const int &ik) const { return this->beta_k[ik]; }
48
49 const int& getNk() const { return nk; }
50 const double& getDruniform() const { return dr_uniform; }
51
52 // enables deep copy
54
55 void set_NL_proj(
56 const std::string &label,
57 const int &index_atom_type_in,
58 const int &angular_momentum_l_in,
59 const int &nr_in,
60 const double *rab_in,
61 const double *r_radial_in,
62 const double *beta_r_in,
63 const int &nk_in,
64 const double &dk_in,
65 const double &dr_uniform_in);
66
67 void plot(const int &my_rank)const;
68
69 private:
70
71 void freemem(void);
72 void renew(void);
73 //void extra_uniform(const double &dr_uniform);
74 void get_kradial(void);
75
76 std::string label;
80
81 int nr;
82 int nk;
83
84 double rcut;
85 double kcut;
86 double dk;
87
88 double* r_radial; //points of r
89 double* k_radial;
90
91 double* rab;
92 double* beta_r; // |beta(r) * r>
93 double* beta_k;
94};
95
96#endif
Definition ORB_nonlocal_lm.h:19
int nr_uniform
Definition ORB_nonlocal_lm.h:25
void plot(const int &my_rank) const
Definition ORB_nonlocal_lm.cpp:221
double * rab
Definition ORB_nonlocal_lm.h:91
const double * getRadial() const
Definition ORB_nonlocal_lm.h:38
int index_atom_type
Definition ORB_nonlocal_lm.h:77
double rcut
Definition ORB_nonlocal_lm.h:84
void set_NL_proj(const std::string &label, const int &index_atom_type_in, const int &angular_momentum_l_in, const int &nr_in, const double *rab_in, const double *r_radial_in, const double *beta_r_in, const int &nk_in, const double &dk_in, const double &dr_uniform_in)
Definition ORB_nonlocal_lm.cpp:127
std::string label
Definition ORB_nonlocal_lm.h:76
const double & getRadial(const int &ir) const
Definition ORB_nonlocal_lm.h:39
const double & getBeta_k(const int &ik) const
Definition ORB_nonlocal_lm.h:47
int nr
Definition ORB_nonlocal_lm.h:81
const double * getBeta_r() const
Definition ORB_nonlocal_lm.h:40
const double * getKpoint() const
Definition ORB_nonlocal_lm.h:44
const int & getL() const
Definition ORB_nonlocal_lm.h:33
void get_kradial(void)
Definition ORB_nonlocal_lm.cpp:184
const int & getNr() const
Definition ORB_nonlocal_lm.h:37
double * dbeta_uniform
Definition ORB_nonlocal_lm.h:24
Numerical_Nonlocal_Lm()
use SplineD2
Definition ORB_nonlocal_lm.cpp:17
int index_proj
Definition ORB_nonlocal_lm.h:79
~Numerical_Nonlocal_Lm()
Definition ORB_nonlocal_lm.cpp:36
const double & getKpoint(const int &ik) const
Definition ORB_nonlocal_lm.h:45
double kcut
Definition ORB_nonlocal_lm.h:85
int angular_momentum_l
Definition ORB_nonlocal_lm.h:78
double * beta_uniform
Definition ORB_nonlocal_lm.h:23
double dr_uniform
Definition ORB_nonlocal_lm.h:26
Numerical_Nonlocal_Lm & operator=(const Numerical_Nonlocal_Lm &nol)
Definition ORB_nonlocal_lm.cpp:82
const double & getDruniform() const
Definition ORB_nonlocal_lm.h:50
int nk
Definition ORB_nonlocal_lm.h:82
const int & getType() const
Definition ORB_nonlocal_lm.h:34
void renew(void)
Definition ORB_nonlocal_lm.cpp:41
double * r_radial
Definition ORB_nonlocal_lm.h:88
double dk
Definition ORB_nonlocal_lm.h:86
const double * getBeta_k() const
Definition ORB_nonlocal_lm.h:46
const double & getRcut() const
Definition ORB_nonlocal_lm.h:35
const int & getNk() const
Definition ORB_nonlocal_lm.h:49
double * beta_r
Definition ORB_nonlocal_lm.h:92
const double & getDk() const
Definition ORB_nonlocal_lm.h:43
void freemem(void)
Definition ORB_nonlocal_lm.cpp:62
double * beta_k
Definition ORB_nonlocal_lm.h:93
double * k_radial
Definition ORB_nonlocal_lm.h:89
const double & getBeta_r(const int &ir) const
Definition ORB_nonlocal_lm.h:41