aspcol.planewaves.plane_wave_integral

aspcol.planewaves.plane_wave_integral(dir_func, pos, exp_center, wave_num, rng, num_samples)

Computes the integral of a function multiplied with a plane wave over a sphere.

Defined according to (6) in Brunnström et al 2024. int_{S^2} f(d) exp(-ik(r-r_c)^T d) ds(d) where S^2 is the unit sphere, f(d) is the function, r is the position, r_c is the expansion center, d is the incoming direction of the plane wave, k is the wave number, and ds(d) is the surface element of the sphere.

Parameters:
  • dir_func (function) – A function that takes direction unit vectors, ndarray of shape (num_points, 3) and returns a complex value response of shape (num_points)

  • pos (ndarray of shape (num_pos, 3)) – The position where

  • exp_center (ndarray of shape (1,3)) – The center of the expansion

  • wave_num (float) – The wave number of the plane wave

  • rng (numpy.random.Generator) – The random number generator to use

Returns:

est – The estimated value of the integral evaluated at all the supplied positions

Return type:

ndarray of shape (num_pos,)

Notes

Same definition is (9) in Ribeiro 2023, but with a sign difference in the complex exponential, and without an expansion center.

Performs the integration using Monte Carlo integration. For computational cost sensitive applications, there are more efficient methods available, such as using a Lebedev quadrature.