ampsci
High-precision calculations for one- and two-valence atomic systems
Loading...
Searching...
No Matches
SphericalBessel::JL_table

Spherical Bessel Lookup table; in the form j_L(qr) = J[L][q][r]. More...

#include <SphericalBessel.hpp>

Public Member Functions

 JL_table (int max_L, const std::vector< double > &q, const std::vector< double > &r)
 
void fill (int max_L, const std::vector< double > &q, const std::vector< double > &r)
 If derivatives required for degree L, max_L = L+1.
 
const std::vector< double > & at (std::size_t L, std::size_t iq) const
 Direct access to jL(q*r) for specific q grid index.
 
const std::vector< double > & jL (int L, double q) const
 Returns jL(q_i*r) for the first grid point q_i such that q_i >= q.
 
const std::vector< double > & jL_nearest (int L, double q) const
 Returns jL(q_i*r) for the grid point q_i nearest to the requested q.
 
const std::vector< double > & jL_on_qr_nearest (int L, double q) const
 Returns jL(q_i*r)/(q_i*r) for the grid point q_i nearest to the requested q.
 
std::vector< double > jL_interp (int L, double q) const
 Returns jL(q*r) interpolated linearly between grid points. nb: assumes q grid dense enough that linear interp is reasonable!
 

Detailed Description

Spherical Bessel Lookup table; in the form j_L(qr) = J[L][q][r].

  • Allows 'first match', 'nearest', and 'interpolation' lookup
  • All of these are only accurate if grid dense enough
  • Ideally, use exact same grid to extract values as used to create them

Member Function Documentation

◆ fill()

void SphericalBessel::JL_table::fill ( int  max_L,
const std::vector< double > &  q,
const std::vector< double > &  r 
)
inline

If derivatives required for degree L, max_L = L+1.

◆ at()

const std::vector< double > & SphericalBessel::JL_table::at ( std::size_t  L,
std::size_t  iq 
) const
inline

Direct access to jL(q*r) for specific q grid index.

◆ jL()

const std::vector< double > & SphericalBessel::JL_table::jL ( int  L,
double  q 
) const
inline

Returns jL(q_i*r) for the first grid point q_i such that q_i >= q.

◆ jL_nearest()

const std::vector< double > & SphericalBessel::JL_table::jL_nearest ( int  L,
double  q 
) const
inline

Returns jL(q_i*r) for the grid point q_i nearest to the requested q.

◆ jL_on_qr_nearest()

const std::vector< double > & SphericalBessel::JL_table::jL_on_qr_nearest ( int  L,
double  q 
) const
inline

Returns jL(q_i*r)/(q_i*r) for the grid point q_i nearest to the requested q.

◆ jL_interp()

std::vector< double > SphericalBessel::JL_table::jL_interp ( int  L,
double  q 
) const
inline

Returns jL(q*r) interpolated linearly between grid points. nb: assumes q grid dense enough that linear interp is reasonable!


The documentation for this class was generated from the following file: