Class BesselFunction

Class Documentation

class BesselFunction

Computes a modified spherical Bessel function of the first kind.

Uses pretabulation to calculate the Bessel function up to a given maximum angular momentum. Values are interpolated using local Taylor series.

REFERENCES: R. Flores-Moreno et al., J. Comput. Chem. 27 (2006), 1009 L.E. McMurchie, E. Davidson, J. Comput. Phys. 44 (1981), 289

Public Functions

BesselFunction()

Default constructor. Creates a blank object.

BesselFunction(int lMax, int N, int order, double accuracy)

Specified constructor. Will call init with given arguments.

~BesselFunction()

Destructor, cleans up K and C.

void init(int lMax, int N, int order, double accuracy)

Initialises and pretabulates the BesselFunction up to the given angular momentum.

Parameters
  • lMax – - the maximum angular momentum needed

  • N – - the maximum number of points to be used in pretabulation, suggested 1600

  • order – - the order at which the expansion is cut off, suggested 200

  • accuracy – - the tolerance below which a value is considered converged

void calculate(double z, int maxL, std::vector<double> &values) const

Calculates the Bessel function values at a given point up to a given angular momentum

Parameters
  • z – - point at which to evaluate

  • maxL – - maximum angular momentum needed; must be <= lMax for object

  • values – - reference to vector in which to put the values for l = 0 to maxL

double calculate(double z, int L) const

Calculates the Bessel function value at a given point for a single angular momentum

Parameters
  • z – - point at which to evaluate

  • L – - angular momentum needed; must be <= lMax for object

double upper_bound(double z, int L) const

Calculates an upper bound to the Bessel function value at a given point for a given angular momentum

Parameters
  • z – - point at which to evaluate

  • L – - angular momentum needed; must be <= lMax for object