#include <two_center_table.h>
|
| TwoCenterTable ()=default |
|
| ~TwoCenterTable () |
|
| TwoCenterTable (const TwoCenterTable &)=delete |
|
TwoCenterTable & | operator= (const TwoCenterTable &)=delete |
|
void | build (const RadialCollection &bra, const RadialCollection &ket, const char op, const int nr, const double cutoff) |
|
int | nchi_ket (const int itype, const int l) const |
| number of NumericalRadial objects in the ket with given itype and l
|
|
int | lmax_ket () const |
| maximum angular momentum of the ket
|
|
size_t | memory () const |
| Returns the amount of heap memory used by this class (in bytes).
|
|
|
char | op () const |
|
int | nr () const |
| returns the number of radial points of each table
|
|
int | ntab () const |
|
double | rmax () const |
| returns the radius cutoff of the table
|
|
const double * | table (const int itype1, const int l1, const int izeta1, const int itype2, const int l2, const int izeta2, const int l, const bool deriv=false) const |
| gets the read-only pointer to a specific table
|
|
void | lookup (const int itype1, const int l1, const int izeta1, const int itype2, const int l2, const int izeta2, const int l, const double R, double *val, double *dval=nullptr) const |
|
|
int & | table_index (const NumericalRadial *ptr_rad1, const NumericalRadial *ptr_rad2, const int l) |
| returns the row-index of the table corresponding to the given two radial functions and l
|
|
void | cleanup () |
| deallocates memory and reset variables to default.
|
|
bool | is_present (const int itype1, const int l1, const int izeta1, const int itype2, const int l2, const int izeta2, const int l) const |
| returns whether the given indices map to an entry in the table
|
|
double | dfact (int l) const |
| double factorial
|
|
void | two_center_loop (const RadialCollection &bra, const RadialCollection &ket, looped_func f) |
| loop-execute a function over all pairwise radial functions & l with non-vanishing Gaunt coefficients
|
|
void | _indexing (const NumericalRadial *it1, const NumericalRadial *it2, const int l) |
| various looped functions during the construction of table
|
|
void | _tabulate (const NumericalRadial *it1, const NumericalRadial *it2, const int l) |
|
|
char | op_ = '\0' |
| operator associated with the present table
|
|
int | ntab_ = 0 |
| number of table entries
|
|
int | nr_ = 0 |
| number of radial points of each table
|
|
double | rmax_ = 0.0 |
| cutoff radius of the table
|
|
double * | rgrid_ = nullptr |
|
container::Tensor | nchi_ket_ {container::DataType::DT_INT, container::TensorShape({0})} |
| Table of size ntype x lmax that stores the number of radial functions of given type and l.
|
|
container::Tensor | table_ {container::DataType::DT_DOUBLE, container::TensorShape({0})} |
| two-center integral radial table, stored as a row-major matrix
|
|
container::Tensor | dtable_ {container::DataType::DT_DOUBLE, container::TensorShape({0})} |
| derivative table generated from cubic spline interpolation
|
|
container::Tensor | index_map_ {container::DataType::DT_INT, container::TensorShape({0})} |
| map (itype1, l1, izeta1, itype2, l2, izeta2, l) to a row index in the table
|
|
◆ looped_func
◆ TwoCenterTable() [1/2]
TwoCenterTable::TwoCenterTable |
( |
| ) |
|
|
default |
◆ ~TwoCenterTable()
TwoCenterTable::~TwoCenterTable |
( |
| ) |
|
|
inline |
◆ TwoCenterTable() [2/2]
◆ _indexing()
various looped functions during the construction of table
◆ _tabulate()
◆ build()
- Parameters
-
[in] | bra | radial collection involved in <bra|op|ket> |
[in] | ket | radial collection involved in <bra|op|ket> |
[in] | op | operator of the two-center integral |
[in] | nr | number of table grid points |
[in] | cutoff | cutoff radius of the table |
◆ cleanup()
void TwoCenterTable::cleanup |
( |
| ) |
|
|
private |
deallocates memory and reset variables to default.
◆ dfact()
double TwoCenterTable::dfact |
( |
int |
l | ) |
const |
|
private |
◆ is_present()
bool TwoCenterTable::is_present |
( |
const int |
itype1, |
|
|
const int |
l1, |
|
|
const int |
izeta1, |
|
|
const int |
itype2, |
|
|
const int |
l2, |
|
|
const int |
izeta2, |
|
|
const int |
l |
|
) |
| const |
|
private |
returns whether the given indices map to an entry in the table
◆ lmax_ket()
int TwoCenterTable::lmax_ket |
( |
| ) |
const |
|
inline |
maximum angular momentum of the ket
◆ lookup()
void TwoCenterTable::lookup |
( |
const int |
itype1, |
|
|
const int |
l1, |
|
|
const int |
izeta1, |
|
|
const int |
itype2, |
|
|
const int |
l2, |
|
|
const int |
izeta2, |
|
|
const int |
l, |
|
|
const double |
R, |
|
|
double * |
val, |
|
|
double * |
dval = nullptr |
|
) |
| const |
returns the operator of the two-center integral
- Parameters
-
[in] | itype1 | element index of chi1 |
[in] | l1 | angular momentum of chi1 |
[in] | izeta1 | zeta number of chi1 |
[in] | itype2 | element index of chi2 |
[in] | l2 | angular momentum of chi2 |
[in] | izeta2 | zeta number of chi2 |
[in] | l | angular momentum of the entry |
[in] | R | distance between the two centers |
[out] | val | interpolated values from table_ |
[out] | dval | interpolated values from dtable_ |
◆ memory()
size_t TwoCenterTable::memory |
( |
| ) |
const |
|
inline |
Returns the amount of heap memory used by this class (in bytes).
◆ nchi_ket()
int TwoCenterTable::nchi_ket |
( |
const int |
itype, |
|
|
const int |
l |
|
) |
| const |
|
inline |
◆ nr()
int TwoCenterTable::nr |
( |
| ) |
const |
|
inline |
returns the number of radial points of each table
◆ ntab()
int TwoCenterTable::ntab |
( |
| ) |
const |
|
inline |
returns the operator of the two-center integral
◆ op()
char TwoCenterTable::op |
( |
| ) |
const |
|
inline |
returns the operator of the two-center integral
◆ operator=()
◆ rmax()
double TwoCenterTable::rmax |
( |
| ) |
const |
|
inline |
returns the radius cutoff of the table
◆ table()
const double * TwoCenterTable::table |
( |
const int |
itype1, |
|
|
const int |
l1, |
|
|
const int |
izeta1, |
|
|
const int |
itype2, |
|
|
const int |
l2, |
|
|
const int |
izeta2, |
|
|
const int |
l, |
|
|
const bool |
deriv = false |
|
) |
| const |
gets the read-only pointer to a specific table
- Parameters
-
[in] | itype1 | element index of chi1 |
[in] | l1 | angular momentum of chi1 |
[in] | izeta1 | zeta number of chi1 |
[in] | itype2 | element index of chi2 |
[in] | l2 | angular momentum of chi2 |
[in] | izeta2 | zeta number of chi2 |
[in] | l | angular momentum of the entry |
[in] | deriv | if true, return the derivative table |
◆ table_index()
returns the row-index of the table corresponding to the given two radial functions and l
◆ two_center_loop()
loop-execute a function over all pairwise radial functions & l with non-vanishing Gaunt coefficients
◆ dtable_
derivative table generated from cubic spline interpolation
◆ index_map_
map (itype1, l1, izeta1, itype2, l2, izeta2, l) to a row index in the table
◆ nchi_ket_
Table of size ntype x lmax that stores the number of radial functions of given type and l.
◆ nr_
int TwoCenterTable::nr_ = 0 |
|
private |
number of radial points of each table
◆ ntab_
int TwoCenterTable::ntab_ = 0 |
|
private |
◆ op_
char TwoCenterTable::op_ = '\0' |
|
private |
operator associated with the present table
◆ rgrid_
double* TwoCenterTable::rgrid_ = nullptr |
|
private |
◆ rmax_
double TwoCenterTable::rmax_ = 0.0 |
|
private |
cutoff radius of the table
◆ table_
two-center integral radial table, stored as a row-major matrix
The documentation for this class was generated from the following files:
- /home/runner/work/abacus-develop/abacus-develop/source/source_basis/module_nao/two_center_table.h
- /home/runner/work/abacus-develop/abacus-develop/source/source_basis/module_nao/two_center_table.cpp