Releases: BLAST-WarpX/warpx
Releases · BLAST-WarpX/warpx
25.10
Dependencies
- AMReX: 25.10
- pyAMReX: 25.10
- PICSAR-QED: 25.06
- pybind11:
3.0.1
- picmistandard: 0.33.0
- openPMD-api: 0.16.1
- Python: 3.9 - 3.13
What's Changed
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci[bot] in #6146
- More readable code in PushPX, PushXPSingleStep by @EZoni in #6113
- FieldGather: Enable Lower D by @ax3l in #6127
- Docs: Fix HTTP Error 403 by @EZoni in #6151
- Change y to z in WarpX 2D examples by @RemiLehe in #6152
- remove unnecessary input param from ImplicitPushXP() by @JustinRayAngus in #6148
- UB sanitizer test : print stack trace for easier debugging by @lucafedeli88 in #6153
- Python:
MultiFabRegister::list
by @ax3l in #6164 - Pre-Build AMReX: RCylindrical, RSphere by @ax3l in #6163
- Cleanup/streamline ImplicitPushXPSubOrbits() by @JustinRayAngus in #6160
- move detailed print for implicit solvers to base class. by @JustinRayAngus in #6168
- ImplicitPushPX: fix maybe-uninitialized warning by @lucafedeli88 in #6172
- Implicit gamma inverse function by @JustinRayAngus in #6170
- Implementation of Bremsstrahlung collisions by @dpgrote in #5537
- Dependencies: weekly update by @github-actions[bot] in #6171
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci[bot] in #6173
- Diagnostics: pass particle container by const ref to (slightly) reduce reliance on WarpX::GetInstance by @lucafedeli88 in #5712
- Fix loading photons from openPMD file by @aeriforme in #6155
- PSATD: OMP Parallelize Data Packing and Unpacking by @WeiqunZhang in #6167
- Suppress GCC -Warray-bounds warnings by @EZoni in #6088
- Fix minor bugs in script to update dependencies by @EZoni in #6150
- MF Register Direction: Descriptive Members by @ax3l in #6162
- Add example of basic python input file by @dpgrote in #6149
- CI: debug autoupdate workflows by @EZoni in #6122
MANIFEST.in
:dependencies.json
by @ax3l in #6179- Python: Remove Deprecated
multifab
Overload by @ax3l in #6180 - Fix ablastr::utils::write_used_inputs_file by @WeiqunZhang in #6165
- add option to modify particle update on initial Newton step by @JustinRayAngus in #6169
- AMReX/pyAMReX/PICSAR: Weekly Update by @ax3l in #6182
- New SubcyclingHalf enum for subcycling algorithm by @EZoni in #6174
- Allow
phi
output with non-ES solvers by @roelof-groenewald in #5872 - use span to allocate mesh data by default by @guj in #6123
- Doc: Frontier Plotfile Options by @ax3l in #5962
- MacroscopicEvolveE: pass macroscopic_solver_algo to MacroscopicEvolveE as a parameter instead of using WarpX::macroscopic_solver_algo by @lucafedeli88 in #5770
- Add Python hook to change
do_no_gather
anddo_not_deposit
value for particle container by @roelof-groenewald in #6190 - Move PushType enum to WarpXAlgorithmSelection.H by @EZoni in #6187
- Add CI test to read particles from openPMD by @RemiLehe in #5937
- Fix Warning: GNU 11 + NVCC 11.7 by @ax3l in #6193
- Python:
load_inputs_file
by @ax3l in #6154 - Dependencies: weekly update by @github-actions[bot] in #6196
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci[bot] in #6198
- Add time-varying external fields by @SeverinDiederichs in #6194
- Fix a bug in the 2d mode of the IGF solver by @WeiqunZhang in #6199
- AMReX/pyAMReX/PICSAR: Weekly Update by @ax3l in #6201
- Fix:
Config.precision
by @ax3l in #6200 - Update Polaris install scripts by @roelof-groenewald in #6178
- Add option to have the process number of each box in the output by @atmyers in #6177
- Update the "X" in ASCII art "WarpX" text to look more like our new logo by @lucafedeli88 in #6185
- Docs: fix link to input files by @aeriforme in #6204
- Some cleaning of the #include directives by @lucafedeli88 in #6209
- Use a different name for Breit-Wheeler-specific functions by @RemiLehe in #6208
- Binary collisions: move two-product initialization out of the fusion folder by @RemiLehe in #6212
- DSMC: rename m_ioniz_product to m_product by @RemiLehe in #6211
- LinearBreitWheelerCollisionFunc.H and LinearComptonCollisionFunc.H : remove unnecessary #include of the WarpX header by @lucafedeli88 in #6217
- Some cleaning of the #include directives (II) by @lucafedeli88 in #6216
- Initial Box Splitting (Profile): NRandomPerCell by @ax3l in #6159
- Dependencies: weekly update by @github-actions[bot] in #6224
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci[bot] in #6228
- Add rotation to Gaussian beam initialization by @aeriforme in #4767
- Use shuffling to avoid N^2 computation in luminosity calculation by @atmyers in #6192
- AddParticles.cpp : fix "maybe-uninitialized" issue for variable XDim3 r by @lucafedeli88 in #6230
- Rename WarpXParticleContainer's member variable mass to m_mass by @EZoni in #6232
- Implicit particle suborbits refactor. by @JustinRayAngus in #6202
- Fix input file of photon pusher test by @EZoni in #6235
- MusclHancockUtils.H: remove unnecessary min3 and max3 helper functions by @lucafedeli88 in #6234
- Add error message for non-supported scattering processes in DSMC by @roelof-groenewald in #6236
- WarpX class: remove unnecessary getPMLRZ() method from WarpX class by @lucafedeli88 in #6237
- WarpX class: move UpdateInjectionPosition method to anonymous namespace in WarpXMovingWindow.cpp by @lucafedeli88 in #6238
- Fix position update for flux of photons by @EZoni in #6231
- Only allow Gaussian beam rotation in 3D and 2D XZ by @aeriforme in #6242
- WarpX class: remove unused variables plotfile_headerversion and slice_plotfile_headerversion by @lucafedeli88 in #6244
- SpectralFieldData, SpectralFieldDataRZ, SpectralSolver : move implementation of some methods from the header to the cpp file by @lucafedeli88 in #6226
- Shared deposition not implemented in RCYLINDER and RSPHERE geometries by @EZoni in #6213
- Docs: fix two broken links by @aeriforme in #6246
- Release: WarpX 25.10 by @github-actions[bot] in #6239
Full Changelog: 25.09...25.10
25.09
Dependencies
- AMReX: 25.09
- pyAMReX: 25.09
- PICSAR-QED: 25.06
- picmistandard: 0.33.0
- openPMD-api: 0.16.1
- Python: 3.9 - 3.13
What's Changed
- Add tutorials section in documentation by @aeriforme in #6065
- Refactor ReadBCParams by @lucafedeli88 in #5767
- Update to use the correct stencils in FieldPoyntingFlux by @dpgrote in #6060
- Fix external field reading, in RZ geometry by @RemiLehe in #6069
- Fix mislabeled diagnostic output for macroscopic media by @bnara in #6072
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci[bot] in #6075
- CI: Remove Hard-Coded Path to Checksum Files by @EZoni in #5888
- Dependencies: weekly update by @EZoni in #6074
- Add full mass matrices for charge-conserving Villasenor deposition by @JustinRayAngus in #6021
- Several fixes for warnings from doxygen by @dpgrote in #6076
- Python: Precision & SIMD in
Config
by @ax3l in #6089 - Load density from openPMD file by @WeiqunZhang in #6062
- Docs: Hide tutorial chapter title from front page by @EZoni in #6070
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci[bot] in #6099
- Updated output for quadratic rho and J time dependencies by @oshapoval in #6093
- Doc Tuo (LLNL): Small Typos by @ax3l in #6100
- Dependencies: weekly update by @EZoni in #6098
- Automated workflows for weekly update and monthly release by @EZoni in #6054
- Add WarpX logo in the ReadTheDocs documentation by @RemiLehe in #6101
- CMake: WarpX_SIMD in C++20 or Newer by @ax3l in #6086
- CMake: Fix Fast-Math with Pre-built AMReX by @ax3l in #6096
- Doxygen: remove obsolete macros from Doxyfile by @EZoni in #6079
- used perform data write in all BTD cases by @guj in #5963
- CuPY not compatible with cython 3.1 by @titoiride in #5991
- Refactor Implicit parameters in readthedocs by @JustinRayAngus in #6095
- Tuolumne (LLNL): Jobscript Updates by @ax3l in #6105
- Add linear Compton scattering by @aeriforme in #5878
- Added 1D & 2D CI test with loading density from .h5 file by @oshapoval in #6106
- Add recent papers citing/using WarpX by @RemiLehe in #6111
- Update WarpX's high-level description by @RemiLehe in #6103
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci[bot] in #6114
- CI: edit permissions for autoupdate workflows by @EZoni in #6112
- Update the embedded documentation hyperlink for parallelization info to a working URL by @Noerr in #6108
- Fix openPMD output of "eb_covered" in RZ geometry by @RemiLehe in #6110
- Add verbosity flag for diagnostics by @roelof-groenewald in #6092
- CI: debug autoupdate workflows (GitHub Actions) by @EZoni in #6115
- Implicit push cleanup by @JustinRayAngus in #6120
- Linear Compton follow-up 1 by @aeriforme in #6119
- Add CI load density RZ by @oshapoval in #6118
- Update the WarpX intro page by @RemiLehe in #6124
- Update acknowledgment slide by @aeriforme in #6104
- Set synchronize_velocity_for_diagnostics = true by @dpgrote in #5821
- created an ImplicitOptions struct to pass into Evolve(). by @JustinRayAngus in #6116
- Fix --skip-fields behavior when running default regression test by @aeriforme in #6129
- CI: workaround for macOS issue by @EZoni in #6136
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci[bot] in #6133
- FlushFormat int comp writing by @JustinRayAngus in #6130
- Implement particle suborbits for the implicit solver by @dpgrote in #5969
- Update picmi.py by @yanghf263 in #6137
- Documentation: update in adastra documentation by @grobertdautun in #6135
- Release: WarpX 25.09 by @github-actions[bot] in #6132
New Contributors
- @Noerr made their first contribution in #6108
- @github-actions[bot] made their first contribution in #6132
Full Changelog: 25.08...25.09
25.08
Dependencies
- AMReX: 25.08
- pyAMReX: 25.08
- PICSAR-QED: 25.06
- picmistandard: 0.33.0
- openPMD-api: 0.16.1
- Python: 3.9 - 3.13
What's Changed
- SYCL: Turn on AOT in CI and Update MKL by @WeiqunZhang in #6007
- Add function to get total kinetic energy for a given species by @roelof-groenewald in #5943
- Fix temperature deposition thread safety by @clarkse in #6001
- Moved particle creation routines into a new file by @dpgrote in #5997
- Rename
np_current
variable for more clarity by @EZoni in #6008 - Update dane scripts by @dpgrote in #6009
- Further optimizations for the binary collision module by @atmyers in #5981
- Initial partition based particle density profile by @WeiqunZhang in #5812
- Remove unused file from binary collisions module by @atmyers in #6015
- adding total iteration count to the nonlinear diagnostic file. by @JustinRayAngus in #6013
- Enable general weight scaling for radial particle distributions by @dpgrote in #5009
- fields.py relies on MultiFab global indexing by @dpgrote in #5407
- Fix energy and momentum conservation after pair wise Coulomb collisions by @dpgrote in #5932
- Update install direction in dane_warpx.profile.example by @dpgrote in #6010
- Fix GCC 8:
stdc++fs
by @ax3l in #5990 - PsatdAlgorithmRZ: Fix uninitialized member variable by @WeiqunZhang in #6017
- AMReX/pyAMReX/PICSAR: Weekly Update by @ax3l in #6026
- CMake: ABLASTR/WarpX/AMReX SIMD by @ax3l in #5966
- fixed index for gmres_iter in 1d planar pinch analysis script by @JustinRayAngus in #6023
- correct step for writing of diagnostic file for the Picard nonlinear … by @JustinRayAngus in #6024
- refactored how to reflect/set Rho and J at PEC/PMC boundaries. by @JustinRayAngus in #5909
- ensure time solver-dependent alpha is set correctly in the curl-curl PC. by @JustinRayAngus in #6022
- permit CurlCurlMLMG with PEC and SilverMueller BCs. by @JustinRayAngus in #6027
- Added 1D Pierce Diode CI test by @oshapoval in #5999
- add comment about why tiling is not permitted. by @JustinRayAngus in #6029
- SymPy > 1.12.1 yield wrong results in PSATD symbolic notebooks by @EZoni in #5968
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci[bot] in #6020
- Weekly update of dependencies by @EZoni in #6032
- Update perlmutter.rst by @truewis in #6018
- Bug fix: Mixed precision builds fail due to conflicting types by @roelof-groenewald in #6028
PlasmaInjector.H
: HideopenPMD.hpp
by @ax3l in #6016- Add
--release
option to script for update of dependencies by @EZoni in #6033 - Fix string concatenation in assert by @AlexanderSinn in #6040
- Update dependencies by @EZoni in #6043
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci[bot] in #6046
- Doc: openPMD Airplane Mode by @ax3l in #6044
- Doxygen CI: Warnings as Error by @ax3l in #3560
- Run test_2d_theta_implicit_strang_psatd test on one processor by @dpgrote in #6050
- Doxygen: No Python by @ax3l in #6052
- Ascent 0.9.3 by @ax3l in #6051
- Tools: improve automated dependencies update by @EZoni in #6038
- Doc: oneAPI Requirements by @ax3l in #6055
- Updating initialization of external vector potential based fields to … by @clarkse in #6047
- AMReX/pyAMReX/PICSAR: Weekly Update by @ax3l in #6059
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci[bot] in #6064
- Minor refactoring of PIC loop extracted from PR 5955 by @EZoni in #6012
- CMake: Add
WarpX_FASTMATH
by @ax3l in #6057 - WarpX 25.08 by @EZoni in #6066
New Contributors
Full Changelog: 25.07...25.08
25.07
Dependencies
- AMReX: 25.07
- pyAMReX: 25.07
- PICSAR-QED: 25.04
- picmistandard: 0.33.0
- openPMD-api: 0.16.1
- Python: 3.9 - 3.13
What's Changed
- Deactivate failing Windows CI workflow by @RemiLehe in #5934
- Implement particle_max_grid_crossings by @dpgrote in #5866
- Bugfix: Hybrid-pic restart causing inconsistencies by @roelof-groenewald in #5906
- Fix checksum failure in LASY test by @RemiLehe in #5941
- Simplify logic in the DSMC code by @RemiLehe in #5910
- Dependencies: Weekly Update by @EZoni in #5939
- Use the correct copy functor for DSMC impact ionization by @RemiLehe in #5940
- Run sanitizer test in double precision by @RemiLehe in #5936
- [Hackathon] Refactor ParserUtils and IntervalsParser by @WeiqunZhang in #5254
- Move RelativeCellPosition.H/cpp from Utils to ablastr/utils by @lucafedeli88 in #5898
- Enable Collocated grid Solve for Ohm's Law Hybrid solver by @clarkse in #5838
- Treat DSMC charge exchange as a product-producing process by @oshapoval in #5908
- Updating documentation to clarify that certain callbacks are not exec… by @clarkse in #5954
- Mini-PR: Fix outdated line in documentation by @roelof-groenewald in #5951
- Use step to determine collision execution rather than time by @roelof-groenewald in #5944
- Switch Windows Clang test to windows-2022 by @RemiLehe in #5930
- Adding flags to field initializer objects in PICMI to control project… by @clarkse in #5956
- CI: Fix Skipped Required Workflows (again) by @EZoni in #5907
- Update reference to new paper by @RemiLehe in #5883
- Move WarpX::ErrorEst from Utils/WarpXTagging.cpp to WarpX.cpp by @lucafedeli88 in #5897
- LLNL (LC) Tioga w/o MI300A by @ax3l in #5970
- CI: improve paths exclusion filters by @EZoni in #5972
- Doc LLNL (LC) Tuolumne by @ax3l in #5971
- CI: fix Open MPI bug in Azure pipelines by @EZoni in #5973
- Update picmi.py to clarify the effect of holmstrom_vacuum_region by @yanghf263 in #5977
- AMReX/pyAMReX/PICSAR: Weekly Update by @ax3l in #5948
- RZ: GPU-Side Abort in FDTD by @ax3l in #5974
- Aurora setup by @zippylab in #5979
- Add feature running variance deposition by @clarkse in #5811
- Clang UB sanitizer CI test: increase coverage by @lucafedeli88 in #5597
- Adds emojis to issues template names by @aeriforme in #5964
- Tuolumne (LLNL): AMReX Memory Release by @ax3l in #5982
- Tools: simplify workflows for commit, version updates by @EZoni in #5965
- Add new paper using WarpX to highlights by @roelof-groenewald in #5989
- CMake: Fix Superbuilds by @ax3l in #5993
- Splitting: Remove
pc_tmp
by @ax3l in #5992 - Allow rigid free-drift in transverse coordinates by @bnara in #5986
- Fixing initialization of external vector potential when using periodi… by @clarkse in #5988
- Add new paper using WarpX for Hall thruster simulations by @RemiLehe in #5995
- Reduce kernel sizes by @roelof-groenewald in #5994
- Infrastructure for using full mass matrices in the implicit solvers by @JustinRayAngus in #5929
- FullDiagnostics.cpp : use WARPX_ABORT_WITH_MESSAGE instead of std::cout by @lucafedeli88 in #6000
- Remove inclusion of unused header ablastr/parallelization/KernelTimer.H by @lucafedeli88 in #6002
- Fix moving-window subvolume field output by @bnara in #5985
- Release: 25.07 by @EZoni in #5996
New Contributors
- @yanghf263 made their first contribution in #5977
- @zippylab made their first contribution in #5979
Full Changelog: 25.06...25.07
25.06
Dependencies
- AMReX: 25.06
- pyAMReX: 25.06
- PICSAR-QED: 25.04
- picmistandard: 0.33.0
- openPMD-api: 0.16.1
- Python: 3.9 - 3.13
What's Changed
- Add new references using WarpX by @RemiLehe in #5879
- adastra-cines/submit.sh: updated job script example by @grobertdautun in #5850
- use verbose flag in nonlinear solvers for Print() lines. by @JustinRayAngus in #5881
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #5887
- Scale the charge/current in RZ geometry when folding high-radius guard cells into domain by @RemiLehe in #5886
- Update frontier_warpx.profile.example by @titoiride in #5885
- WarpXFluidContainer::InitData : pass parameters as function arguments instead of using static variables of the WarpX class by @lucafedeli88 in #5787
- Move auxiliary function CountExtFaces from WarpX header to anonymous namespace in WarpXFaceExtensions by @lucafedeli88 in #5800
- moving Implicit routines from WarpX class to base ImplicitSolver class by @JustinRayAngus in #5882
- Dependencies: Weekly Update by @EZoni in #5884
- Fix direction in spacecraft chargining picmi script by @RevathiJambunathan in #5891
- adding limit_verbose_step flag. by @JustinRayAngus in #5880
- Add 1d cylinder and sphere by @dpgrote in #5189
- Implementing PETSc interface for preconditioned linear solves by @debog in #5856
- Exposing mf register by @RevathiJambunathan in #5846
- PML_RZ: don't use warpx static variables directly by @lucafedeli88 in #5893
- Remove superfluous if condition in impact ionization by @RemiLehe in #5895
- AcceleratorLattice.cpp: fix typo in a comment by @lucafedeli88 in #5903
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #5904
- Dependencies: Weekly Update by @EZoni in #5900
- CI: Fix Skipped Required Workflows by @EZoni in #5889
- Pass Efield as optional argument to
computePhi
by @roelof-groenewald in #5871 - [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #5911
- Dependencies: Weekly Update by @EZoni in #5912
- CI: Update PETSc Workflows by @EZoni in #5914
- Fix table in Docs/source/developers/dimensionality.rst by @dpgrote in #5920
- Add new paper by @RemiLehe in #5921
- For FieldEnergy, use validbox instead of tilebox for the volume factor by @dpgrote in #5922
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #5924
- remove erroneous use of is_tangent_to_bndy in SetRhoOrJfieldFromPEC() by @JustinRayAngus in #5905
- permit particle shape = 3 and 4 with mass matrices. by @JustinRayAngus in #5919
- Add new field diagnostic that indicates whether a given cell is covered by the EB or not by @RemiLehe in #5925
- Release: 25.06 by @EZoni in #5933
Full Changelog: 25.05...25.06
25.05
Dependencies
- AMReX: 25.05
- pyAMReX: 25.05
- PICSAR-QED: 25.04
- picmistandard: 0.33.0
- openPMD-api: 0.16.1
- Python: 3.9 - 3.13
What's Changed
- CI tests: re-enable clang thread sanitizer test by @lucafedeli88 in #5826
- adding infrastructure for computing the mass matrices to be used by the implicit EM solvers by @JustinRayAngus in #5768
- Add new paper using WarpX for astrophysical plasmas by @RemiLehe in #5834
- CI: Fix Bugs with
lasy
0.6.1 by @EZoni in #5836 - [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #5835
- updating reference for weighted-particle Coulomb collisions. by @JustinRayAngus in #5837
- Dependencies: Weekly Update by @EZoni in #5833
- print statement for LB by @RevathiJambunathan in #5808
- CI: Remove Obsolete
geometry.is_periodic
from Input File by @EZoni in #5840 - Use pyamrex in spacecraft charging example by @RemiLehe in #4817
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #5844
- pyproject: CMake 4 is fine by @ax3l in #5845
- Dependencies: Weekly Update by @EZoni in #5841
- Tests:
amrex.the_arena_init_size=0
by @ax3l in #5785 - WarpX class: coalesce the 4 declarations of ComputeExternalFieldOnGridUsingParser into one by @lucafedeli88 in #5730
- Add photon-photon collisions (linear Breit-Wheeler) by @aeriforme in #3630
- Complete Implementation of PSATD JRhom Algorithm by @oshapoval in #5682
- WarpX class: move WriteUsedInputsFile to an anonymous namespace in WarpXInitData.cpp by @lucafedeli88 in #5657
- WarpX class: move StoreCurrent and RestoreCurrent to anonymous namespace inside WarpXEvolve.cpp by @lucafedeli88 in #5747
- Dependencies: Weekly Update by @EZoni in #5857
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #5858
- CurrentDeposition.H : remove "#include WarpX.H" , pass global parameters as arguments instead by @lucafedeli88 in #5806
- Move ApplyBCKCorrection from WarpX header to anonymous namespace in WarpXFaceExtensions.cpp by @lucafedeli88 in #5590
- WarnManager.cpp : display informations of warning causing warpx to stop by @grobertdautun in #5825
- WarpX class: move CheckKnownIssues class to anonymous namespace in WarpXInitData.cpp by @lucafedeli88 in #5674
- Clang-tidy CI tests: add 2 new checks by @lucafedeli88 in #5772
- Fix bug with double counting of guard cell values in effective potential ES solver by @roelof-groenewald in #5863
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #5864
- Rename linear Breit-Wheeler test and add explanation by @aeriforme in #5854
- PML_RZ.cpp: don't use WarpX::GetInstance() by @lucafedeli88 in #5869
- Remove buggy synchronization at end of steps by @dpgrote in #5820
- Check that species involved in linear Breit-Wheeler are photons by @RemiLehe in #5848
- Unify user-input names between nuclear fusion and linear Breit-Wheeler by @aeriforme in #5853
- Reduce duplication in linear Breit-Wheeler by reusing code from fusion, DSMC by @RemiLehe in #5849
- Fix DSMC typo for non-product producing processes by @RemiLehe in #5873
- Release: 25.05 by @EZoni in #5865
- Adding python bindings and a helper setter/getter object in python to… by @clarkse in #5876
- Fix Random Engine constructor for GPU compilation by @RevathiJambunathan in #5877
- Handle impact ionization for cases where the non-target incident species is not in the products by @RemiLehe in #5852
Full Changelog: 25.04...25.05
25.04
Dependencies
- AMReX: 25.04
- PICSAR-QED: 25.04
- pyAMReX: 25.04
- picmistandard: 0.33.0
- openPMD-api: 0.16.1
- Python: 3.9 - 3.13
What's Changed
- WarpX class : move UpdateCurrentNodalToStag to anonymous namespace in WarpXComm.cpp by @lucafedeli88 in #5672
- WarpX class: move AllocateCenteringCoefficients to anonymous namespace in WarpX.cpp by @lucafedeli88 in #5666
- Make labels with math text raw strings since they behave better by @dpgrote in #5740
- Remove temporary particle container by @EZoni in #5571
- WarpX class : current_centering_* variables no longer static by @lucafedeli88 in #5641
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #5749
- HybridPICModel : pass m_fields as an argument to InitData() to reduce reliance on WarpX::GetInstance() by @lucafedeli88 in #5744
- WarpXInitData: eliminate WarpX::GetInstance from WarpX::ReadExternalFieldFromFile by @lucafedeli88 in #5745
- AcceleratorLattice: avoid using WarpX::GetInstance() by @lucafedeli88 in #5746
- PML: pass m_fields as an argument to the constructor to rely less on WarpX::GetInstance() by @lucafedeli88 in #5743
- WarpX and PML headers: remove unused fieldFactory() methods by @lucafedeli88 in #5679
- [mini] Cleanup remaining mention of the tmp_particle_container by @RemiLehe in #5756
- Fix parser function string in MCCCollision by @WeiqunZhang in #5754
- Check if implicit diagnostics file exist before writing the header by @dpgrote in #5750
- Doc: BLAST-WarpX/warpx Links by @ax3l in #5757
- WarpX class: sort_particles_for_deposition and sort_idx_type no longer static by @lucafedeli88 in #5718
- Interfacing 1D CurlCurl from AMReX by @RevathiJambunathan in #5662
- added diagnostic_interval int for nonlinear solver diagnostic. by @JustinRayAngus in #5748
- OpenPMDHelpFunction.H: remove superfluous #include by @lucafedeli88 in #5765
- Extending preconditioners to handle a diagonal operator for E-field by @debog in #5716
- Doc: More Nsight Hints by @ax3l in #5764
- Lassen: No MPI 4+ Support by @ax3l in #5759
- For Python, wrap all input strings in double quotes. by @dpgrote in #5758
- Fix docstrings in WarpXEvolve and WarpXComm : /brief -> \brief by @lucafedeli88 in #5769
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #5773
- CI: Ubuntu 22.04/24.04 in GitHub Actions, CUDA 11.7+ by @EZoni in #5731
- Fix a runtime parameter issue in time-averaged diagnostics by @WeiqunZhang in #5753
- Add more profiling instrumentation in the collision kernel by @RemiLehe in #5766
- Fix FieldPoyntingFlux diagnostic for GPU by @dpgrote in #5780
- Calculate global debye length for Coulomb collisions by @dpgrote in #5763
- HankelTransform : remove unnecessary #include "WarpX.H" by @lucafedeli88 in #5789
- change sign for imaginary part of xy in implicit gathers. by @JustinRayAngus in #5791
- Added
BL_PROFILE
statements to implicit solvers by @debog in #5783 - WarpX class: move PSATDSubtractCurrentPartialSumsAvg to anonymous namespace in WarpXPushFieldEM.cpp by @lucafedeli88 in #5781
- Add
WarpX_UNITY_BUILD
by @ax3l in #5702 - Add automated test for ion impact ionization by @RemiLehe in #5761
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #5792
- Use KineticEnergy instead of getEnergy by @lucafedeli88 in #5786
- ParticleUtils.H: pass geometry as a parameter to findParticlesInEachCell instead on relying on WarpX::GetInstance() by @lucafedeli88 in #5771
- NuclearFusionFunc.H: remove superfluous include of the WarpX header by @lucafedeli88 in #5794
- ElectrostaticSolver.H: remove superfluous include of the WarpX header by @lucafedeli88 in #5795
- WarpX.cpp: remove some superfluous preprocessor directives by @lucafedeli88 in #5796
- direct gather routine for single vector field by @JustinRayAngus in #5776
- PoissonBoundaryHandler.H: remove #include "WarpX.H" by @lucafedeli88 in #5798
- ParticlesBoundaries.cpp: remove unnecessary #include "WarpX.H" by @lucafedeli88 in #5799
- Docs: add hint in how-to guide for checksum tool by @EZoni in #5663
- CI: Add Workflow to Run Jupyter Notebooks by @EZoni in #5696
- PartitionParticlesInBuffers : pass parameters as function arguments instead of using WarpX static variables by @lucafedeli88 in #5788
- Add Tyushev (2025) to highlights by @roelof-groenewald in #5801
- Fix bad memory access in 1D and 2D in VandB deposition by @dpgrote in #5809
- Fix new bug in particle BTD by @atmyers in #5813
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #5815
- Update constants to use values from CODATA 2022 by @dpgrote in #5661
- CI: Fix Post-Job Ccache Error by @EZoni in #5823
- Weekly Update, Release 25.04 by @EZoni in #5814
Full Changelog: 25.03...25.04
25.03
Dependencies
- AMReX: 25.03
- PICSAR-QED: 25.01
- picmistandard: 0.33.0
- pyAMReX: 25.03
- openPMD-api: 0.16.1
- Python: 3.9 - 3.13
What's Changed
- AMReX/pyAMReX/PICSAR: Weekly Update by @ax3l in #5643
- RTD: Fix GA Integration by @ax3l in #5645
- Add MCC forward scattering by @budjensen in #5621
- Add PMC boundary conditions by @dpgrote in #5628
- Remove NamedComponentParticleContainer (Use from AMReX) by @atmyers in #5481
- Doc: New APL on Magnetic Reconnection by @ax3l in #5646
- Update highlights for Ma et al. PRAB oblique laser in RZ by @n01r in #5653
- Doc : MR paper highlight by @RevathiJambunathan in #5651
- Move Fornberg coefficients calculations from WarpX to ablastr by @lucafedeli88 in #5619
- WarpX class : em_solver_medium no longer a static variable by @lucafedeli88 in #5642
- Clang-tidy CI test: bump version from 16 to 17 by @lucafedeli88 in #5600
- WarpX class: moving initialization of warning manager to WarpXInit by @lucafedeli88 in #5579
- WarpX class: move shiftMF to anonymous namespace in WarpXMovingWindow.cpp by @lucafedeli88 in #5609
- AMReX/pyAMReX/PICSAR: Weekly Update by @ax3l in #5655
- Move several EB-related methods out of the WarpX class by @lucafedeli88 in #5630
- WarpX class: simplify return type of get_spectral_solver_fp using
auto&
by @lucafedeli88 in #5656 - Add reduced diagnostic: 2d differential luminosity by @aeriforme in #5545
- WarpX class: move SetDotMask to anonymous namespace in WarpX.cpp by @lucafedeli88 in #5644
- Update to latest AMReX version by @EZoni in #5669
- Add external particle fields ohms law hybrid by @clarkse in #5275
- Add PECInsulator to Curl-Curl BC by @dpgrote in #5667
- Perlmutter: SW Install Updates by @ax3l in #5648
- mini-PR: Cleanup in Ohm solver for readability by @roelof-groenewald in #5675
- WarpX class: fuse together doFieldIonization with doFieldIonization(lev) and doQEDEvents with doQEDEvents(lev) by @lucafedeli88 in #5671
- WarpX class: remove declaration of two unimplemented functions by @lucafedeli88 in #5670
- Fix plot_distribution_mapping.py for 2D by @atmyers in #5660
- WarpX class: move PrintDtDxDyDz to an anonymous namespace in WarpXInitData.cpp by @lucafedeli88 in #5658
- AMReX/pyAMReX/PICSAR: Weekly Update by @ax3l in #5680
- WarpX class: remove unused functions NodalSyncJ and NodalSyncRho by @lucafedeli88 in #5685
- Small fix in Perlmutter GPU sbatch script by @aeriforme in #5683
- Doc: PoP on Ion-Acoustic Solitions by @ax3l in #5686
- WarpX class: remove unused methods GetMacroscopicProperties and GetHybridPICModel by @lucafedeli88 in #5640
- Fix:
AddPlasmaFlux
w/ RT Components by @ax3l in #5694 - Doc: Helion Credits by @ax3l in #5688
- Doc: Frontier Update (Feb 18, 2025) by @ax3l in #5695
- AMReX/pyAMReX/PICSAR: Weekly Update by @ax3l in #5699
- PICMI Diagnostics settings: added handling method for ParticleHistogram2D in Reduced Diagnostics by @YifanWu-USTC in #5689
- Fixing bug that only applied last field in the list of external field… by @clarkse in #5690
- Adding hyper-resistivity expression, function of rho, B by @mattobin in #5692
- Add diagnostic file output for the implicit solvers by @dpgrote in #5464
- Documentation: update profile for Adastra supercomputer (CINES, France) by @lucafedeli88 in #5709
- Doc: ADIOS2 v2.10.2 by @ax3l in #5706
- Ionization.H : remove duplicate call to
m_get_externalEB
by @grobertdautun in #5710 - Add Python function to extract particles scraped during the last step. by @RemiLehe in #5711
- Move linear interpolation functions to ablastr by @lucafedeli88 in #5714
- Fix HIP CI by @atmyers in #5707
- Added support to use adios2's flatten_step by @guj in #5634
- pre-commit: set up clang-format hook by @EZoni in #5687
- Add Villasenor and Buneman current deposition with explicit scheme by @dpgrote in #5700
- Synchronize velocity for diagnostics by @dpgrote in #1751
- DSMC: Add impact ionization by @roelof-groenewald in #5654
- Readme.md : correct typo in Governance section ("High Performance Computing Foundation" --> "High Performance Software Foundation" ) by @lucafedeli88 in #5723
- Synchronize after copying in 2D reduced diagnostics by @aeriforme in #5726
- ABLASTR: Silence/Disable
write_used_inputs_file
by @ax3l in #5733 - acknowledgments.rst : corrected typo ("High Performance Computing Foundation" --> "High Performance Software Foundation" ) by @grobertdautun in #5724
- openPMD: no BP5 Group Based by @ax3l in #5735
- Python:
setuptools[core]
by @ax3l in #5736 - WarpX class: move out PSATDCurrentCorrection and PSATDVayDeposition by @lucafedeli88 in #5684
- Release 25.03 by @EZoni in #5734
New Contributors
- @YifanWu-USTC made their first contribution in #5689
- @mattobin made their first contribution in #5692
- @grobertdautun made their first contribution in #5710
Full Changelog: 25.02...25.03
25.02
Dependencies
- AMReX: 25.02
- PICSAR-QED: 25.01
- picmistandard: 0.33.0
- pyAMReX: 25.02
- openPMD-api: 0.16.1
- Python: 3.9 - 3.13
What's Changed
- Make do_subcycling a private variable of the WarpX class by @lucafedeli88 in #5546
- CMake: ABLASTR FFT AMReX by @ax3l in #5548
- python callback at restart by @RevathiJambunathan in #5549
- Python: useful error when
initialize_warpx
not called before creatingParticleContainerWrapper
by @archermarx in #5412 - [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #5553
- Add doxygen documentation regarding
is_igf_2d_slices
by @aeriforme in #5556 - Update differential luminosity test by @aeriforme in #5555
- Pass gamma_boost as an argument to AcceleratorLattice and LatticeElementFinder by @lucafedeli88 in #5541
- Use
amrex::getParticleCell
More by @ax3l in #5557 - Containerfile by @sinha-r in #5141
- AMReX/pyAMReX/PICSAR: Weekly Update by @ax3l in #5564
- Doc: Update Frontier by @ax3l in #5570
- Fix restart for implicit simulations by @atmyers in #5489
- CI: install clang dependencies directly from LLVM by @EZoni in #5575
- Remove unused code from WarpX class constructor by @lucafedeli88 in #5572
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #5580
- storePhiOnParticles: fix misplaced pragma omp parallel if by @lucafedeli88 in #5577
- New embedded boundary data structures in preparation for #5534 by @RemiLehe in #5574
- Doc: More Developer Packages by @ax3l in #5568
- Move CheckDims and ParseGeometryInput out of WarpXUtil by @lucafedeli88 in #5354
- WarpXUtil.H: remove unused function getCellCoordinates by @lucafedeli88 in #5583
- WarpX.cpp : move free function TagWithLevelSuffix inside WarpX::AllocInitMultiFab by @lucafedeli88 in #5582
- Modify stair-case approximation to the EB by @RemiLehe in #5534
- Use
self_fields_verbosity
value for magnetostatic solver by @roelof-groenewald in #5560 - Clean-up the analysis script by @oshapoval in #5586
- Use new stair-case approximation in hybrid solver by @RemiLehe in #5558
- WarpXInitEB: fix " int eb_update" shadowing "std::array< std::unique_ptramrex::iMultiFab,3> & eb_update" by @lucafedeli88 in #5591
- WarpX header: remove unused GetDistanceToEB function by @lucafedeli88 in #5589
- WarpX class: move ReorderFornbergCoefficients from WarpX.H to WarpX.cpp by @lucafedeli88 in #5578
- Only allocate
edge_lengths
andface_areas
when using the ECT solver by @RemiLehe in #5593 - Add automated test for particle absorption on new stair-case approximation by @RemiLehe in #5562
- openPMD-api: 0.16.1+ by @ax3l in #5375
- Maintainer: Weekly Update Script by @ax3l in #5565
- AMReX/pyAMReX/PICSAR: Weekly Update by @ax3l in #5607
- WarpX class: make psatd_solution_type a private member variable by @lucafedeli88 in #5602
- WarpX class: make zmax_plasma_to_compute_max_step a private member variable and remove do_compute_max_step_from_zmax by @lucafedeli88 in #5605
- WarpX class: make dt_update_interval a private member variable by @lucafedeli88 in #5603
- WarpX class: make safe_guard_cells a private member variable by @lucafedeli88 in #5599
- WarpX class: make do_divb_cleaning_external a private member variable by @lucafedeli88 in #5598
- WarpX class: make mirror-related variables private member variables by @lucafedeli88 in #5596
- Move checkEarlyUnusedParams from WarpX class to anonymous namespace by @lucafedeli88 in #5573
- Catch warpx not being initialized in library loader by @archermarx in #5567
- CI: CDash dashboard support by @EZoni in #5566
- Docs: configure conda to use only
conda-forge
by @EZoni in #5569 - Docs and issue templates: clarify usage of issues and discussions by @aeriforme in #5527
- Docs: improve "Workflows" section for developers by @EZoni in #5525
- Doc: Workflows -> How-To by @ax3l in #5608
- WarpX class: make verboncoeur_axis_correction a private member variable by @lucafedeli88 in #5604
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #5610
- [mini] Fix stretch factor in Gaussian initialisation w/ spatial and angular chirps by @MaxThevenet in #5494
- Reduce particle shape when a particle approaches the EB by @oshapoval in #5209
- CDash: fix variables in CTestConfig.cmake by @EZoni in #5611
- Clang-tidy CI test: bump version from 15 to 16 by @lucafedeli88 in #5592
- WarpX class: evolve_scheme no longer a static variable by @lucafedeli88 in #5616
- WarpX class: ProjectionCleanDivB no longer static by @lucafedeli88 in #5615
- Remove unused SliceDiagnostic.H/cpp by @lucafedeli88 in #5617
- WarpX class: AllocInitMultiFab and imultifab_map no longer static by @lucafedeli88 in #5614
- CMake/CTest: Opt-in Disable Signal Handling by @ax3l in #5550
- Doc: Update Spack Instructions by @ax3l in #5587
- Flux injection from EB: Pick a random point instead of the centroid by @WeiqunZhang in #5493
- Add reference for new article using WarpX [Tyushev (2025)] by @roelof-groenewald in #5627
- WarpX class: remove unused static variable by @lucafedeli88 in #5626
- AMReX/pyAMReX/PICSAR: Weekly Update by @ax3l in #5613
- Added CI to test secondary ion emission in RZ. by @oshapoval in #5576
- Embedded Boundary: take some EB-related methods out of WarpX class by @lucafedeli88 in #5625
- MultiFabRegister:
throw
in get by @ax3l in #5356 - Doc: Frontier OpenMP Load by @ax3l in #5631
- Add FieldPoyntingFlux reduced diagnostic by @dpgrote in #5475
- Doc Lassen: Pip Cache Disabled by @ax3l in #5632
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #5633
- Add execution of
afterEpush
callback in hybrid solver by @roelof-groenewald in #5629 - Fix bug with DSMC collisions in RZ by @roelof-groenewald in #5622
- Fix Dangling Ref in EB Init by @ax3l in #5635
- Fixing bug in hyper-resistivity calculation which had missing terms i… by @clarkse in #5638
- Release 25.02 by @ax3l in #5639
New Contributors
Full Changelog: 25.01...25.02
25.01
Dependencies
- AMReX: 25.01
- PICSAR-QED: 24.09
- picmistandard: 0.33.0
- pyAMReX: 25.01
- openPMD-api: 0.15.1
- Python: 3.9 - 3.13
What's Changed
- Fix read_raw_data.py script by @dpgrote in #5490
- Remove unused function
ScrapeParticles
by @RevathiJambunathan in #5491 - Add multifab method that takes an int for the direction by @dpgrote in #5473
- Fix the extrapolation for guard cells in the insulator region by @dpgrote in #5499
- Fix the time for the insulator boundary field evaluation by @dpgrote in #5488
- Removing asserts now that AMReX has been updated. by @clarkse in #5476
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #5504
- AMReX/pyAMReX/PICSAR: weekly update by @EZoni in #5501
- Add Dan Barnes' effective potential (semi-implicit) Poisson solver by @roelof-groenewald in #5079
- Add
verbosity
flag for diagnostic output print statements by @roelof-groenewald in #5503 - Added abort message if 1D PSATD is used by @oshapoval in #5500
- Added AnalyticFluxDistribution class by @oshapoval in #5422
- Replace quartz with dane by @dpgrote in #5507
- Update Dane install to put sources in the workspace directory by @dpgrote in #5509
- Add quasi-3D Integrated Green Functions solver by @aeriforme in #5089
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #5513
- AMReX/pyAMReX/PICSAR: weekly update by @EZoni in #5512
- Fix FieldEnergy reduced diagnostic by @dpgrote in #5498
- DSMC: make the check of the number of processes more robust by @RemiLehe in #5515
- Follow-up: quasi-3D IGF solver by @aeriforme in #5516
- CTest: split checksum analysis from test analysis, expose arguments by @EZoni in #5456
- Doc: Wave Attenuation Numerics by @ax3l in #5532
- Injection from EB: do not create particles outside of user-specified bounds by @RemiLehe in #5521
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #5529
- PEC: Fix Uninit Var Warning (GCC) by @ax3l in #5536
- Use same MLMG parameters in MS solver as in ES solver by @roelof-groenewald in #5517
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #5539
- Update CMake version for Perlmutter AY25 by @n01r in #5535
- Remove an unnecessary call to WarpX::GetInstance() by @lucafedeli88 in #5540
- CI: ignore all
.rst
files in the repository by @EZoni in #5523 - Docs: fix bugs (broken links, missing examples) by @EZoni in #5522
- Python 3.13 Support, 3.8 EOL by @ax3l in #5361
- Release 25.01 by @ax3l in #5544
Full Changelog: 24.12...25.01