-
Notifications
You must be signed in to change notification settings - Fork 172
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
Species supercycling #4774
base: development
Are you sure you want to change the base?
Species supercycling #4774
Conversation
based on t/dt, which seems potentially error-prone. would be best to pass the iteration directly
for more information, see https://pre-commit.ci
…WarpX into species-supercycling
for more information, see https://pre-commit.ci
Overall, this looks good. Is this intended for electrostatic or electromagnetic? |
Thanks for taking a look! This is currently intended only for electrostatic. I added a check in |
Thanks for pointing this out. I thought that was handled in |
If I'm understanding the charge deposition for the electrostatic solver correctly (looking at If that's correct, then I think this PR is fine without that, and perhaps a future PR could address that part. |
@dpgrote @lucafedeli88 I think I've addressed all the comments. Let me know if there's anything else you'd like me to change! |
Looks like clang-tidy is still failing, but I don't think it's anything I've done, the error seems to be
Looks like this was introduced in this PR. I've fixed it in this one. |
Comment by @jlvay in the developer meeting: |
This PR adds the ability to advance different species at different multiples of the provided
const_dt
. It introduces two new parameters,<species>.do_supercycling
and<species>.supercycling_interval
, which determine whether the provided species is to be supercycled, and the interval (in terms of iterations) at which they are to be advanced. It also updates the PICMI species interface to support these parameters. This is useful in cases where the dynamics of interest are dominated by a lighter species which must be advanced at a much smaller timestep (i.e. electrons in an electron-ion plasma), while allowing ions or other heavier species to advance at a much larger timestep.This is my first PR, so let me know if I'm missing anything critical or if there's a better way to handle this than how I implemented it!