-
Notifications
You must be signed in to change notification settings - Fork 191
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
Fix bug with MLMG solver, always pass ghost cells to SumBoundary
#4078
Conversation
SumBoundary
SumBoundary
SumBoundary
SumBoundary
Something to double-check in ImpactX, too? |
@lijiangdong1999 |
Thanks for your reply. But I use spack to install warpx, I can't find the "Source/Particles/WarpXParticleContainer.cpp". |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Add inline comments on possible performance optimization.
For future reference, on this input deck, the MLMG solver fails on the |
Following up on a bug raised by @aeriforme related to the convergence of the MLMG solver, and based on a comment posted on Slack by @WeiqunZhang (channel #general, May 30, 2023),
let's try to keep only the most general version of
SumBoundary
(the last one among the three shown below)WarpX/Source/ablastr/utils/Communication.H
Lines 85 to 102 in f30799b
and request that developers pass the number of source and destination ghost cells explicitly, each time.
@aeriforme @WeiqunZhang
Do you have a workflow to test this PR on the MLMG convergence bug? Did you expect
SumBoundary
to be called in many other parts of the code? I found only a few instances related to the deposition of the charge density rho, and I'm not sure which one(s) of these should userho->nGrowVect()
instead ofamrex::IntVect(0)
asdst_ng
in order to fix the MLMG convergence bug. Do you know?@ax3l @RemiLehe
Please feel free to comment or suggest alternative solutions.
Here I'm trying to implement @WeiqunZhang's idea above.