Press Align 2D-Helmholtz code and introduce 1D-SauterSchwab
First step in refactoring Helmholtz2D matching the structure of Helmholtz3D code: For now limited to providing a module based interface similar to BEAST.Helmholtz3D
TODO:
- Match operator types to Helmholtz3D case (i.e., SingleLayer -> HH2DSingleLayerFDBIO etc)
- Provide alpha (and beta) pre-factor for operators
- Use gamma instead of wavenumber WARNING: Unlike 3D case, we have different kernels for gamma = 0 and gamma =
- Excitations need to be adapted
- Evaluation of potentials is entirely missing
Use Ma-Rokhlin-Wandzura and Sauter-Schwab for 2D Integral Operators
Sauter and Schwab describe in Example 5.2.3 a technique to remove the singularity from a 2D-Kernel (as a motivation for the 3D surface integral equation technique).
However, due to the logarithmic singularity, the higher-order derivatives still contain a singularity. We therefore combine there technique with the Ma-Rokhlin-Wandzura quadrature.
Similar ideas have been presented in the Master thesis "2D Electromagnetic field MoM calculations using well-conditioned higher order polynomials" by Denturck under the supervision of Bogaert.
This looks great. Is there any way to avoid the seemingly identical duplications in sauterschwabint.jl?
Thanks, at first I wanted to reuse the code as much as possible, but then I noticed some problems ... we can discuss it with Simon
I have add a 1D version of permute_vertices in CompScienceMeshes (See https://github.com/krcools/CompScienceMeshes.jl/pull/49)
I think once this is merged we are able to reuse all of the code.