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
92 void calculate(const int itype1,
93 const int l1,
94 const int izeta1,
95 const int m1,
96 const int itype2,
97 const int l2,
98 const int izeta2,
99 const int m2,
100 const ModuleBase::Vector3<double>& vR, // vR = R2 - R1
101 double* out = nullptr,
102 double* grad_out = nullptr,
103 double* hess_out = nullptr
104 ) const;
105
112 void snap(const int itype1,
113 const int l1,
114 const int izeta1,
115 const int m1,
116 const int itype2,
117 const ModuleBase::Vector3<double>& vR, // vR = R2 - R1
118 const bool deriv,
119 std::vector<std::vector<double>>& out
120 ) const;
121
123 size_t table_memory() const { return table_.memory(); }
124
125 private:
127 char op_;
129
139 int ylm_index(const int l, const int m) const;
140};
141
142#endif
3 elements vector
Definition vector3.h:24
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:123
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:148
char op_
Definition two_center_integrator.h:127
TwoCenterIntegrator & operator=(const TwoCenterIntegrator &)=delete
TwoCenterTable table_
Definition two_center_integrator.h:128
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:12
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:208
~TwoCenterIntegrator()
Definition two_center_integrator.h:41
bool is_tabulated_
Definition two_center_integrator.h:126
TwoCenterIntegrator()
Definition two_center_integrator.cpp:6
Definition two_center_table.h:8
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:375