1#ifndef TWO_CENTER_TABLE_H
2#define TWO_CENTER_TABLE_H
41 const double*
table(
const int itype1,
48 const bool deriv =
false
51 void lookup(
const int itype1,
60 double* dval =
nullptr
69 int nchi_ket(
const int itype,
const int l)
const
120 double dfact(
int l)
const;
A class that represents a numerical radial function.
Definition numerical_radial.h:65
A class that holds all numerical radial functions of the same kind.
Definition radial_collection.h:18
Definition two_center_table.h:9
TwoCenterTable(const TwoCenterTable &)=delete
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
Definition two_center_table.cpp:102
container::Tensor index_map_
map (itype1, l1, izeta1, itype2, l2, izeta2, l) to a row index in the table
Definition two_center_table.h:102
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
Definition two_center_table.cpp:57
int ntab_
number of table entries
Definition two_center_table.h:87
int ntab() const
Definition two_center_table.h:35
void _tabulate(const NumericalRadial *it1, const NumericalRadial *it2, const int l)
Definition two_center_table.cpp:164
double rmax_
cutoff radius of the table
Definition two_center_table.h:89
int nr_
number of radial points of each table
Definition two_center_table.h:88
char op_
operator associated with the present table
Definition two_center_table.h:86
~TwoCenterTable()
Definition two_center_table.h:12
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
Definition two_center_table.cpp:122
void _indexing(const NumericalRadial *it1, const NumericalRadial *it2, const int l)
various looped functions during the construction of table
Definition two_center_table.cpp:159
void build(const RadialCollection &bra, const RadialCollection &ket, const char op, const int nr, const double cutoff)
Definition two_center_table.cpp:13
container::Tensor table_
two-center integral radial table, stored as a row-major matrix
Definition two_center_table.h:96
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
Definition two_center_table.cpp:73
double rmax() const
returns the radius cutoff of the table
Definition two_center_table.h:38
container::Tensor dtable_
derivative table generated from cubic spline interpolation
Definition two_center_table.h:99
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
Definition two_center_table.cpp:149
TwoCenterTable & operator=(const TwoCenterTable &)=delete
char op() const
Definition two_center_table.h:29
int nchi_ket(const int itype, const int l) const
number of NumericalRadial objects in the ket with given itype and l
Definition two_center_table.h:69
container::Tensor nchi_ket_
Table of size ntype x lmax that stores the number of radial functions of given type and l.
Definition two_center_table.h:93
void cleanup()
deallocates memory and reset variables to default.
Definition two_center_table.cpp:107
double * rgrid_
Definition two_center_table.h:90
size_t memory() const
Returns the amount of heap memory used by this class (in bytes).
Definition two_center_table.h:80
int nr() const
returns the number of radial points of each table
Definition two_center_table.h:32
double dfact(int l) const
double factorial
Definition two_center_table.cpp:139
int lmax_ket() const
maximum angular momentum of the ket
Definition two_center_table.h:77
void(TwoCenterTable::* looped_func)(const NumericalRadial *, const NumericalRadial *, const int l)
Definition two_center_table.h:122
A class for representing the shape of a tensor.
Definition tensor_shape.h:13
int64_t dim_size(int dim) const
Get the size of a dimension in the tensor.
Definition tensor_shape.cpp:31
A multi-dimensional array of elements of a single data type.
Definition tensor.h:32
T & get_value(Indices... indices) const
Get the element at the specified indices.
Definition tensor.h:374
int64_t NumElements() const
Get the total number of elements in the tensor.
Definition tensor.cpp:70
const TensorShape & shape() const
Get the shape of the tensor.
Definition tensor.cpp:67
@ DT_INT
32-bit integer */
@ DT_DOUBLE
Double-precision floating point */.