aboutsummaryrefslogtreecommitdiff
path: root/Source/Python/WarpX_py.cpp (unfollow)
AgeCommit message (Collapse)AuthorFilesLines
2023-06-15Add Twiss alpha to BeamRelevant and Docs (#3993)Gravatar Marco Garten 2-15/+27
2023-06-15Added external field loading from file to picmi.py (#3945)Gravatar Camille Woicekowska 8-81/+162
* Added external field loading from file to picmi.py * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Update Python/pywarpx/picmi.py Co-authored-by: Roelof Groenewald <40245517+roelof-groenewald@users.noreply.github.com> * Added documentation * Removed init, documentation * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Updated picmi version in requirements.txt * Updated picmi version in setup.py * Updated picmi version in requirements.txt * Updated name of call to picmi class * Adapted CI test for PICMI field loading from file * Added PICMI input script * Added .json file with new file name * fixed small errors * Fixed error in input script * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Removed old comments from code * fixed import, spacing in input script * fixed spacing * cleaned up input script * fixed typo * removed blocking factor * fixed name of test * correct ion species name * Added initial field to sim object --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Roelof Groenewald <40245517+roelof-groenewald@users.noreply.github.com>
2023-06-15AMReX: Weekly Update (#3992)Gravatar Axel Huebl 5-5/+5
2023-06-15Fix: Unused Cost GPUClock (#3988)Gravatar Axel Huebl 1-1/+1
By default, unused on ROCm, for instance.
2023-06-14Docs: Frontier Script DetailsGravatar Axel Huebl 1-1/+17
2023-06-14Doc: Frontier (OLCF) hipcc (#3986)Gravatar Axel Huebl 4-42/+213
* Doc: Frontier (OLCF) hipcc On Frontier, we switch back to `hipcc` as compiler since we see: - HPE/Cray compilers have the performance regression we saw for 5.3-5.4 even when we load the ROCm 5.2 modules in the latest CCE programming environment (PE) - ROCm 5.5 still has the performance regressions This also adds RZ+PSATD dependencies of BLAS++ & LAPACK++ and Python dependencies, and modernizes/streamlines the dependency install. * Add Absolute Path
2023-06-14Fix: 1D Abort in Kernels (#3987)Gravatar Axel Huebl 2-8/+8
Regression to #3965
2023-06-14Docs: Update OpenMP for macOS Pkg Mgs (#3990)Gravatar Axel Huebl 1-1/+17
Update especially conda for macOS OpenMP dependencies.
2023-06-14Docs: Debian/Ubuntu no-MPI (#3983)Gravatar Axel Huebl 3-53/+78
* Docs: Debian/Ubuntu no-MPI Add details how to install dependencies with `apt` w/o MPI. Add details how to compile w/ and w/o MPI. * General Cleaning
2023-06-14Add Frontier Checkpointing and IO Warning (#3984)Gravatar Marco Garten 1-0/+17
* Add Frontier Checkpointing and IO Warning We observed that I/O and checkpointing can be critically slow at scale with the default settings. We recommend testing and making changes to striping or AMReX checkpointing. * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2023-06-13Add python script to update benchmarks from Azure output (#2355)Gravatar Neïl Zaim 2-2/+119
* Add python script to update benchmarks from Azure output * Update Regression/Checksum/update_benchmarks_from_azure_output.py Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com> * Cleaner python script * Remove empirical numbers and read and write the json files once * Also read dashes in test names * Move script to Tools/DevUtils folder * Add documentation * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Directly parse the new file * Apply suggestions from code review Co-authored-by: Roelof Groenewald <40245517+roelof-groenewald@users.noreply.github.com> --------- Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Roelof Groenewald <40245517+roelof-groenewald@users.noreply.github.com>
2023-06-13Enforce const correctness using clang-tidy CI test (#3921)Gravatar Luca Fedeli 144-1230/+1277
* add clang-tidy workflow * fix missing newline * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * make clang.14.sh executable * remove non explicitly selected checks * complete list of dependencies * fix bug * specify path of clang-tidy file * fix bug * add new check * remove one check * add magic numbers check * removed one check * keep only one check * Docs: Conda Dev w/ Boost (#3911) Add the `boost` package to the conda developer environment. Used for QED table generation. * Fix typo in Adastra cluster documentation (#3918) * add back three checks * prepare clang-tidy wrapper * actually use clang-tidy in the script * test * fix bug * actually use clang-tidy * fixed bug * fixed bug * fixed bug * fixed bug * remove all checks except the selected 3 * fixed bug * fixed bug * fixed bug * enforce const correctness using clang-tidy * remove one check * Fix Concurrency Issue * BLAS++/LAPACK++ for RZ+PSATD * Build all 4 WarpX DIMS * add few echo for test purposes * try to debug mysterious error * don't test RZ with clang-tidy * add back RZ test * add some const * fix bug * check also header files * remove header filter since it does not work as expected * fixed bug * check also WarpX headers * fix bugs * continue enforcing const correctness * continue enforcing const correctness * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * fixed bug * fix bugs and add new const * clean .clang-tidy * make regex more precise according to Weiqun's suggestion * add more const * fix bugs * fix bug * silence warning on float comparison * fixed bug * fixed bugs * fix bug and add const * fixed bugs * fix bug * fix bug * fix bug * fixed bug * fix bug
2023-06-12Docs: TAE (#3977)Gravatar Axel Huebl 1-3/+3
* Docs: TAE Acknowledge TAE contributions & reflect moved core developers such as @roelof-groenewald :) * Update TAE Technologies Co-authored-by: Roelof Groenewald <40245517+roelof-groenewald@users.noreply.github.com> * Update acknowledge_us.rst --------- Co-authored-by: Roelof Groenewald <40245517+roelof-groenewald@users.noreply.github.com>
2023-06-12Cleanup unused parts of WarpX Python interface (#3971)Gravatar Remi Lehe 4-33/+2
* Cleanup unused parts of WarpX Python interface * Fix breaking Python import
2023-06-12Ohm's law solver (hybrid kinetic-fluid extension) (#3665)Gravatar Roelof Groenewald 53-44/+4521
* Add "None" as an option for the Maxwell solver * fixed some of the reasons for failing CI tests * no longer pass `do_electrostatic` to `GuardCellManager` * renamed `MaxwellSolverAlgo` to `ElectromagneticSolverAlgo` * rename `do_electrostatic` to `electrostatic_solver_id` * rename `maxwell_solver_id` to `electromagnetic_solver_id` * start of hybrid solver logic * changes requested during PR review * remove `do_no_deposit` from tests without field evolution * added `HybridSolveE.cpp` * bulk of the hybrid solver implementation * mostly reproduce 1d cold ion mirror results * ion Bernstein modes reproduced with this version * fix bug with reduced diagnostic FieldProbe in 1d * added hybrid solver installation to PICMI and added example script generating ion-Bernstein modes * enable the use of `FieldProbe` default parameter values * use default field-probe values * steady progress * add `do_not_push` flag to picmi * possibly use nodal fields * added extra multifab for current calculated from curl B * added `CalculateTotalCurrent` functions * rewrote implementation to calculate J x curl B on a nodal grid first * fill boundary for auxiliary MFs used during hybrid E solve * properly handle nonzero resistivity * updated hybrid model example * clean up example scripts * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * fixed invalid memory access for GPU and other code cleanups * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * refinements on the example scripts * added ion beam instability example * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * added EM modes and ion beam examples to CI test suite * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * started docs section on the hybrid model * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * more progress on documentation * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * added ion Landau damping verification test / example * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * add checksum benchmark for Landau damping example * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * added fields.py wrapper to access total current density in hybrid case * refactored the charge deposition fix to be performed with the field data rather than individual particles * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * also correct current density at PEC boundary * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * made resistivity a parsed function of `rho` * work on PEC boundary condition * corrections pointed out during code review * fix build fails due to unused variables * fix issue with GPU builds * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * actually apply rho boundary correction in EM case * take one sided derivative at PEC boundary when calculating div Pe * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * actually apply rho boundary correction in EM case * removed specific treatment of E-field on PEC boundary for Ohm's law solver * first round of CI fixes * second round of CI fixes * added description of deposition logic with PEC boundaries to documentation * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * third round of CI fixing * move J and rho boundary handling to after `SyncRho` and `SyncCurrent` calls * properly order the application of boundary conditions on rho, for electrostatic simulations * fourth round of CI fixing * moved calculation of total current (Ampere's law) to seperate function * add random seed specification to `picmi` * code clean-up -> renamed hybrid model to hybrid-PIC model * added magnetic reconnection example * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * code cleanup & benchmark updates * update PICMI class name for hybrid solver to `HybridPICSolver` * don't apply J field boundary in * don't apply J field boundary in `MultiParticleContainer::DepositCurrent` * apply changes requested during code review * Apply suggestions from code review Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com> * Loosen tolerance on failing CI test * Removed unused variable * code cleanup: make use of `MultiParticleContainer::DepositCurrent` in `AddSpaceChargeFieldLabFrame` * switch to using a rho_fp_temp multifab for old and averaged charge density field, also no longer require particles to move only one cell per step * use `ablastr::coarsen::sample` namespace in `HybridPICSolveECartesian` * switched to using `MultiFab::LinComb` instead of self written GPU kernels to calculated averaged or extrapolated current density * add verbosity flag for the Ohm solver tests * deal with fine versus coarse patches * add theoretical instability growth / damping rates to hybrid-PIC examples * update ion-Bernstein mode plot in documentation * move the `ApplyRhofieldBoundary` call to after `SumBoundary` * use a uniform calculation for the number of cells a given index is from the boundary * remove unused variable * limit number of ghost cells updated during PEC BC application * the number of ghost cells to consider depends on whether the field is nodal or not * attempt 1 to fix failing CI tests * attempt 2 to fix failing CI tests and code cleanup * attempt 3 to fix failing CI tests * attempt 4 to fix failing CI tests and docs cleanup * switched to using bibtex citations * move hybrid solver input parameters documentation to its own section * clean up ion beam instability analysis script * Apply suggestions from code review Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com> * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Apply suggestions from code review Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com> * add inline comments describing the meaning of each argument for the `amrex::MultiFab::LinComb` calls used * make `HybridPICSolver` a child class of `picmistandard.base._ClassWithInit` * apply changes requested during code review * add warning about using hybrid-PIC solver with Esirkepov current deposition * add Stanier 2020 reference to recommend linear particles with hybrid-PIC * add call to FillBoundary for `current_fp` - needed for accurate interpolation to nodal grid * changes requested from code review * Apply suggestions from code review Co-authored-by: Remi Lehe <remi.lehe@normalesup.org> * include physics accuracy check for ion beam instability; switch CI tests to use direct current deposition * reset benchmark values after switching to direct current deposition * update ion beam instability benchmark * minor changes requested during code review * remove guard cells for `enE_nodal_mf` as well as corresponding `FillBoundary` call * refactor: moved hybrid-PIC specific multifabs and `CalculateElectronPressure()` to `HybridPICModel` * add assert that load balancing is not used with the hybrid-PIC solver since the new multifabs are not yet properly redistributed * move `CalculateCurrentAmpere` to `HybridPICModel` * refactor: moved `HybridPICSolveE` to `HybridPICModel` class --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com> Co-authored-by: Remi Lehe <remi.lehe@normalesup.org>
2023-06-12Replace amrex::Abort with WARPX_ABORT_WITH_MESSAGE (#3965)Gravatar Luca Fedeli 30-75/+97
* replace amrex::Abort with WarpX macros * use amrex::Abort in a GPU kernel * use amrex::Abort in a GPU kernel * use amrex::Abort in a GPU kernel * use amrex::Abort in a GPU kernel * use amrex::Abort in a GPU kernel * use amrex::Abort in a GPU kernel * adding back missing include * use amrex::Abort in a GPU kernel * use amrex::Abort in a GPU kernel * use amrex::Abort in a GPU kernel * bump precision
2023-06-12precommit: make sure isort output is compatible with black (#3981)Gravatar Ryan Sandberg 4-12/+38
* make sure isort output good for black
2023-06-09Fix SyncCurrent and SyncRho for multi-levels (#3777)Gravatar Weiqun Zhang 2-54/+213
* Fix SyncCurrent and SyncRho for multi-levels Previously these two function did not work when max_level > 1. For example, when max_level = 2, the coarse patch data from level 2 were coarsened and added to the fine patch on level 1. However, the coarse patch on level 1 did not have any contribution from level 2 as it should have, because the coarsening was performed before the fine patch on level 1 received the level 2 contribution. The order has been fixed in this commit. * Improve inline comment Co-authored-by: Weiqun Zhang <WeiqunZhang@lbl.gov> * Improve inline comments * Reset CI benchmark * Add comments * Update Source/Parallelization/WarpXComm.cpp Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja> * Update Source/Parallelization/WarpXComm.cpp Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja> * Update Source/Parallelization/WarpXComm.cpp Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja> --------- Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com> Co-authored-by: Edoardo Zoni <ezoni@lbl.gov> Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
2023-06-09`geometry.is_periodic`: Only Warn (#3974)Gravatar Axel Huebl 1-7/+11
We want to be able to directly run a simulation from the created `warpx_used_inputs` file of a previous simulation. Since we use `geometry.is_periodic` internally to communicate boundary conditions to AMReX solvers and communication routines, we cannot fail if it is present but instead should only warn.
2023-06-08Read RZ laser files produced by lasy (#3910)Gravatar Ilian Kara-Mostefa 11-69/+495
* Starting to develop on the integration of lasy RZ coordinates * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * SImplify attribute of geometry for comparison * Start developing RZ block * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Implement legacy mode * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Fix file_name initialization for RZ test * Clear commented-out code * Change permission * import sys in analysis_2d_binary.py & add checksum test * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * add explanations in class file and update the docs * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * ignore y_min and y_max allocation in 2D * fix syntax * Implement warnings, improving docs, fix indentation * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Starting to develop on the integration of lasy RZ coordinates * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * SImplify attribute of geometry for comparison * Start developing RZ block * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * rebase legacy_mode * delete obsolete file * Starting to develop on the integration of lasy RZ coordinates * Start developing RZ block * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * delete obsolete file * fixing rebase * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * continuing RZ implementaion development * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Implement RZ lasy file reading & automated test * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * fix merge * Starting to develop on the azimuthal decomposition * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Implement azimuthal modes reading for RZ lasy files * fix second component of 'lo' and 'hi' * Fix azimuthal modes reading & compute E_max from formula * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Allocating time_chunk_size outside GPU ParallelFor * Update the docs * Allocate n_rz_azimuthal_components outside GPU ParallelFor * Fix checksum test * Replace Abort message with new macro * Make narrowing conversion explicit using static_cast for 3D and RZ lasy files * new attempt to fix the checksum test * reduce stop_time in the inputs_file to fix the checksum test * Update checksum * Update documentation * Fix indentations, spaces and move 'intenal_fill_amplitude_uniform' * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Split 'internal_fill_amplitude_uniform' for lasy files reading * Fix comments in analysis_from_RZ_file.py * Read current_time_chunk_size instead of time_chunk_size set by the user * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Remove unsused time_chunk_size variable * Dynamically resize buffers for every `read_chunk` * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Fix compilation --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Remi Lehe <remi.lehe@normalesup.org>
2023-06-07Make sbatch command consistent with the example file (#3972)Gravatar Ilian Kara-Mostefa 1-1/+1
2023-06-07Doc: rocFFT 5.4+ defaults to in-memory (#3968)Gravatar Axel Huebl 4-4/+4
The JIT cache is now in-memory for ROCm 5.4+. We should potentially disable this work-around once we update modules, so we can make use of faster calls to JITed kernels again.
2023-06-06[pre-commit.ci] pre-commit autoupdate (#3970)Gravatar pre-commit-ci[bot] 1-1/+1
updates: - [github.com/hadialqattan/pycln: v2.1.3 → v2.1.5](https://github.com/hadialqattan/pycln/compare/v2.1.3...v2.1.5) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2023-06-06Use clang-tidy in CI (#3917)Gravatar Luca Fedeli 3-0/+114
* add clang-tidy workflow * fix missing newline * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * make clang.14.sh executable * remove non explicitly selected checks * complete list of dependencies * fix bug * specify path of clang-tidy file * fix bug * add new check * remove one check * add magic numbers check * removed one check * keep only one check * Docs: Conda Dev w/ Boost (#3911) Add the `boost` package to the conda developer environment. Used for QED table generation. * Fix typo in Adastra cluster documentation (#3918) * add back three checks * prepare clang-tidy wrapper * actually use clang-tidy in the script * test * fix bug * actually use clang-tidy * fixed bug * fixed bug * fixed bug * fixed bug * remove all checks except the selected 3 * fixed bug * fixed bug * fixed bug * remove one check * Fix Concurrency Issue * BLAS++/LAPACK++ for RZ+PSATD * Build all 4 WarpX DIMS * add few echo for test purposes * try to debug mysterious error * don't test RZ with clang-tidy * add back RZ test * check also header files * remove header filter since it does not work as expected * fixed bug * check also WarpX headers * clean .clang-tidy * make regex more precise according to Weiqun's suggestion --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja> Co-authored-by: Neïl Zaim <49716072+NeilZaim@users.noreply.github.com>
2023-06-05AMReX: Weekly Update (#3969)Gravatar Axel Huebl 5-5/+5
2023-06-05Add waterbag generation in injector (#3698)Gravatar Davide Terzani 7-56/+279
* Add waterbag generation in injector * Fix typo in average * Renamed distribution from waterbag to uniform * Updated doc * Fixed typo in Docs * Add test for uniform distribution * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Fixed test * Test now reads bin centers * Fixed assertion truth * Fixed histogram normalization in test * Update Checksum Created via: ```bash ./run_test.sh initial_distribution ``` --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
2023-06-05Release 23.06 (#3962)Gravatar Axel Huebl 11-13/+13
* AMReX: 23.06 * PICSAR: 23.06 * WarpX: 23.06
2023-06-04Fix wrong executable and missing Werror flag in CI test (#3964)Gravatar Luca Fedeli 1-1/+6
* change executable from warpx.3d to warpx.rz in order to run a rz simulation * add -Werror before compiling WarpX in CI test
2023-06-03Add CI test in single precision (#3955)Gravatar Luca Fedeli 2-0/+95
* add CI test in single precision * Update .github/workflows/ubuntu.yml Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja> * add dependencies to compile WarpX with RZ support in ubuntu workflow * fixed bug * use openMP for blaspp * remove OpenMP from gcc12.sh * fix bug * use new file for g++12+blaspp dependencies * remove wrong name in copyright * make script executable * Test RZ * Align --------- Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
2023-06-02Histogram 2D (#3883)Gravatar Juliette Pech 15-16/+606
* Histogram 2D A new functionality has been added. The files ParticleHistogram2D.cpp and ParticleHistogram2D.H allow the user to plot a 2D histogram that computes the number of particles for a given abscissa and ordinate. * Modification to solve NVCC 11.8.0 GNUmake issue ParticleHistogram2D.cpp added into Make.package * Test for using openPMD Test to activate the plug in for openPMD : #ifdef WARPX_USE_OPENPMD Error message otherwise. * Test for using openPMD continued * New version of the ParticleHistogram2D option The user can now choose the value of the weight via a value_function. Another parameter was therefore added : w The documentation has also been updated and an example (input file + python script for postprocessing) has been added to Examples/Physics_application/laser_ion * Python script updated The python script written for postprocessing the ParticleHistogram2D option has been renamed to pass a check test. The argparse module has also been added to the code instead of the originally implemented command line interaction. Now the user must pass arguments when executing the script. * Input files of the laser-ion example merged The input file originally created for the 2D histogram has been merged with the initial input file "inputs" of the example. * Correction of a display bug * Help function for openPMD files A help function has been created to find the correct file type when writing openPMDfiles. Another update : the file type will be returned in the warpx_used_inputs file after running a simulation. * Typo fixed in the python script used for 2D histograms visualisation Typo for the shape of the data * Typo in the help function file created * Some typo fixed for checks Modifications in the input file of the laser-ion example and in the ParticleHistogram2D.cpp file. * Typo fixed : declaration on the WarpXOpenPMDFileType function outside #ifdef WARPX_USE_OPENPMD * Typo for failing check NVCC 11.8.0 GNUmake * Typo for failing check NVCC 11.8.0 GNUmake (continued) * Typo for failing check NVCC 11.8.0 GNUmake (continued, abort message) * .cpp file added to Make.package * Time added to the data Simulation time is now visible on Hist2D plots * Update Docs/source/dataanalysis/reduced_diags.rst Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja> * Update Docs/source/usage/parameters.rst Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja> * Update Examples/Physics_applications/laser_ion/analysis_histogram_2D.py Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja> * Update Examples/Physics_applications/laser_ion/analysis_histogram_2D.py Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja> * Update Docs/source/usage/parameters.rst Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja> * Update Docs/source/usage/parameters.rst Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja> * Update Source/Diagnostics/ReducedDiags/ParticleHistogram2D.cpp Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja> * Update Source/Diagnostics/ReducedDiags/ParticleHistogram2D.H Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja> * Update Source/Diagnostics/ReducedDiags/ParticleHistogram2D.cpp Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja> * Update Source/Diagnostics/OpenPMDHelpFunction.cpp Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja> * Update Source/Diagnostics/OpenPMDHelpFunction.H Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja> * Multiple hist2D active in the same simulation now possible The laser-ion example as well as the documentation have been modified accordingly. * Display enhancement for the laser-ion example * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --------- Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2023-06-02RZ PSATD: `do_pml_div..._cleaning` not implemented, fix default (#3940)Gravatar Remi Lehe 2-10/+12
* Correctly handle do_pml_dive_cleaning for RZ PSATD * Update Docs/source/usage/parameters.rst * Apply suggestions from code review --------- Co-authored-by: Edoardo Zoni <ezoni@lbl.gov>
2023-06-02Add max_background_density to MCCollision (#3960)Gravatar David Grote 1-1/+7
2023-06-02revert #3928 calculation of b0 in binary collisions and add comment (#3961)Gravatar Severin Diederichs 1-3/+9
* revert b0 calculation and add comment * Add More References
2023-06-02Update PICMI version (#3959)Gravatar Remi Lehe 3-3/+3
2023-06-01Update picmi interface for MCCCollisions (#3953)Gravatar David Grote 1-6/+12
* Allow string expressions for MCCCollisions background density and temperature * Add check of whether value is str since special behavior is needed
2023-06-01Fix: PSATD+RZ in SP (#3956)Gravatar Axel Huebl 2-13/+36
* Fix: PSATD+RZ in SP Fix the FFTW logic for RZ simulations using the PSATD field solver in single precision. Previously, the API was using the double precision interfaces for FFTW unconditionally. * Simplify Plans Reuse AnyFFT defines.
2023-05-31make narrowing conversion explicit using static_cast (#3954)Gravatar Luca Fedeli 1-1/+3
2023-05-30Work-Around: I/O w/ GCC 8.3 (#3943)Gravatar Axel Huebl 3-13/+12
Up to GCC 8.3, severe bugs skipping required copy elision are present. Apply work-arounds for issues seen on Lassen (LLNL). ``` Source/Diagnostics/WarpXOpenPMD.cpp(543): error: function "NamedComponentParticleContainer<T_Allocator>::operator=(const NamedComponentParticleContainer<T_Allocator> &) [with T_Allocator=amrex::PinnedArenaAllocator]" Source/Particles/NamedComponentParticleContainer.H(100): here cannot be referenced -- it is a deleted function Source/Diagnostics/WarpXOpenPMD.cpp(545): error: function "NamedComponentParticleContainer<T_Allocator>::operator=(const NamedComponentParticleContainer<T_Allocator> &) [with T_Allocator=amrex::PinnedArenaAllocator]" Source/Particles/NamedComponentParticleContainer.H(100): here cannot be referenced -- it is a deleted function 2 errors detected in the compilation of "Source/Diagnostics/WarpXOpenPMD.cpp". ... Source/Diagnostics/FlushFormats/FlushFormatPlotfile.cpp(345): error: function "NamedComponentParticleContainer<T_Allocator>::operator=(const NamedComponentParticleContainer<T_Allocator> &) [with T_Allocator=amrex::PinnedArenaAllocator]" Source/Particles/NamedComponentParticleContainer.H(100): here cannot be referenced -- it is a deleted function ... Source/Particles/ParticleBoundaryBuffer.cpp(228): error: function "NamedComponentParticleContainer<T_Allocator>::operator=(const NamedComponentParticleContainer<T_Allocator> &) [with T_Allocator=amrex::PinnedArenaAllocator]" Source/Particles/NamedComponentParticleContainer.H(100): here cannot be referenced -- it is a deleted function 1 error detected in the compilation of "Source/Particles/ParticleBoundaryBuffer.cpp". ``` (Implementing the copy operator does not help.)
2023-05-30AMReX: Weekly Update (#3951)Gravatar Axel Huebl 5-5/+5
2023-05-26Doc: Update Lassen (LLNL) (#3942)Gravatar Axel Huebl 4-23/+28
* Doc: Update Lassen (LLNL) Update the modules and dependencies on Lassen (LLNL). * Switch to Clang 12 Avoid GCC 8.3 compiler bugs.
2023-05-26Fix: PSATD RZ Multi-Dim CUDA Build (#3947)Gravatar Axel Huebl 1-28/+33
Marked some CUDA targets as CXX targets and failed to compile.
2023-05-26Explicitly delete NamedComponentParticleContainer's copy constructor (#3944)Gravatar Remi Lehe 1-0/+5
2023-05-25Fix bug of txye binary file reader when used with MPI (#3941)Gravatar Luca Fedeli 1-0/+12
* fix bug of txye binary file reader * fix bug
2023-05-24Sort WarpX-tests.ini file (#3935)Gravatar Luca Fedeli 1-1807/+1805
* sort test file * add back missing tests * Update Regression/WarpX-tests.ini Co-authored-by: Roelof Groenewald <40245517+roelof-groenewald@users.noreply.github.com> --------- Co-authored-by: Roelof Groenewald <40245517+roelof-groenewald@users.noreply.github.com>
2023-05-23Update documentation to use WarpX on LUMI supercomputer (#3934)Gravatar Luca Fedeli 3-49/+82
* Update LUMI documentation * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Update Docs/source/install/hpc/lumi.rst Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja> * Update Tools/machines/lumi-csc/submit.sh Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja> * use only 16 threads to compile * Update Tools/machines/lumi-csc/submit.sh Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja> * add some sleep instructions after FS operations, as suggested by ax3l * add comments * Cleanup double sleep --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
2023-05-23CI: No Draft CodeQL (#3937)Gravatar Axel Huebl 1-0/+1
Do not run CodeQL scans on *Draft* PRs, since annotations can be noisy for drafts.
2023-05-22Multi-Dim Buildsystem Support (#3933)Gravatar Axel Huebl 52-619/+759
* Multi-Dim Buildsystem Support * Docs
2023-05-22AMReX/PICSAR: Weekly Update (#3936)Gravatar Axel Huebl 7-28/+29
* AMReX: Weekly Update * Reset Benchmarks Values close to zero expected value, so pure machine precision change. Originating in refactoring of AMReX parser.
2023-05-22CUDA: Recommend 11.3+ (#3932)Gravatar Axel Huebl 1-1/+1
We already saw C++17 issues with the earlier CUDA releases in the 11.0 line and found on Summit (and with ImpactX) that CUDA 11.3+ is more reliable - and now widely available.
2023-05-22Doc: Summit ADIOS 2.8.1 (#3931)Gravatar Axel Huebl 1-1/+1
Update ADIOS2 on Summit to a more modern release.