ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
Loading...
Searching...
No Matches
two_center_integrator.h
Go to the documentation of this file.
1#ifndef TWO_CENTER_INTEGRATOR_H_
2#define TWO_CENTER_INTEGRATOR_H_
3
8
35{
36 public:
40
42
52 void tabulate(const RadialCollection& bra,
53 const RadialCollection& ket,
54 const char op,
55 const int nr,
56 const double cutoff
57 );
58
87 void calculate(const int itype1,
88 const int l1,
89 const int izeta1,
90 const int m1,
91 const int itype2,
92 const int l2,
93 const int izeta2,
94 const int m2,
95 const ModuleBase::Vector3<double>& vR, // vR = R2 - R1
96 double* out = nullptr,
97 double* grad_out = nullptr
98 ) const;
99
106 void snap(const int itype1,
107 const int l1,
108 const int izeta1,
109 const int m1,
110 const int itype2,
111 const ModuleBase::Vector3<double>& vR, // vR = R2 - R1
112 const bool deriv,
113 std::vector<std::vector<double>>& out
114 ) const;
115
117 size_t table_memory() const { return table_.memory(); }
118
119 private:
121 char op_;
123
133 int ylm_index(const int l, const int m) const;
134};
135
136#endif
3 elements vector
Definition vector3.h:22
A class that holds all numerical radial functions of the same kind.
Definition radial_collection.h:18
A class to compute two-center integrals.
Definition two_center_integrator.h:35
size_t table_memory() const
Returns the amount of heap memory used by table_ (in bytes).
Definition two_center_integrator.h:117
void snap(const int itype1, const int l1, const int izeta1, const int m1, const int itype2, const ModuleBase::Vector3< double > &vR, const bool deriv, std::vector< std::vector< double > > &out) const
Compute a batch of two-center integrals.
Definition two_center_integrator.cpp:96
char op_
Definition two_center_integrator.h:121
TwoCenterIntegrator & operator=(const TwoCenterIntegrator &)=delete
TwoCenterTable table_
Definition two_center_integrator.h:122
void tabulate(const RadialCollection &bra, const RadialCollection &ket, const char op, const int nr, const double cutoff)
Tabulates the radial part of a two-center integral.
Definition two_center_integrator.cpp:13
TwoCenterIntegrator(const TwoCenterIntegrator &)=delete
int ylm_index(const int l, const int m) const
Returns the index of (l,m) in the array of spherical harmonics.
Definition two_center_integrator.cpp:156
~TwoCenterIntegrator()
Definition two_center_integrator.h:41
bool is_tabulated_
Definition two_center_integrator.h:120
TwoCenterIntegrator()
Definition two_center_integrator.cpp:7
Definition two_center_table.h:9
size_t memory() const
Returns the amount of heap memory used by this class (in bytes).
Definition two_center_table.h:80
void calculate()
Definition main.cpp:24
const std::map< std::string, std::vector< double > > op
Definition vdwd3_autoset_xcparam.cpp:372