Skip to content

Locally corrected trapezoidal rule for Laplace, Helmholtz, and Stokes potentials on curves in 2D

License

Notifications You must be signed in to change notification settings

bobbielf2/ZetaTrap2D

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

High-order locally corrected trapezoidal rule for boundary integral operators in 2D

This is the MATLAB code for the "zeta-corrected quadrature" accompanying the paper:

  • B. Wu and P.G. Martinsson, Zeta Correction: A New Approach to Constructing Corrected Trapezoidal Rules for Singular Integral Operators. (2020, arxiv)

It contains corrected trapezoidal rules that are stable and high-order accurate for the Laplace, Helmholtz and Stokes layer potentials on smooth closed curves.

Author: Bowei Wu, 2020/7, updated 2021/1

  • Also contain supporting functions modified from Alex Barnett's BIE2D package

  • See also the related ZetaTrap3D code for surface integrals.

Note on dependency:

Zeta corrections of orders up to 42 use precomputed weights. (They correspond to inputs k <= 21 to the kapur_rokhlin_sep_log.m function.) For corrections of higher orders, the vpa function from Symbolic Math Toolbox is required. (The test files in this repository don't require the Symbolic Toolbox.)

Example

Here are some example outputs from the test files solving Stokes and Helmholtz exterior boundary value problems using high-order zeta quadratures. Convergence is shown against the number of points used on the boundary.

Description of the main test files:

  • test_sto2d_bie.m : solution of the Stokes Dirichlet problem exterior to a closed curve. This routine contains a convergence test.
  • test_helm2d_bie.m : solution of the Helmholtz Dirichlet and Neumann problems exterior to a closed curve. This routine contains convergence tests.

Supporting functions:

  • kapur_rokhlin_sep_log.m : Use the "zeta connection" to compute the correction weights of the "separable" Kapur-Rokhlin quadrature. (see Table 7 of Kapur and Rokhlin (1997))
  • LapSLPslef.m: construct matrix or give values associated with Laplace single-layer potential using native quadratures. Self-interaction is evaluated using the zeta-corrected quadrature.
  • HelmSLP.m, HelmDLP.m, HelmSLPn : construct matrices or give values associated with Helmholtz layer potentials using native quadratures. Self-interactions are evaluated using the zeta-corrected quadrature.
  • setupquad.m, StoSLP.m, StoDLP.m are (modified) functions from BIE2D

TODO: add doc for hypersingular quadrature

About

Locally corrected trapezoidal rule for Laplace, Helmholtz, and Stokes potentials on curves in 2D

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages