Skip to content

Add proxybylevel option to chunkerflam and chunkerkerneval #112

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 5 commits into from
Mar 26, 2025

Conversation

pbeckman
Copy link
Contributor

Introduces a proxybylevel boolean option to chunkerflam and chunkerkerneval which, if true, adaptively computes the number of necessary proxy points separately at each level during relevant FLAM routines. This is needed for moderate to high frequency oscillatory problems (see #85), since the number of points needed to resolve oscillations in the kernel is smaller for smaller boxes.

I've tested this for Helmholtz (see the devtools/test/flamproxybylevelTest.m script), and it speeds up the FLAM rskelf and rskel routines on domains which are tens to a few hundred wavelengths by an approximately $O(k)$ factor.

This does require minor modifications to FLAM itself. I've forked FLAM under the fastalgorithms org and pushed my changes to https://github.com/fastalgorithms/FLAM. I'm not a submodule expert, so please let me know the best way to point the chunkie/FLAM submodule to this fork.

@askhamwhat
Copy link
Member

@pbeckman sorry for the delay. Can you add the other files to the fastalgorithms fork of FLAM? I think only ifmm.m was updated. Thanks!

@pbeckman
Copy link
Contributor Author

@askhamwhat sorry about that -- everything should be pushed to fastalgorithms/FLAM.

@mrachh
Copy link
Member

mrachh commented Feb 1, 2025

Dear Paul, this looks great! Most of the tests pass, but there are a couple of tests failing in the pull request after the latest pull of FLAM from fast algorithms. In particular, the following tests seem to fail:
chunkerkerneval_greenlapTest: failure to find targsflam in chnk.chunkerkerneval_smooth
flamopdimsTest: issue in matrix multiplication compatibility in chnk.flam.nproxy_square

Could you fix those and I think we should be able to pull this in? Also the FLAM and fmm2d in your commit are not current. Could you update them in the next commit? I don't think I'm allowed to push those changes directly to this pull request..

Thanks.

@askhamwhat askhamwhat self-requested a review March 26, 2025 01:04
Copy link
Member

@askhamwhat askhamwhat left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

looks good. all tests pass

@askhamwhat askhamwhat merged commit 559b06c into fastalgorithms:master Mar 26, 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