Age | Commit message (Collapse) | Author | Files | Lines |
|
* Do Not Always Fill Guard Cells with Inverse FFTs
* Query psatd.fill_guards from Inputs
* Clean Up and Reduce Style Changes
* Fix Bug for Periodic Single Box
* Clean Up and Reduce Style Changes
* Fix Bug for RZ PSATD
* Remove Input Parameter, Default 0 Unless Damping
* Fix CI Tests (2D)
* Fix CI Tests (3D)
|
|
|
|
* fix readability-container-size-empty warning raised by clang-tidy
* fix bug
|
|
* CMake: Find out if FFTW supports OpenMP
Add a heuristics that also works with PkgConfig to query
OpenMP support in FFTW. Enable by default if we build with the
OpenMP compute backend unless explicitly disabled.
Add a macro to control the source-code, since FFTW does not offer
a public define for this.
* FFTW: Initialize Threads
Co-authored-by: Severin Diederichs <severin.diederichs@desy.de>
Co-authored-by: Severin Diederichs <severin.diederichs@desy.de>
|
|
* Introduce new option skip_deposition
* Properly implement the option to skip deposition
* Skip deposition for electrostatic solver
* Correct typo
* Add Index Enumerator and Equations for F/G Without Averaging
* Define new functions for current deposition and charge deposition
* Disable interpolation between levels
* Correct compilation error in RZ mode
* Add argument for relative time
* Add Index Enumerator and Equations for F/G With Averaging
* [skip ci] Add new OneStep function
* Fix compilation errors
* Correct more compilation errors
* [skip ci] Fix compilation
* Split the PSATD push into separate functions
* Add guards for rho field
* [skip ci] Use new functions in OneStep
* [skip ci] Separate the inverse transform of E_avg, B_avg
* Add deposition of rho
* [skip ci] Prevent deposition of rho if unallocated
* Fix error in deposition function
* Add subcycling of current deposition
* [skip ci] Add inverse transform of averaged fields
* [skip ci] Move component of rho
* Add function to copy J
* Temporarily deactivate contribution from F
* [skip ci] Implement call to linear in J
* Add psatd time averaging for multiJ
* [skip ci] Fix implementation of averaging
* [skip ci] Implement divE cleaning
* Fix Bug for RZ Builds
* Fix Bug for RZ Builds
* Fix Bug in Init of PML Spectral Solvers
* Cleaning
* Cleaning
* Add div(B) Cleaning (G Equation)
* Multi-J Not Implemented with Galilean PSATD or PMLs
* Add 2D CI Test Using Multi-J Scheme
* Add More Inline Comments
* Add More Inline Comments & Doxygen
* Add Doxygen for Constructor of SpectralSolver
* More Doxygen in Class SpectralSolver
* Add Doxygen for New Functions in WarpXPushFieldsEM.cpp
* Add Doxygen for New Functions in WarpX/MultiParticleContainer
* do_dive/b_cleaning Must Be True With linear_in_J Option
* Cast multij_n_depose to Real in Divisions
* New Input Syntax
* Add const where Possible, Fix Warnings
* Docs for New Input Syntax, Fix Abort Messages
* Consistent Use of Idx, IdxAvg, IdxLin
* Improve Documentation of psatd.J_linear_in_time
* Use const Type Qualifier whenever Possible
* Simplify Initialization of Pointer ion_lev
* Improve Doxygen
* Update documentation
* Add Note on NCI to Docs
* Make warpx.do_multi_J_n_depositions Not Optional
* Simplify Logic in getRequiredNumberOfFields
* Use More const Type Qualifiers
Co-authored-by: Edoardo Zoni <ezoni@lbl.gov>
|
|
* initial tests with IWYU
* added a couple of forward declarations
* used iwyu on more files
* progress
* used iwyu on more files
* progress with iwyu
* progress with iwyu
* fixed bug
* progress with iwyu
* progress with IWYU
* progress with IWYU
* fixed bug
* fixed bug
* progress with IWYU
* progress with IWYU + use forward declarations in WarpX.H
* first try with .def files
* fix bugs
* progress with IWYU
* progress with IWYU
* progress with iwyu
* correct copyright
* fixed bug
* fixed bugs
* fix missing include
* fixed bug
* fix bug
* fix bug introduced during last bugfix
* use iwyu on newly added files
* add space
* fix bug
* fix missing include
* fix missing include
* fix missing include
* fixed bugs
* fixed bug
* attempt at fixing issue with math functions
* added missing include
* fixed missing include
* using _fwd.H
* fixed bug
* progress with iwyu
* update AMReX branch
* enforce alphabetic order
* progress with iwyu
* use right version of amrex
* use right version of amrex for tests
* fixed bug
* fix another bug
* fix missing include
* fix missing include
* fix missing include
* updated amrex
* initial work to document new include strategy
* updated documentation
* Fix rst & private includes
* Remove accidentially added files
* Fix rst code blocks
* one more rst block
Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
|
|
Fix a build error with the latest AMReX version due to a missing include.
|
|
Work-around for:
```
Source/FieldSolver/SpectralSolver/SpectralAlgorithms/GalileanPsatdAlgorithmRZ.cpp(145):
error #2985: identifier "PhysConst::ep0" is undefined in device code
```
|
|
* Loop Over Full Box in Inverse FFTs
* Enable Fields Damping in Cartesian Geometry
* Minimize Style Changes
* Fields Damping: Fix Tileboxes For General Case
* Clean Up
* Assume Periodicity For Last Nodal Point in Inverse FFTs
* Update Benchmark of averaged_galilean_2d_psatd
* Update Benchmark of averaged_galilean_3d_psatd
* Update Benchmark of averaged_galilean_2d_psatd
* Update Benchmarks
* Update Benchmark of pml_psatd_dive_divb_cleaning
* Clean Up: Use More Descriptive Names
|
|
* Add div(E)/div(B) cleaning options for PSATD in PMLs
* Pass missing flags to spectral solver in PML
* Duplicate MPI exchange and communication functions for G
* Use separate parameters for div cleaning in PMLs
* Add asserts for features that are not implemented
* Do not need to duplicate MPI exchange functions for G
* Add short documentation for new input parameters
* Set new parameters true by default with PSATD solver
* Add CI test for PML div cleaning with PSATD
* Use new syntax <diag_name>.intervals in new input file
* Reset benchmark of new CI test
* Always synchronize nodal points of G MultiFab
* Fix few warnings in 2D build
* Update Benchmark of pml_psatd_dive_divb_cleaning
* Improve Documentation of warpx.do_pml_dive_cleaning
Co-authored-by: Neïl Zaim <49716072+NeilZaim@users.noreply.github.com>
* Improve Documentation of warpx.do_pml_divb_cleaning
Co-authored-by: Neïl Zaim <49716072+NeilZaim@users.noreply.github.com>
* Improve Abort Message
* Clean Up
Co-authored-by: Neïl Zaim <49716072+NeilZaim@users.noreply.github.com>
|
|
|
|
* Split Initialization Functions of Spectral Coefficients
* Simplify Initialization of Coefficients Without Averaging
* Do Not Store Coefficients C1,S1,C3,S3 With Averaging
* Simplify Initialization of Coefficients With Averaging
* Add amrex:: Prefix Following WarpX Style Guidelines
* Match Names Of Coefficients With/Without Averaging
* 'pow' Cannot Be Used in a Constant Expression
* Update Doxygen Documentation
|
|
* PSATD+RZ: Fix Warnings
Fix a couple of warnings in PSATD + RZ.
* BesselRoots: Missing Include & using
* Kernel & Util: Unused Code & Var
|
|
* Add timers
* eol
* AtomicAdd
* lev argument for getCosts
* style
* style
* wip
* eol
* .ipynb
* passing down lev
* eol
* passing lev
* eol
* Update Source/Particles/Collision/PairWiseCoulombCollision.cpp
Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
* Add for QED and ionization routines
* eol
* remove unneeded
* mfi-->pti
* move cost
* eol
Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
|
|
|
|
* Refactor and clean up some spectral classes
* Abort when current correction or Vay deposition are not implemented
* Implement general equations for averaged Galilean
* Allocate averaged MultiFabs also when aux_is_nodal=1 and do_nodal=0
* Allocate +ngextra guard cells also for averaged MultiFabs
* Make alias MultiFabs for averaged aux data
* With averaging, interpolate from avg_fp (not fp) to aux
* Fix some limits of the coefficients
* Fix bug causing NaNs in spectral coefficients
* Add 2D CI test with same analysis as nodal test
* Add 3D CI test with same analysis as nodal test
* Add limit that was not covered (knorm=0 && knorm_c!=0 && nu=0)
* Allocate T2_coef only if Galilean algorithm is used
* Allocate X4_coef only if Galilean algorithm is used
* Remove extra ghost cell from 'avg_fp' MultiFabs
|
|
|
|
|
|
* Implemented update without rho in RZ spectral solver
* Updated documentation for update_with_rho for RZ
* Tiny fix in GalileanPsatdAlgorithmRZ reordering declarations
* In Langmuir_multi_rz_psatd, set update_with_rho = 1
|
|
* CMake: Update GPU Backend Vars
Adopt to changes in AMReX modernizing GPU control.
Note: `WarpX_COMPUTE` for DPCPP is now called SYCL for consistency.
* GH Action: SYCL/DPC++ w/o MPI for now
does not build yet
|
|
Using namespace amrex::Gpu` is not safe because of the conflict between
`amrex::Gpu::memcpy` and `::memcpy`.
|
|
We reduce the number of command line arguments passed in the AMReX
build systems by placing defines in an `AMReX_Config.H` file that
is configured at AMReX build time. Files like `AMReX.H` will pull
it in as well.
In the case of `AnyFFT.H`, we need to make sure this is included
before we check the preprocessor defines.
|
|
* Implement Galilean PSATD equations on staggered grids
* Implement high-order interpolation in 2D/3D
* Include missing header file and small clean-up
* Fix bug for FDTD build
* Small clean-up
* Modify current correction for staggered grids
* Implement comoving PSATD scheme (formulation with rho)
* Fix single-precision builds
* Do not implement rho-free formulation for comoving PSATD yet
* Invert sign of comoving velocity to match Galilean convention
* Fix two bugs in comoving PSATD algorithm
* Update benchmark of CI test momentum-conserving-gather
* Update benchmark of CI test PlasmaAccelerationMR
* Update documentation
* Clean up comoving PSATD class
* Clean up comoving PSATD class (more)
* Clean up comoving PSATD class (more)
* Implement changes requested in PR review
* Add 2D regression test for staggered Galilean PSATD
* Add 2D regression test for staggered comoving PSATD
* Unify input files for new CI tests to avoid duplication
* Fully rebase benchmarks changes on development
* Update benchmark of Galilean hybrid test after #1536
|
|
Regression build/linker error from an outdated CMake variable.
|
|
* Implement new PML PSATD equations
* Update CI test and benchmark
* Compute coefficients C1,...,C22 on the fly
* Add check on initial energy from diagnostics
|
|
|
|
* replace wherever possible .reset(new with = make_unique
* fixed bug
* fixed bug
* revert WarpXOpenPMD.cpp to the original version
* removed another .reset(new
|
|
* RZ_SP fix
* RZ SP fix
* Fix cufft for single precision RZ.
Co-authored-by: Weiqun Zhang <weiqunzhang@lbl.gov>
|
|
* rocFFT support
* rocfft in 2d rz PSATD solver
|
|
|
|
* Fix warnings for 2D/3D PSATD builds
* Fix warnings for RZ PSATD builds
* Update FIXME comment: no known bug
* Fix remaining warning for RZ PSATD builds
|
|
|
|
* Added stub for current correction in RZ spectral solver
* Fixed comments in RZ spectral for current correction stub
* Modified automated test for Galilean PSATD (#1033)
* Impemented current correction in RZ spectral
* Implementation Galilean version of RZ spectral solver
* For RZ spectral, do forward and backward transform with current correction
* Big fix in DivEFunctor.cpp for RZ spectral
* Added RZ rho diagnostic for saving the modes
* Implemented fft_periodic_single_box for RZ spectral
* Moved routines from SpectralSolverRZ.H to .cpp
* Added hook for VayDeposition in GalileanPsatdAlgorithmRZ
* Bug fix in DivEFunctor
* Fixes and cleanup for GalileanPsatdAlgorithmRZ
* Fix line spacing in SpectralSolverRZ.H
* Fix factor 1/2 in update of Ep_m
* Fix factor 1/2 in update of Em_m
* Fix sign error in current correction in GalileanPsatdAlgorithmRZ.cpp
Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com>
* Add Langmuir RZ PSATD test with current correction
* Add Galilean tests with/without current correction
* For RZ psatd, simplified copy for forward transform
* Added GalileanPsatdAlgorithmRZ.cpp to CMakeLists
* Minor cleanup in RZ spectral solver
* In GalileanPsatdAlgorithmRZ.cpp use member initialization for m_v_galilean
Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com>
* Added some _rt to GalileanPsatdAlgorithmRZ.cpp
Co-authored-by: Olga Shapoval <30510597+oshapoval@users.noreply.github.com>
Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com>
Co-authored-by: Edoardo Zoni <ezoni@lbl.gov>
|
|
* Implemented fft_periodic_single_box for RZ spectral
For RZ psatd, simplified copy for forward transform
* Apply review's suggestions and clean up
* Add few comments, fix warnings, apply style conventions
Co-authored-by: Dave Grote <dpgrote@lbl.gov>
Co-authored-by: Edoardo Zoni <ezoni@lbl.gov>
|
|
|
|
* Moved routines from SpectralSolverRZ.H to .cpp
* Correct missing Vay deposition routine
* Apply suggestions from code review
Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
* Apply suggestions from code review
* Apply suggestions from code review
Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com>
Co-authored-by: Dave Grote <dpgrote@lbl.gov>
Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com>
|
|
* Fix some warnings in RZ spectral solver
* enum: re-add ;
Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
|
|
|
|
|
|
This PR adds a copyright header when missing in some files.
|
|
This PR fixes the source of several compilation warnings.
Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
|
|
|
|
|
|
* Introduce option to update E with/without rho
* Clean up
* Implement current correction for Galilean PSATD (needs bug fix)
* Include equations in docs
* Fix EOL whitespaces error
* Small clean-up
* Implement Galilean PSATD update without rho
* Clean up
* Fix bug in current correction
* Fix EOL whitespaces
* Clean up
* Fix unused import
* Remove unused variable
* [skip CI] Improve docs
* Clean up style
* Fix EOL whitespaces
* Fix EOL whitespaces
* Clean up style
* Revert analysis script to old status
* [skip CI] Clean up style
* Make equations more human-readable and improve comments
* 2D test with current correction works
* Temporary build fix as in #1197
* 3D test with current correction works
* Rename th and th_star as theta and theta_star
* Fix a couple of wrong comments
* Add vertical spaces to improve readability
* Improve documentation
* Function CurrentCorrection is now pure
* 2D benchmark fields data are now correct
* Add limits of coefficients for nu=-1
* Change default of update_with_rho for Galilean PSATD
|
|
* Added k-space filter for RZ spectral solver
* Added SpectralBinomialFilter files for RZ spectral solver
* Added RZspectral binomial filter to CMakeLists.txt
* Update Docs/source/running_cpp/parameters.rst
Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com>
* Update Docs/source/running_cpp/parameters.rst
Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com>
* Update Source/FieldSolver/SpectralSolver/SpectralBinomialFilter.H
Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com>
* Update Source/FieldSolver/SpectralSolver/SpectralBinomialFilter.cpp
Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com>
* Update Source/FieldSolver/SpectralSolver/SpectralFieldDataRZ.H
Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com>
* Fixed literals in SpectralBinomialFilter.cpp
* For RZ spectral, apply filter to rho old and new
* Added SpectralBinomialFilter::InitFilterArray
* For SpectralBinomialFilter, combine R and Z into one routine
Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com>
* For SpectralBinomialFilter, combine R and Z into one routine, part 2
Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com>
* For SpectralBinomialFilter, combine R and Z into one routine, part 3
Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com>
Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com>
|
|
* 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>
|
|
* Removed unused variables and made 'vy=v_galilean[1]' declaration conditional on 3D case (this fixes compiler warnings)
* Avoid unnecessary conversion from 'double' to 'int' (this fixes compiler warnings)
|
|
* Set k_modified = k for inf order
* Add support for nox = inf in input file
* Added infinite-order to documentation
* Add back in accidentally-removed line
* End-of-line whitespaces?
* End-of-line whitespaces.
* Remove vspace
Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com>
* Remove vspace
Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com>
* Add whitespace
Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com>
* Remove unnecessary line
Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com>
* Whitespace
Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com>
* Remove whitespace
* Clarify error message
Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com>
* ...whitespace
Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com>
|
|
|
|
|