aboutsummaryrefslogtreecommitdiff
path: root/Source/FieldSolver/SpectralSolver/SpectralFieldData.cpp (follow)
AgeCommit message (Collapse)AuthorFilesLines
2020-07-20Vay current deposition (#1051)Gravatar Edoardo Zoni 1-7/+6
* Added stub for current correction in RZ spectral solver * Start implementation of Vay deposition * Continue implementation of Vay deposition * Correct deposition of D * Add phase shift for staggered currents * Small clean-up * Fix units in deposition of D * Implement average of cumulative sum (needs bug fix) * Start fixing bug in average of cumulative sum * Still debugging * Cumulative sums should be correct now * Subtract averages of cumulative sums: - current implementation: cumulative sums, inverse Fourier transform, subtraction of averages - needs to be tested (including units of D after Vay deposition) - needs to be shortened (too many loops over boxes and ParallelFors) * [skip CI] Clean up and fix units * Still fixing units * [skip CI] Remove temporarily averages of cumulative sums * [skip CI] Remove distinction between staggered and nodal * Vay and Esirkepov similar results on periodic single box: TODO: - debug (charge not conserved); - try using compute_shifted_shape_factor as in Esirkepov deposition; - clean up; - try on multiple boxes and with correction of mode at 0 frequency. * [skip CI] Clean up * Fix bug in 3D deposition * [skip CI] Clean up * Fix 2D and 3D implementation: - simulation results agree between direct and Vay deposition in both 2D and 3D - Travis CI tests should pass except for check of charge conservation (debug) * Small clean-up * Fix bug when compiling in RZ geometry * Add benchmark json files (will be reset later) * Do not set zero current at zero frequency * [skip CI] Revert last commit and clean up * Fix small bug after reverting commit * Set nodal test first on Travis * Fix benchmark for nodal test in 3D * Fix particle output for nodal test in 3D * Fix bugs due to staggering * Rename current nodal Travis tests * Add Travis tests staggered in 2D and 3D * Further clean-up after bug fix * Abort when using Vay deposition with domain decomposition * Add optional argument of index type to forward FFT * Fourier shifts can be private members as before * Small clean-up * Clean up and improve Doxygen documentation * Fix small bug in analysis script for 2D tests * Fix tests (remove E and B fields from particle diags) * Add option to fill guard cells and docs * Fix value of last guard cell by enforcing periodicity * Revert changes merged from #1121 * Clean up style * Improve docs * Fix forgotten alignment * Improve docs * Make base class functions VayDeposition pure Co-authored-by: Dave Grote <dpgrote@lbl.gov>
2020-05-29Encapsulate FFTs (#1055)Gravatar MaxThevenet 1-204/+14
* wrap fft libraries * implementation in cpp to avoid duplicate symbole * delete some fftw code * further cleaning * typo * pass fft plans by reference * fix bug due to typo. Dammit, macros sometimes make it hard * FFT wrapper also support cuFFT (not tested yet) * eol * further cleaning * fix cuFFT, tested on Summit * clean WarpX Complex checks * pass directly the IntVect instead of the components (what were you thinking?) * add some amrex prefix * add a few const * Should not need an FFT library to compile FDTD * gather all FFT header files into one. * eol * minor changes in code comments. * let dimension be chosen at runtime instead of at compile-time * fix compilation on GPU * add description to the wrapper namespace
2020-05-08Fix bug for PSATD momentum-conserving runs (#965)Gravatar Remi Lehe 1-2/+2
* Relax PSATD check on boxes, so that PSATD momentum-conserving can be used * Increase tolerance of test * Add automated tests for momentum-conserving PSATD
2020-04-03Avoid i%1 in a lambda, gives compiler segfault (#892)Gravatar MaxThevenet 1-6/+11
* avoid i%1 in a lambda, gives compiler segfault * add 1 comment * Update Source/FieldSolver/SpectralSolver/SpectralFieldData.cpp * explicit capture by value * Update Source/FieldSolver/SpectralSolver/SpectralFieldData.cpp Co-Authored-By: Axel Huebl <axel.huebl@plasma.ninja> Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
2020-04-02Periodic, single-box FFT (#881)Gravatar Remi Lehe 1-7/+34
* Implement periodic-single box option for spectral * Fix out-of-bound in the periodic, single-box case * Add documentation for periodic_single_box_fft
2020-03-13PSATD Single precision (#805)Gravatar MaxThevenet 1-29/+99
* fix compilation for single precision PSATD with USE_GPU * compiles and tested on CPU also * add sentence to doc: FFTW needs to be compiled with single precision option * add test, better pre-proc directives indent, clearer ifdef * use using whenever possible * indent * fix TravisCI matrix, and improve matrix test * need to compile with same precision for fields and particles
2020-02-25Includes: Clean Up (#743)Gravatar Axel Huebl 1-1/+5
- Use `""` for WarpX-local includes - Order: WarpX `""`, AMReX `<>`, other third party includes `<>` - Add dir prefixes for WarpX Add order to includes by including from `Source/` onward and keeping directory prefixes of non-local includes for clarity.
2020-02-19[mini-PR] when a cufft error occurs, print a meaningful error message (#728)Gravatar Luca Fedeli 1-6/+43
* added method to translate cufft errors * fixed style * bug fixing
2020-01-27Automatically add copyright header with update_copyright.shGravatar Tools 1-0/+7
2019-12-15Doxygen: add amrex:: prefix for function arguments in cpp filesGravatar MaxThevenet 1-4/+4
2019-07-22Merge branch 'dev' into psatd_pmlGravatar Remi Lehe 1-7/+66
2019-06-24Only copy FFT data to the valid boxGravatar Remi Lehe 1-21/+22
2019-06-06 Included revisions as suggested in the PRGravatar Revathi Jambunathan 1-7/+9
2019-06-06 adding 2D cufft plansGravatar Revathi Jambunathan 1-8/+13
2019-06-06cleaning code for spectral cufft for 3DGravatar Revathi Jambunathan 1-31/+19
2019-05-14 changed made after merging with lastest dev versionGravatar Revathi Jambunathan 1-8/+10
2019-05-08temporary print files for debuggingGravatar Revathi Jambunathan 1-34/+18
2019-05-06Added cuFFT kernels -- debugging error in rho values before forward transformGravatar Revathi Jambunathan 1-1/+78
2019-05-02Start implementation of spectral PMLGravatar Remi Lehe 1-3/+3
2019-05-01Fix FFT sizeGravatar Remi Lehe 1-5/+8
2019-05-01Fix normalizationGravatar Remi Lehe 1-6/+8
2019-05-01Implement Real-to-complex FFTGravatar Remi Lehe 1-12/+12
2019-04-29Merge branch 'dev' into fix_spectralGravatar Remi Lehe 1-42/+11
2019-04-29Update structure for storing spectral fieldsGravatar Remi Lehe 1-41/+11
2019-04-28Fix more 2D bugsGravatar Remi Lehe 1-2/+7
2019-04-24Correct out-of-bounds with real-space boxGravatar Remi Lehe 1-4/+2
2019-04-23Add comments ; copy only to valid boxGravatar Remi Lehe 1-27/+27
2019-04-23Switch and rename the shift factorsGravatar Remi Lehe 1-26/+41
2019-04-23Remove bug in Fourier transformGravatar Remi Lehe 1-1/+1
2019-04-23Fix a few bugGravatar Remi Lehe 1-7/+32
2019-04-23Apply shift factorsGravatar Remi Lehe 1-9/+36
2019-04-23Add break statementsGravatar Remi Lehe 1-12/+12
2019-04-23Added shift functionGravatar Remi Lehe 1-0/+8
2019-04-23Fix error with 2D spectral solverGravatar Remi Lehe 1-1/+1
2019-04-23Implement spectral solver in 2DGravatar Remi Lehe 1-7/+12
2019-04-23Normalize inverse FFTGravatar Remi Lehe 1-1/+4
2019-04-23Transform rho_old and rho_newGravatar Remi Lehe 1-4/+6
2019-04-23Fix runtime errorsGravatar Remi Lehe 1-5/+7
2019-04-23Define SpectralSolver classGravatar Remi Lehe 1-0/+186