#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