Skip to content

Latest commit

 

History

History
50 lines (31 loc) · 1.88 KB

README.md

File metadata and controls

50 lines (31 loc) · 1.88 KB

QuasiPeriodicHelmholtz.jl

Dev Build Status Coverage

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,y) $$

    G(x::SVector{2},y::SVector{2},dx::SVector{2})

computes

$$ \left(dx \cdot \frac{\partial }{\partial x}\right) G(x,y) $$

    G(x::SVector{2},y::SVector{2},dx::SVector{2},dy::SVector{2})

computes

$$ \left(dy \cdot \frac{\partial }{\partial y}\right) \left(dx \cdot \frac{\partial }{\partial x}\right) G(x,y) $$

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.