Extend kernel-split forcewlchs to Stokes velocity SLP/DLP/Strac#175
Open
danfortunato wants to merge 1 commit into
Open
Extend kernel-split forcewlchs to Stokes velocity SLP/DLP/Strac#175danfortunato wants to merge 1 commit into
danfortunato wants to merge 1 commit into
Conversation
Builds on PRs #172 and #174 (Laplace, Helmholtz). Adds Stokes support to the chunkermat forcewlchs framework. Stokes velocity kernels are 2x2 opdims; each (xx, xy, yx, yy) sub-block gets an independent kernsplit self/adjacent correction. New chnk.kernsplit Stokes routines: * sto2d_self_correction, sto2d_adj_correction, sto2d_panel_eval. Each dispatches on the sub-block type (svel_xx, svel_xy, ..., dvel_xx, ..., strac_xx, ...). chunkermat changes: * wlchs_kernel_family recognizes 'stokes'. * wlchs_has_self_correction adds Stokes sub-block types. * wlchs_self_correction_dispatch / wlchs_adj_correction_dispatch route to sto2d_*_correction (mu passed through spec.mu). * wlchs_kernel_eval computes the full Stokes 2x2 kernel and extracts the requested sub-block. * wlchs_extract_scalar accepts 'stokes' family (mu in `param`). * Boolean form: kern is a 2x2 stok2d kernel (type s/svel, d/dvel, strac); layout is populated automatically across the 4 sub-blocks. * Struct form: per-entry mu may be specified at top level (`fw.mu`) or per layout entry. Test: devtools/test/chunkermat_stok_forcewlchsTest.m exercises chunkermat forcewlchs for svel and dvel on a unit-circle Stokes problem; checks operator action (vs default GGQ) and Frobenius norms agree to ~1e-9, plus the D*1 = -1/2 interior-trace identity to 1e-12. Original implementation contributed by sj90101 <sj90101@gmail.com>. Co-authored-by: sj90101 <sj90101@gmail.com>
This was referenced May 17, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Builds on #172 (Laplace) and #174 (Helmholtz) and adds Stokes velocity layer-potential support to the
chunkermatforcewlchs framework. Stokes velocity kernels are 2x2 in opdims; each(xx, xy, yx, yy)sub-block gets an independent kernsplit self/adjacent correction.What's included
chnk.kernsplitStokes routines:sto2d_self_correction,sto2d_adj_correction,sto2d_panel_eval. Each dispatches on the sub-block type (svel_xx, ...,dvel_xx, ...,strac_xx, ...).chunkermat(forcewlchs):wlchs_kernel_family,wlchs_has_self_correction,wlchs_*_dispatch,wlchs_kernel_eval,wlchs_extract_scalarextended with Stokes cases (mupassed throughspec.mu).stok2dkernel (types/svel,d/dvel,strac) auto-populates the 4 sub-block layout cells.fw.mumay be specified at top level, or per layout entry.Test plan
devtools/test/chunkermat_stok_forcewlchsTest.m(new) — verifiesforcewlchsStokes svel and dvel agree with default GGQ at ~1e-9 (operator action) on a unit-circle problem, plus theD*1 = -1/2interior-trace identity to 1e-12.chunkermat_lap_forcewlchsTest,chunkermat_helm_forcewlchsTest) still pass.Notes