Age | Commit message (Collapse) | Author | Files | Lines |
|
tests (#1185)
|
|
* 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>
|
|
Fix warnings after some recent refactoring.
|
|
|
|
* LWFA: Diag add Charge Density
Dump the charge density in the LWFA example by default. This is a
common quantity to visualize when getting started, so we adjust this
to be generated by default.
* reset benchmark: LaserAcceleration (add rho)
Co-authored-by: Tools <warpx@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)
|
|
* need to load PrgEnv intel for tests
* 1 step for IO tests on Cori too
|
|
|
|
* For RZ, fix the deposition near the axis
* Updated LaserAccelerationRZ checksum
The change was expected since the code changes modified the charge
and current density near the axis.
* Updated LaserAccelerationRZ checksum
The change was expected since the code changes modified the charge
and current density near the axis.
* Update benchmark
Co-authored-by: Remi Lehe <remi.lehe@normalesup.org>
|
|
Matplotlib 3.3.0 removed a private member module which
yt relies on. We downgrade matplotlib to keep going.
|
|
one (#1174)
* Combined analysis scripts for Galilean and averaged tests in one script
* Deleted files 'analysis_avg_2d.py' and 'analysis_avg_3d.py'
* Cleanup: removed empty lines
|
|
* Default: abort_on_out_of_gpu_memory = 1
Change the default input parameter from AMReX
`amrex.abort_on_out_of_gpu_memory` from false (`0`) to true (`1`).
We set this by default to avoid that users experience super-slow GPU
runs when exceeding GPU memory. In such a case, users should explicitly
set this to option.
In my optinion, this is only an intermediate solution since what we
actually want on out-of-GPU memory events should be:
- finish current simulation step and cause a load balance or
- trigger a checkpoint and shut down cleanly
- then the user can manually restart with more resources
We want to address the opposite case, user under-utilizes a GPU, with
a warning for now.
Ref.:
- https://amrex-codes.github.io/amrex/docs_html/GPU.html#inputs-parameters
* abort_on_out_of_gpu_memory: review
Add review comments.
Co-authored-by: L. Diana Amorim <LDianaAmorim@lbl.gov>
Co-authored-by: L. Diana Amorim <LDianaAmorim@lbl.gov>
|
|
* add doc for performance tests
* eol
* Apply suggestions from code review
Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
* eol
* Apply suggestions from code review
Co-authored-by: L. Diana Amorim <LDianaAmorim@lbl.gov>
Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
Co-authored-by: L. Diana Amorim <LDianaAmorim@lbl.gov>
|
|
* update IO syntax for performance CI
* update performance tests dir
* minor fixes in the IO perf test
|
|
* 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>
|
|
* Fixed typo: use 'dim=3' instead of 'dim=2' for 'galilean_3d_psatd' test
* Updated reference energy values for 2D and 3D galilean tests.
* Updated benchmark for galilean_3d_psatd.json
|
|
|
|
|
|
* Create inputs
* fixed stuff
* Make smaller test
* Re-use EvolveEM for ES calculation
* Use correct variable const_dt
* Avoid out of bound and modify computation of electrostatic field
* Update test file
* Remove tab
* Minor refactoring of space-charge calculation
* Fix electrostatic test
* Particle tests for estatic
Added single particle test, 2 partcile test (1 fixed), and a plotting script for the 2 particle test output
* Update yt_2_particle_test.py
* electrostatic sphere test inputs
Input script for electrostatic sphere test
* Updates to electrostatic sphere test
* Create analysis_electrostatic_sphere.py
* Added analysis scripts
* Update PhysicalParticleContainer.cpp
* Update inputs_3d
* Update analysis_electrostatic_sphere.py
* Update analysis_electrostatic_sphere.py
* Update WarpX-tests.ini
* Removed whitespace
This whitespace parser is PICKY!
* Update yt_2_particle_test.py
* Removed EOL whitespace
* Deleted unnecessary files
* Removed unused import statements
* Electrostatic sphere test fixes
Fixed several style and performance related issues in analysis_electrostatic_sphere. Removed unnecessary bounding box from initial particles in inputs_3d. Removed 2 particle test in WarpX-tests.ini. Removed 2 particle test entirely from PR. Removed electrostatic sphere plotting tool from PR since it isn't used by anything and needs to be adjusted for more general use.
* Remove untested file
* Remove obsolete input parameter
* Fix issues with electrostatic automated test
Co-authored-by: dbizzozero <dbizzozero@users.noreply.github.com>
Co-authored-by: Remi Lehe <remi.lehe@normalesup.org>
|
|
* Added laser shifts to input for each libE config
* Position is 3D
* Fix spaces - phrase must match
* Laser pulse duration was off by x10
* Update Tools/LibEnsemble/write_sim_input.py
Co-authored-by: MaxThevenet <mthevenet@lbl.gov>
* Changed spaces
* Shift added to mirrors position as well
* Fixed tab
* Fixed spaces for consistency
* Added space to be consistent
Co-authored-by: MaxThevenet <mthevenet@lbl.gov>
|
|
* InjectorDensity single precision fix
* Tests
* tests
* Plasma profile regression test
* EOL
* Parabolic channel regression test
* amrex math sqrt
* input diags file prefix
* diag --> diag1
* Update WarpX-tests.ini
|
|
* Power9 CPU docs
* Update Tools/BatchScripts/batch_summit_power9.sh
Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
* Subsection convention
Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
|
|
|
|
|
|
This reorders the naming of diagnostics to be a bit more readable.
Currently it was:
```bash
$ ls Bin/diags/
diag1bp/<N>.bp
diag1h5/<N>.h5
...
diag100000
diag100100
<N>
...
```
Now it proposes for openPMD output
```bash
$ ls Bin/diags/
diag1/openpmd_<N>.bp
diag1/openpmd_<N>.h5
```
This is also a bit easier for some tooling (i.e. yt and
openPMD-viewer that expect full consistent dirs atm.) and keeps
things nicely together.
Also bumps the zero-padding to use consistently 6 digits for
iterations in output files (<1M iterations), since sims (ions)
with >100k steps are not uncommon.
This does not yet change plot files, since this is still requiring
to make the regression testing scripts more flexible.
|
|
* Read Galilean velocity
* Prepare structures for Galilean solver
* Started implementing Galilean equations
* Analytical limits for X1, X2, X3, X4 coefficients added
* Slight changes added
* Added Galilean position pusher
* Scale galilean velocity
* Remove unneeded Abort
* Fix Galilean pusher
* Allocate Theta2 array
* Fix definition of coefficients
* Increase guard cells for Galilean
* Add guard cell in particle exchange
* Added modifications for PICSAR galilean branch
* Averaged coefficients added
* Type corrected
* v_gal added to warpx_current_deposition
* v_gal added to WarpXParticleContainer.H
* Bug fixed - update particle x-position over one time step
* Fix issues with merge from dev
* Averaged fileds allocated on fine patch (Ex)
* Preparation for merging dev into galilean.
* remove TABs by hand
* Removed a tab.
* Redeclared v_galilean as a vector & related changed
* Added an automated test
* Moved v_galilean inside WarpX constructor
* Added analysis script for the automated test
* Changed name of the automated test to galilean_psatd
* Added InitializeSpectralCoefficients method
* Removed temporary comments
* Averaged fields added to FiledGather
* Added infinite order k[i]
* Setting kx_mod( kz_mod) = 0 for index = nx/2(-nz/2)
* Adding galilean shift
* Implemented galilean shift
* Changed method's name from GalileanShift to ShiftGalileanBoundary
* Added doxygen string for ShiftGalileanBoundary
* Removed never used method LowerCornerWithCentering
* Removed temporary comments
* Removed dt as a variable from DepositCharge method and its dependencies
* Changing type of v_galilean from amrex::Vector to amrex::Array
* Changed back ng_fft to be equal nox_fft
* Changed v_galilean's type from amrex::vector to amrex::array
* Removed type
* Removed temporary comments
* Added flag 'do_time_averaging' to swith from unaveraged to averaged Galilean PSATD
* Updated doxygen
* Small fix on using 'do_time_averaging' flag
* Remove some commented Print statements
* [skip ci] Further cleanup
* Fix compilation
* Guard cells update of the averaged E,B fields
* Corrected included header file accordingly
* Removed EOL
* Removed EOL
* Corrected path of the included header file
* Updated choice of the spectral solver.
* Cleanup.
* use amrex::exp instead of std::exp
* no backward FFT for avg fields if avg is off
* Need to shift avg fields in MoveWindow
* Further cleaning
* Added 2D automated test for averaged PSATD
* Added automated 2D and 3D tests for averaged PSATD
* Removed comments
* Added specifications for averaged Galilean PSATD tests.
* Bug fixed - do FillBoundary of the averaged fields only if averaged is activated
* Do shiftMF of the averaged fields only if fft_do_time_averaging=true
* Add checksum json benchmarks for averaged Galilean PSATD
* Add missing indentation
* Add missing indentation
* Updated automated analysis script
* Updated diags period
* Fixed bug: no backtransform of the averaged fields when WARPX_DIM_RZ is set
* Fixed an uninitialized variable
* Clean-up
* Changed permissions for analysis_avg_*d.py
* Compactified variables initialization via conditional assignment
* Initialized averaged E_avg, B_avg fields
* Updated automated test for 2D averaged galilean PSATD
* Updated benchmark for 2D averaged galilean PSATD
* Updated automated 2D averaged PSATD test & benchmark
* Updated automated 3D averaged PSATD test & benchmark
* Fixed typo
* Updated benchmark averaged_galilean_3d_psatd
* Initialize the averaged fields only if the averaged Galilean PSATD algorithm is enabled
* Encreased time step for automated 3D averaged Galilean PSATD (to be equal c*dt=dz while dz/dx=3)
* Updated 3D automated test: specified standard deviations `.ux_th, .uy_th, .uz_th` along each direction
* Typo from the previous commit: enabled the averaged algorithm
* Trying out another input parameters for 3D averaged automated test with v_gal = v_plasma
* Update benchmark for previously added 3D averaged automated test
* Update 2D averaged automated test and corresponding benchmark
* Revert "Updated diags period"
This reverts commit 7334729b05e96589e020c981efdb430ca095991d.
* Cleanup: removed unwanted comment.
* Added descriptions of the 2D and 3D automated tests for the averaged Galilean PSATD.
* Updated value calculated via standard Galilean PSATD.
* Encreased relative error tolerance for 3D automated test for the averaged Galilean PSATD.
* Removed to avoid duplication since it already specified in the corresponding 2D/3D input scripts.
* Removed unwanted empty lines
* Added spaces after function's names
* Removed unwanted empty line
* Removed
* Fixed indentation
* Cleanup: removed #include <math.h>
* Cleanup: removed empty lines and fixed indentation
* Added 'AvgGalileanAlgorithm.cpp' to 'CMakeLists.txt'
Co-authored-by: Remi Lehe <remi.lehe@normalesup.org>
Co-authored-by: MaxThevenet <mthevenet@lbl.gov>
|
|
* raise the stack limit when running with cuda
* fix comment + only do this in debug mode
|
|
|
|
* Introduce option to update E with/without rho
* Clean up
* Include equations in docs
* Fix EOL whitespaces error
* Small clean-up
* Clean up
|
|
Update the CMake documentation to reflect that OpenMP is enabled by
default (as in GNUmake).
|
|
|
|
Add a feature guard for a CMake 3.17+ feature
(CUDA C++ std).
|
|
(#1126)
|
|
* Clean up implementation of current correction:
- abort when current correction runs with psatd.periodic_single_box_fft=0
- rename input parameter from psatd.do_current_correction to psatd.current_correction
- add nodal tests in 2D and 3D (using direct current deposition)
- change 2D test: use Esirkepov deposition, instead of direct, as in 3D test
- add/update relevant checksum benchmarks
* Small clean-up
|
|
|
|
* Doc how to compile and run on Juwels
* add a bunch of AMReX-specific options
* Update juwels.rst
* Update Docs/source/building/juwels.rst
Co-authored-by: MaxThevenet <mthevenet@lbl.gov>
* Juwels: Filesystem Note
* Jewels Docs: Missing newline
Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
|
|
With regards to the `WarpX_COMPUTE` options the following changes are
introduced:
- default: `OMP` (as in GNUmake)
- rename: `NONE` -> `NOACC` (no accelerated computing backend)
- adds: `DPCPP` (for SYCL/Intel DPC++ beta7 or newer)
Furthermore, we encode relevant, user-facing options in our binary
name. The namings are intentionally a different and skip few options
that are verbose and unlikely to appear even in development at the
same time. Furthermore, this builds a `warpx` symlink in `bin/` to
the latest build executable (when swtiching options), so that
repeated compile-and-test workflows do not need to take care of the
executable name anymore.
|
|
|
|
|
|
* Docs: Ascent & Python Summit Updates
Updates the instructions on how to use Python with WarpX, e.g. for
libEnsemble runs on Summit.
Also updates Ascent location (compiles already with CMake).
* libEnsemble: backlink to Summit
* Summit libEnsemble: Missing steps
Document missing steps to be performed - thx Diana & Maxence!
* Summit FC: gfortran
* Summit: mpi4py
Not yet used with libEnsemble as we use it, but useful for yt
post-processing and future workflows.
|
|
* Fix computation of rho in diagnostics:
- new functor RhoFunctor to compute rho;
- fix FDTD benchmarks (previously staggered in time by one time step);
- fix one PSATD benchmark for single precision test;
- update documentation and remove old variable rho_plot from class WarpX;
- TODO: check test Python_LaserAccelerationMR on Travis CI;
- TODO: check correctness of implementation in RZ geometry.
* Fix benchmark for Python_LaserAccelerationMR
* Small clean-up
* Simplify use of unique pointer to rho
* Remove ASSERT: it is valid to write out all modes
* Add missing code to write all rho modes in RZ geometry
* Clean up following up reviewer's suggestions
* Revert Bx benchmark fix for PSATD (needs bug fix?)
* Improve docs and comments
* Restore old behavior of plot_rho for back-transformed diagnostics
* Update Docs/source/visualization/advanced.rst
Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
|
|
|
|
* add 'overlapsWith' methods to InjectorPosition and PlasmaInjector
* add helper routine for computing positions within a cell
* use new function in AddPlasma
* use the XDim3 directly
* refactor add plasma to only add particles in cells that could overlap with the plasma region
* handle refined injection
* account for lorentz tranform in first pass
* can't capture statics in device lambda like that
* eol
* fix logic error
* fix RZ compilation
* eol
* a few docstrings
* missed a spot
* include the bulk momentum in the first pass
* reuse applyBallisticCorrection function where we can
* simplify the applyBallisticCorrection function
* eol
* fix equation for ballistic correction in the gamma_boost > 1 case
* need a sync here now
* fix typo in docstring
* use _rt
* add _rt
* add some _rt
* update the benchmarks because the particle id / cpu numbers (and occassionally the momenta, when that is random) are different now
|
|
|
|
Avoid setting advanced AMReX options with `INTERNAL` as this implies
`FORCE` and we cannot overwrite them from the CMake GUIs.
|
|
|
|
* add guard cells for initializing EB fields using parser
* add bool type for init_guard_cells
* fix bugs in initializing Box
* removing init_guard_cell flag
|
|
* Added description of singleparticle particle injection style
* Revert "Added description of singleparticle particle injection style"
This reverts commit f02d842c935311458024da6e661950742de24f63.
* Tried to inject particles only in simulation Box
* Added Todo for multiple levels of mesh refinement
* Explain todo better
* Added x and y_shifts and replaced cascading ifs by bools and continue
* Replaced cascading ifs by bools and continue
* Replaced TODO by FIXME as reviewer suggested
* Made the insidebounds function use box limits as defaults
* Fixed identation issue
* Fixed identation issue
* Fixed identation issue
* Added to Docs the default for xmin,xmax and other dirs
* Fix missing y and z dirs
* Update Source/Initialization/PlasmaInjector.cpp
* Fixed PlasmaInjector limits with periodic condition
* Removed check if 3D because now ylims are +/-inf
* Restored if to check for y velocity also in 2D/RZ
* Fixed Docs to recent changes
* Update Source/Initialization/PlasmaInjector.cpp
* Fix extra bracket
* Added information about RZ geometry for openPMD external file
* Fix to issue without periodic boundaries
* Added variable rz_take_absolute, to allow to inject x<0 particles in RZ
* Fix to declaration of addplasmafromfile rz_take_absolute
* Fix to declaration of addplasmafromfile rz_take_absolute
* Fixed documentation to include rz_take_absolute option
* Fix merging conflict
* Final fix to xmax=inf in RZ
* In RZ particles are injected in x,y,z
* Fixed remaining rz_take_absolute
* Converted (x,y,z) to (r,0,z)
* Fixed bounds limits (r,z) but injection is in 3D
* Re-fix to insideBounds()
* AMReX assert of periodic in RZ
* Removed Assert -> went to PR 1115 by @dpgrote
* Fixed issues pointed out by reviewer @dpgrote
* Undo changes for future PR
* Undo changes for future PR
|
|
|
|
* CMake: WarpX_MPI
Wrap the last user-facing AMReX option into a WarpX option. This
reduces confusion and improves consistency further.
* CMake: Assertations
Enable AMReX' `ENABLE_ASSERTIONS` with build type `Debug` and allow
to overwrite on the command line with `-DENABLE_ASSERTIONS=ON` for
manual activation with other build types.
* CMake: Advanced AMReX Options
Declutter user-facing options further.
* CMake: Toggle for CMAKE_BUILD_TYPE
Add allowed options for toggling the `CMAKE_BUILD_TYPE`.
* CMake: Floating Point Exceptions
Enable AMReX' `ENABLE_FPE` with build type `Debug` and allow
to overwrite on the command line with `-DENABLE_FPE=ON` for
manual activation with other build types.
|