Skip to content
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

Add proxybylevel option to chunkerflam and chunkerkerneval #112

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

pbeckman
Copy link

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
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.

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