Age | Commit message (Collapse) | Author | Files | Lines |
|
* 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.
|
|
|
|
|
|
|
|
* Summit: no `-n` in jsrun
The calculation of `-n` does not seem to work anymore. Luckily, the
parameter seems to be automatically taken by some LFS setting in the
job.
* Summit Runs: OMP, GPU-Aware MPI, Latency
Refs.:
- https://jsrunvisualizer.olcf.ornl.gov/?s4f0o11n6c7g1r11d1b1l0=
- https://docs.olcf.ornl.gov/systems/summit_user_guide.html#cuda-aware-mpi
|
|
* fixing bug to initialize CellCenterFunctor for Bx
* create new BTB class and move FullDiagnostics functions from Diagnostics class
* [skip ci] Adding BTDiag class members and allocating them
* output_mf vector of buffers for both Full and BTD
* [skip ci] a few comments
* added more functions in BTDiagnostics for initialization
* [skip-ci] a small comment abour FlushRawData
* [skip-ci] Add new functor class for BTD
* Included BTDiagnostics class and skeleton of functions to be populated
* fix eol and make destructor of base Diag class virtual
* remove redundant query file_prefix in FullDiag class
* Apply suggestions from code review
adding PR suggestions
Co-authored-by: MaxThevenet <mthevenet@lbl.gov>
* cleaning function calls and definitions as suggested in review
* uncomment the assert. It is valid for FullDiag and BTDiag
* Update Source/Diagnostics/Diagnostics.H
adding PR suggestion including comments
Co-authored-by: MaxThevenet <mthevenet@lbl.gov>
* moved InitData to Diagnostics.cpp and call relevant functions from there
* moving FilterComputeAndPack to Diagnostics
* removing commented out code
* remove gpu vector containing map of fields from cc_mf to dst_mf. New diag machinery ensures cc_mf.ncomp == dst_mf.ncomp
* fix eol whitespace
* populating Init functions in BTDiagnostics
* DefineCellCenteredMultiFab should be called only once for all buffers
* add Init functions and constructing BackTransform functor
* call BackTransform operator which currently does nothing
* EOL
* average-down cc data to coarsest level
* loop over level used to allocate output buffer
* some comment about avg-down functions to be moved
* EOL
* Apply suggestions from code review
add pr suggestions
Co-authored-by: MaxThevenet <mthevenet@lbl.gov>
* clarifying pure virtual and virtual functions
* removing namespace amrex and adding corresponding amrex:: prefix
* this should be nlev -- number of levels in the sim, not max allocated levels
* the number of levels to be output could be different from nlev, nmax_lev
* add missing semi-colon!
* add amrex:: prefix to MultiFab to comile psatd
* add new diag files to CMakeLists.txt
* fix compiler errors.
* add amrex:: prefix to fix psatd compilation error
* some more conflicts
* minor cleaning
* EOL
* flatten cc data using finestLevel() and use moving window dir
* EOL
* Apply suggestions from code review
PR suggestions
Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
* making it readable and adding comments
* add missing semicolon
Co-authored-by: MaxThevenet <mthevenet@lbl.gov>
Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
|
|
* Use new picsar repo on github
* Add new repo in PICSAR.cmake
|
|
* Added automated test for dive cleaning
* Add analysis script
* Include test in automated suite
* Add 3D test
* Modify script so that it could run in 3d
* Reduce tolerance for 3D test
* Set benchmarks for divE cleaning tests
* Remove unused parameter
Co-authored-by: Tools <warpx@lbl.gov>
|
|
* Added CheckGriddingForRZSpectral
* Bug fix in check gridding for RZ Spectral, fixing handling of refinement ratio
* Change numprocs=2 for python reg tests and reset benchmarks (#1075)
* changing nprocs to 2 for Python_PlasmaAcceleration test
* Resetting benchmark for Python_PlasmaAcceleration test case due to change in nprocs=2 in reg test
* resetting benchmarks for Python test-cases except Python_Langmuir due to change in numprocs in WarpX-tests.ini
* changing numprocs=2 for Python tests
* resetting python reg test benchmarks after updating pywarpx
Co-authored-by: Revathi Jambunathan <revanathan@pop-os.localdomain>
Co-authored-by: Tools <warpx.lbl.gov>
Co-authored-by: Tools <warpx@lbl.gov>
* Updates to picmi, mostly related to fields, and add psatd (#1077)
* Fixed bad arguments in PICMI_inputs_laser_acceleration.py (#1074)
Note that polarization_angle was changed to 0 since that
was the value being used because the polarization_argument was bad.
* Fix typo for pml_ncell in parameters doc (#1071)
* remove #line wp_parser.l because it causes issues with AMReX make system (#1078)
* remove amrex namespace from diag functor cpp files and use amrex:: prefic (#1093)
* For RZ spectral, updated documentation regarding blocking factor and max grid size
Co-authored-by: Revathi Jambunathan <41089244+RevathiJambunathan@users.noreply.github.com>
Co-authored-by: Revathi Jambunathan <revanathan@pop-os.localdomain>
Co-authored-by: Tools <warpx@lbl.gov>
Co-authored-by: NeilZaim <49716072+NeilZaim@users.noreply.github.com>
Co-authored-by: WeiqunZhang <WeiqunZhang@lbl.gov>
Co-authored-by: Remi Lehe <remi.lehe@normalesup.org>
|
|
* add functor for doing the tmp particles copy for the back-transformed diagnosti
* merge the particle push options into one kernel
* EOL
* fix assertion
* add a FieldGatherandPushPX method to PhysicalParticleContainer
* handle offset in copyAttribs
* allow this functor to be constructed even it we aren't doing the back transformed diagnostics
* EOL
* update the overloads of PushPX for the Photon and RigidInjected ParticleContainers
* function for dispatching the right field gather
* init this val to 0.0
* fix some typos
* handle scaling the fields for rigid injection
* EOL
* don't need to get pointers to E and B arrays in PushPX any more.
* actually I can't remove these yet
* EOL
* variable order bug
* move the QED stuff to the proper place
* EOL
* make sure we don't build these functors unless the runtime options are toggled
* EOL
* perform the field gather prior to the photon particle push
* remove E and B components and FieldGather methods. Reimplement PushP for rigid injected and physical particles
* update ionization to do field gather inline
* remove E and B from the particle diagnostics
* don't write E or B in these tests for particles
* add missing files
* remove EB from the Regtest ini file too
* no need to do this twice
* important typo
* also do the gather inline for the QED processes that need to
* move these sources inside ifdef for QED
* fix bug in RZ
* remove some fields from the Python tests.
* remove all particle E and B comps from json benchmarks
* don't assert that Ey is the langmuir output
* remove uy from this output
* update test
* restore the mesh fields I turned off by mistake
* turn off field IO for a few python tests I missed
* fix typo
* reset Langmuir_multi benchmark
* update Langmuir_multi_nodal benchmark
* update single precision langmuir bench
* update psatd single precision languir one too
* also do ionization_lab
* finally, ionizaiton_boost
* update benchmarks_json/Langmuir_multi_psatd.json
* update benchmarks_json/Langmuir_multi_psatd_current_correction.json
* update benchmarks_json/Langmuir_multi_psatd_momentum_conserving.json
* update benchmarks_json/Langmuir_multi_psatd_nodal.json
* remove the particle E and B from the choices in the docs
* fix offset bug
* also add the Gather subdirectory
* Update Source/WarpX.H
Co-authored-by: MaxThevenet <mthevenet@lbl.gov>
* add docstring for LowerCornerWithGalilean
* add new source files to CMakeLists.txt
* also need to update the GPU regression tests
* update the name of the output file for this python test
* remove field gather call from FieldDiagnostics
* fix typo in docstring
* init fields to 0
* add docstring to the CopyParticleAttribs constructor
* some explicit amrex::namepace
Co-authored-by: MaxThevenet <mthevenet@lbl.gov>
|
|
* 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
* Tiny bool cleanup
Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
|
|
* Added description of singleparticle particle injection style
* Revert "Added description of singleparticle particle injection style"
This reverts commit f02d842c935311458024da6e661950742de24f63.
* More info on blocking factor
* Update Docs/source/running_cpp/parallelization.rst
Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
* Update Docs/source/running_cpp/parameters.rst
Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
|
|
* define temp array outside the ParIter loop for GetParticleSlice
* Moving definition of temp arrays closer to the ParIter loop where used with comments
|
|
This adjusts the output of `hasEOLwhiteSpace` and `hasTabs` so that
one can run them like this in a bash shell:
```bash
eval "$(.github/workflows/source/hasEOLwhiteSpace)"
eval "$(.github/workflows/source/hasTabs)"
```
|
|
Fix superfluous semicolons and two in-line doxygen strings.
|
|
Save compile time and complexity.
|
|
* remove obsolete functions in FieldIO
* * Remimplement interpolation of coarse patch onto fine grids without div cleaning in C++.
* No longer need to have a Fortran compiler.
|
|
In the process of renaming our central development branch to
`development` the following updates are needed.
|
|
Adds CMake support for Ascent in situ vis. Adds experimental
instructions for Summit builds.
|
|
Adds a first documentation on how to build WarpX with CMake.
|
|
It looks like "make" run from our python test scripts does sometimes
take longer than 10 minutes and does not produce output on stdout
during that time (probably because we hide it).
This adds a 20min grace time for this (default: 10min) before ending
the job with a timeout.
Generally, tests on Travis are close to the 50min mark of total job
time, this patch does not change this :)
|
|
* fixing bug to initialize CellCenterFunctor for Bx
* create new BTB class and move FullDiagnostics functions from Diagnostics class
* [skip ci] Adding BTDiag class members and allocating them
* output_mf vector of buffers for both Full and BTD
* [skip ci] a few comments
* added more functions in BTDiagnostics for initialization
* [skip-ci] a small comment abour FlushRawData
* [skip-ci] Add new functor class for BTD
* Included BTDiagnostics class and skeleton of functions to be populated
* fix eol and make destructor of base Diag class virtual
* remove redundant query file_prefix in FullDiag class
* Apply suggestions from code review
adding PR suggestions
Co-authored-by: MaxThevenet <mthevenet@lbl.gov>
* cleaning function calls and definitions as suggested in review
* uncomment the assert. It is valid for FullDiag and BTDiag
* Update Source/Diagnostics/Diagnostics.H
adding PR suggestion including comments
Co-authored-by: MaxThevenet <mthevenet@lbl.gov>
* moved InitData to Diagnostics.cpp and call relevant functions from there
* moving FilterComputeAndPack to Diagnostics
* removing commented out code
* remove gpu vector containing map of fields from cc_mf to dst_mf. New diag machinery ensures cc_mf.ncomp == dst_mf.ncomp
* fix eol whitespace
* DefineCellCenteredMultiFab should be called only once for all buffers
* Apply suggestions from code review
add pr suggestions
Co-authored-by: MaxThevenet <mthevenet@lbl.gov>
* clarifying pure virtual and virtual functions
* removing namespace amrex and adding corresponding amrex:: prefix
* the number of levels to be output could be different from nlev, nmax_lev
* add missing semi-colon!
* add amrex:: prefix to MultiFab to comile psatd
* add new diag files to CMakeLists.txt
* Apply suggestions from code review
PR suggestions from @ax3l.
Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
* fix EOL
* including sensei and ascent in doxygen docs for format variable
Co-authored-by: MaxThevenet <mthevenet@lbl.gov>
Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
|
|
- GNUmake: Unify the controlling variable to `ASCENT_DIR` as in AMReX.
- Update input parameter reference
- General docs overhaul
- Note current (work-in-progress) Ascent path on Summit
|
|
(#1093)
|
|
* [skip travis] CMake: Add CMake Scripts
This add CMake scripts for the CMake build system generator.
* CUDA Support Achieved
Fastest compile via:
cmake .. -DENABLE_CUDA=ON -DCUDA_ARCH=6.0
* CMake: openPMD & QED
* CMake: Dimension Support
WarpX_DIMS=2,3,RZ
* CCache & Out-of-Source
Enable CCache when found and prevent in-root builds (in-source okay-ish).
* CMake: CUDA C++ Language Minimum
* Add new Files
* CI: Migrate macOS to CMake
* Fortran: Enable Because Transitive
... for now :)
* CI: Migrate Linux ICC to CMake
* CI: Verbose Make
* CMake: Add Missing PSATD Sources
* CMake: PSATD, Compute, Precision, Clean
|
|
* Docs: Summit Restructure
Restructures the instructions for Summit (OLCF).
This loads all software that might be needed to reduce the
"if then else" logic a user has to understand during install.
Everything is now required or optional, but everything is
compatible or simply ignored.
Uses new conventions for downloaded source and manually built
software to structure things in a simpler, scalable manner.
* Summit Docs: Fix Typos
|
|
|
|
* stop mailing errors from Battra
* remove Axel from Battra mails
* Battra mails: remove Diana & Edoardo
Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
|
|
* Added description of singleparticle particle injection style
* Revert "Added description of singleparticle particle injection style"
This reverts commit f02d842c935311458024da6e661950742de24f63.
* Added use_q_shift and q_shift variables
* Removed use_q_shift
* Added description of q_shift to the Docs
* Replaced q_shift by z_shift as suggested by @ax3l
* Added recommendation to PWFA example
* z_shift should be optional (used query instead of get)
* Fix compile problem
Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
|