IntegralEquations / IFGF.jl

MIT License
5 stars 0 forks source link

Add specific kernels with a simplified API #36

Closed maltezfaria closed 8 months ago

maltezfaria commented 8 months ago

While IFGF is (mostly) a kernel-independent method, efficiently implementing your custom kernel requires some work. It would be nice to provide a simple way to compute e.g. single- and double-layer operators for some important and commonly used PDEs such as

We can either have many different function names, such as

k = 2
L = helmholtz3d_single_layer(X, Y, k; tol)

or a single constructor but some other structs to dispatch to the right kernel and some specialized methods

pde = Helmholtz(;dim=2,k=2)
K = SingleLayerKernel(pde)
L = assemble_ifgf(K, X, Y; tol)

I have a slight preference for the second approach.

maltezfaria commented 8 months ago

Done in #37 for a few of the PDEs mentioned. Extending to other PDEs probably deserves its own PR/issue.