Skip to content

Press Align 2D-Helmholtz code and introduce 1D-SauterSchwab#156

Closed
PioterAdam wants to merge 1 commit intokrcools:masterfrom
PioterAdam:feature/refactor_helmholtz2d_4
Closed

Press Align 2D-Helmholtz code and introduce 1D-SauterSchwab#156
PioterAdam wants to merge 1 commit intokrcools:masterfrom
PioterAdam:feature/refactor_helmholtz2d_4

Conversation

@PioterAdam
Copy link
Copy Markdown

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.

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 = <realnumber>
 - 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.
@krcools
Copy link
Copy Markdown
Owner

krcools commented Apr 17, 2025

This looks great. Is there any way to avoid the seemingly identical duplications in sauterschwabint.jl?

@PioterAdam
Copy link
Copy Markdown
Author

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

@sbadrian
Copy link
Copy Markdown
Contributor

I have add a 1D version of permute_vertices in CompScienceMeshes (See krcools/CompScienceMeshes.jl#49)

I think once this is merged we are able to reuse all of the code.

@PioterAdam PioterAdam closed this Aug 15, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants