-
Notifications
You must be signed in to change notification settings - Fork 195
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
Implicit add filtering #5086
Implicit add filtering #5086
Conversation
Source/Evolve/WarpXEvolve.cpp
Outdated
if (use_filter) { ApplyFilterJ(current_fp_vay, lev); } | ||
if (use_filter) { ApplyFilterMF(current_fp_vay, lev); } | ||
} |
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.
Should ApplyFilterJ() be different than applying a filter for E or B when using curvilinear geometries?
I believe the filter should be applied to the current before dividing by the volume element to convert to current density. Perhaps this is being done somewhere else?
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.
You are probably correct, but filtering doesn't work for RZ as it is now (at least for FDTD). As it is now, the inverse volume scaling is done before the filtering. That order could be changed but that would need to be a separate PR.
This looks good to me. We could also add filtering to the magnetic field as an option. That should probably be a separate PR though. |
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.
Thanks Dave for this PR!
This adds filtering to the implicit solver, replacing PR #4600.
It is a simple change. All that is needed is adding a call to filter the
Efield_fp
just before the particles are pushed. The current density is already filtered inSyncCurrentAndRho
.The name of the routine
ApplyFilterJ
was changed toApplyFilterMF
since it now has a more general usage.