Skip to content

ODELineTaylorLocalExpansion - #317

Open
ShawnL00 wants to merge 9 commits into
inducer:mainfrom
ShawnL00:ODELineTaylorLocalExpansion
Open

ShawnL00 wants to merge 9 commits into
inducer:mainfrom
ShawnL00:ODELineTaylorLocalExpansion

Conversation

@ShawnL00

@ShawnL00 ShawnL00 commented Nov 1, 2026 •

Copy link
Copy Markdown
Collaborator

This adds ODELineTaylorLocalExpansion for direct QBX evaluation of kernels of the form $G(z) = g(q)$, where
$q = |z|^2$. It derives an ODE for $g$ from the kernel’s PDE and uses it to construct a recurrence for the line Taylor expansions.

  • Supported base kernels include Laplace, Helmholtz, Yukawa, and biharmonic kernels in 2D and 3D.
  • Linear combinations of source and target operators that share the same base kernel are supported.

One example:

base_kernel = LaplaceKernel(3)

source_kernels = (
    base_kernel,
    *(AxisSourceDerivative(axis, base_kernel) for axis in range(3)),
)
target_kernels = (
    base_kernel,
    AxisTargetDerivative(0, base_kernel),
)

expansion = ODELineTaylorLocalExpansion(
    base_kernel, order=8, target_kernels=target_kernels)

lpot = LayerPotential(
    expansion=expansion,
    target_kernels=target_kernels,
    source_kernels=source_kernels)

The existing QBX, jump-relation, target-derivative, and matrix-generation tests now include the new expansion. Additional circle tests cover the biharmonic single layer and Laplace hypersingular operator.

Todo:

  • Support matrix kernels.
  • Support operators involving multiple base kernels.
  • Automatically reduce the ODE order when possible, e.g., using a lower-order ODE for biharmonic kernels.
  • Support for user-supplied ODEs.
  • Extend the recurrence to mixed-derivative expansions for FMM support.

@ShawnL00
ShawnL00 marked this pull request as ready for review November 1, 2026 03:31
@ShawnL00
ShawnL00 force-pushed the ODELineTaylorLocalExpansion branch from 47f3b0f to 4bfc54e Compare November 2, 2026 02:04
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.

1 participant