SIRIUS 7.5.0
Electronic structure library and applications
|
Compact storage of non-zero Gaunt coefficients \( \langle \ell_1 m_1 | \ell_3 m_3 | \ell_2 m_2 \rangle \). More...
#include <gaunt.hpp>
Public Member Functions | |
Gaunt_coefficients (int lmax1__, int lmax3__, int lmax2__, std::function< T(int, int, int, int, int, int)> get__) | |
Class constructor. More... | |
int | num_gaunt (int lm3) const |
Return number of non-zero Gaunt coefficients for a given lm3. More... | |
gaunt_L1_L2< T > const & | gaunt (int lm3, int idx) const |
Return a structure containing {lm1, lm2, coef} for a given lm3 and index. More... | |
int | num_gaunt (int lm1, int lm2) const |
Return number of non-zero Gaunt coefficients for a combination of lm1 and lm2. More... | |
gaunt_L3< T > const & | gaunt (int lm1, int lm2, int idx) const |
Return a structure containing {lm3, coef} for a given lm1, lm2 and index. More... | |
auto | sum_L3_gaunt (int lm1, int lm2, std::complex< double > const *v) const |
Return a sum over L3 (lm3) index of Gaunt coefficients and a complex vector. More... | |
T | sum_L3_gaunt (int lm1, int lm2, double const *v) const |
Return a sum over L3 (lm3) index of Gaunt coefficients and a real vector. More... | |
std::vector< gaunt_L3< T > > const & | gaunt_vector (int lm1, int lm2) const |
Return vector of non-zero Gaunt coefficients for a given combination of lm1 and lm2. More... | |
auto | get_full_set_L3 () const |
Return the full tensor of Gaunt coefficients <R_{L1}|R_{L3}|R_{L2}> with a (L3, L1, L2) order of indices. More... | |
Private Attributes | |
int | lmax1_ |
lmax of <lm1| More... | |
int | lmmax1_ |
lmmax of <lm1| More... | |
int | lmax3_ |
lmax of inner real or complex spherical harmonic More... | |
int | lmmax3_ |
lmmax of inner real or complex spherical harmonic More... | |
int | lmax2_ |
lmax of |lm2> More... | |
int | lmmax2_ |
lmmax of |lm2> More... | |
sddk::mdarray< std::vector< gaunt_L1_L2< T > >, 1 > | gaunt_packed_L1_L2_ |
List of non-zero Gaunt coefficients for each lm3. More... | |
sddk::mdarray< std::vector< gaunt_L3< T > >, 2 > | gaunt_packed_L3_ |
List of non-zero Gaunt coefficients for each combination of lm1, lm2. More... | |
Compact storage of non-zero Gaunt coefficients \( \langle \ell_1 m_1 | \ell_3 m_3 | \ell_2 m_2 \rangle \).
Very important! The following notation is adopted and used everywhere: lm1 and lm2 represent 'bra' and 'ket' spherical harmonics of the Gaunt integral and lm3 represent the inner spherical harmonic.
|
inline |
|
inline |
|
inline |
Return a structure containing {lm1, lm2, coef} for a given lm3 and index.
Example:
|
inline |
|
inline |
|
inline |
|
inline |
Return a sum over L3 (lm3) index of Gaunt coefficients and a real vector.
The following operation is performed:
\[ \sum_{\ell_3 m_3} \langle \ell_1 m_1 | \ell_3 m_3 | \ell_2 m_2 \rangle v_{\ell_3 m_3} \]
Result is assumed to be of the same type as Gaunt coefficients.
|
inline |
|
inline |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |