You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
While PR #95 implements the spectral solver, it does not link the code to cuFFT. It would be great to add the corresponding code for cuFFT.
Here are a few resources that may help:
Compiling the code with the spectral solver + GPU: This link explains how to compile the code with the spectral solver (on CPU).
The documentation also explains how to compile the code for GPU on a local machine and on Summit
Currently, there is of course no documentation on how to do both (spectral+GPU), since WarpX is not currently able to do so. One would probably have to add a variable CUFFT_HOME in Make.WarpX, similar to FFTW_HOME for CPU.
Implementation: There are placeholders for cuFFT code in PR Implement PSATD solver in C++ #95, in Source/FieldSolver/SpectralSovler/SpectralFieldData.cpp
Testing the code: One possibility is to use the files inputs.multi.rt (to test the 3D implementation) and inputs.multi.2d.rt (to test the 2D implementation), in Examples/Tests/Langmuir:
where warpxXXexecutable should be replaced by the proper executable name (in the Bin folder). In each case, the second line checks the validity of the results (the Python script will raise an AssertionError if the results are not physically valid.)
The text was updated successfully, but these errors were encountered:
While PR #95 implements the spectral solver, it does not link the code to cuFFT. It would be great to add the corresponding code for cuFFT.
Here are a few resources that may help:
Compiling the code with the spectral solver + GPU:
This link explains how to compile the code with the spectral solver (on CPU).
The documentation also explains how to compile the code for GPU on a local machine and on Summit
Currently, there is of course no documentation on how to do both (spectral+GPU), since WarpX is not currently able to do so. One would probably have to add a variable
CUFFT_HOME
inMake.WarpX
, similar toFFTW_HOME
for CPU.Implementation: There are placeholders for cuFFT code in PR Implement PSATD solver in C++ #95, in
Source/FieldSolver/SpectralSovler/SpectralFieldData.cpp
Testing the code: One possibility is to use the files
inputs.multi.rt
(to test the 3D implementation) andinputs.multi.2d.rt
(to test the 2D implementation), inExamples/Tests/Langmuir
:where
warpxXXexecutable
should be replaced by the proper executable name (in theBin
folder). In each case, the second line checks the validity of the results (the Python script will raise anAssertionError
if the results are not physically valid.)The text was updated successfully, but these errors were encountered: