-
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
CMake: WarpX_PSATD
-> WarpX_FFT
#4912
Conversation
Rather than breaking the build interface, could a new flag |
Hi Dave, We (cc @RemiLehe , @aeriforme) thought initially to delay the break by making For your idea to have PSATD control separately, I would be inclined to not add this. The reason is as follows: we do not really want to separately control if PSATD is compiled or not - we want it available all the time ideally. The primary reason we had the old flag, and name it now FFT, is that we want to be able to build versions of WarpX with limited/simplified dependencies. As a follow-up PR, I would also try to default-enable WarpX_FFT (as in openPMD and ADIOS2 build flags that are We will also as a follow-up add a flag for |
This is all good. I'm just trying to avoid API breaking changes. Also, note that with my suggestion, this PR would be substantially smaller since none of the hpc scripts, none of the yml files, and none of the spectral solver code would need to be changed. Also, keeping PSATD separate from FFT would make it easier to later remove the PSATD flag since it doesn't directly depend on a third party package (but only via FFT). |
Understood. Yes, that was my initial inclination as well (my suggestion: keep an alias around for a few releases) before I spoke with @RemiLehe and @aeriforme .
Changes that are not user-facing are no problem per se, but HPC scripts and docs are user-facing here. For CI and other non-user-facing scripts, I can put them in smaller commits for the PR to review easier.
I think the argument that @RemiLehe made was if we do continue to advertise the PSATD flag, then people will just have the same breakaging change later. Shall we chat more in the weekly developer meeting which transition path we prefer? |
Discussed today: |
Rename `WarpX_PSATD` to `WarpX_FFT` in the build configuration options. We now use FFTs for more than the PSATD solver since the introduction of the IGF solver for electrostatic simulations.
We keep the flag `WarpX_PSATD` as an alias around for a few releases before we drop it.
@dpgrote @RemiLehe @aeriforme this is ready now as we discussed :) We keep the flag |
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.
I can approve.
* CMake: `WarpX_PSATD` -> `WarpX_FFT` Rename `WarpX_PSATD` to `WarpX_FFT` in the build configuration options. We now use FFTs for more than the PSATD solver since the introduction of the IGF solver for electrostatic simulations. * Change Define: `WARPX_USE_PSATD` * GNUMake: `USE_PSATD` -> `USE_FFT` * Temporary backwards compatibility We keep the flag `WarpX_PSATD` as an alias around for a few releases before we drop it.
Rename
WarpX_PSATD
toWarpX_FFT
in the build configuration options. We now use FFTs for more than the PSATD solver since the introduction of the IGF solver for electrostatic simulations.