This is an experimental package to compute quasi-periodic Green's functions for the Helmholtz equation in 2D.
It implements the tail end summation correction to compute the quasi-periodic Green's function
G = GreensFunction()
using the method of 'Acoustic scattering from a one-dimensional array; Tail-end asymptotics for efficient evaluation of the quasi-periodic Green’s function, 2019, Georgia M. Lynott, Victoria Andrew, I. David Abrahams, Michael J. Simon, William J. Parnell, Raphaël C. Assier, Wave Motion' doi
Dispatch is used to return derivatives and decompositions of a Green's function in the following way:
G(x::SVector{2},y::SVector{2})
computes
G(x::SVector{2},y::SVector{2},dx::SVector{2})
computes
G(x::SVector{2},y::SVector{2},dx::SVector{2},dy::SVector{2})
computes
Partial support is provided for a decomposition of the form
G(x::SVector{2},y::SVector{2}) = sum(G(n,x,y)*(y-x)^(-n)/pi for n in 0:2) + G(:log,x,y)*log(norm(y-x))/pi
where G(n,x,y)
is analytic at x=y
. This is intended for combination with the SingularIntegralEquations.jl package.