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.