volumential.wranglers.helmholtz_split#

Helmholtz near-field split correction for the sumpy backend.

Owns everything behind helmholtz_split: choosing the split order from the box-scaled wave number, building/validating the per-term near-field tables, the series-remainder P2P, the smooth correction sources, and the diagonal limit of the self interaction.

class volumential.wranglers.helmholtz_split.HelmholtzSplitCorrectionMixin[source]#

Bases: object

Near-field Helmholtz split correction, mixed into the sumpy wrangler.

get_helmholtz_split_cache_accounting(parameter_count: int = 1) → HelmholtzSplitCacheAccounting[source]#

Return table-storage accounting for Helmholtz/Yukawa split mode.

eval_direct_helmholtz_split_correction(target_boxes: Any, neighbor_source_boxes_starts: Any, neighbor_source_boxes_lists: Any, src_weights: Any, src_func=None, _split_out_kernel=None) → Any[source]#

Near-field correction that the Helmholtz split leaves to be added.

With helmholtz_split off this is a no-op returning zeros. Otherwise it sums the per-term table contributions, the series remainder and the smooth correction for the active target kernels.