Releases: BLAST-WarpX/warpx
Releases · BLAST-WarpX/warpx
Release list
26.08
Dependencies
- AMReX: 26.08
- pyAMReX: 26.08
- PICSAR-QED: 26.08
- pybind11:
3.0.4 - picmistandard: 0.34.0
- openPMD-api: 0.17.0
- Python: 3.11 - 3.14
What's Changed
- Dependencies: weekly update by @github-actions[bot] in #7018
- Add warning message when RK4 integration produced NaN field values by @roelof-groenewald in #7036
- Load External Field directly into Pinned Memory by @AlexanderSinn in #6963
- Add ability to choose mesh in particle density file by @AlexanderSinn in #6965
- Use reaction-dependent lower energy threshold for fusion cross sections by @JustinRayAngus in #6981
- Use local version of
Redistributewith all solvers ; use version with per-direction number of cells by @RemiLehe in #6988 - Dependencies: weekly update by @github-actions[bot] in #7046
- Unify DSMC and MCC scattering, and support
scattering_angle_modelby @RemiLehe in #6948 - Deduplicate UpdateAuxiliaryData helpers and fix E-field aux update bug by @EZoni in #7037
- CI: Temporary w/o SYCL by @ax3l in #7048
- Fix missing radial-geometry inverse-volume scaling of rho in implicit residual evaluations by @clarkse-he in #7050
- Minor typos fixes by @roelof-groenewald in #7052
- Simplify DistanceToEB::interp_normal API and drop unused normal in EB scraper by @RemiLehe in #7051
- Fix stale ../../../../warpx/ paths in test analysis scripts by @EZoni in #7053
- Fix misleading binary collision profiling timers by @RemiLehe in #7047
- Implement reflection from embedded boundaries by @RemiLehe in #6588
- Fix RSPHERE phi computation in LorentzTransformParticles by @RemiLehe in #7056
- Replace removed scipy interp2d with RegularGridInterpolator by @roelof-groenewald in #7065
- Use separate reset flags for E / B fields in ES solver by @roelof-groenewald in #7066
- Fix and re-enable test_2d_runtime_components_picmi_restart by @EZoni in #7067
- Allow picmi linear solver to be initialized without non-linear solver by @roelof-groenewald in #7068
- Re-enable test_3d_eb_picmi_restart by @EZoni in #7057
- Fix bug with
phi_fpSetDotMaskcase by @roelof-groenewald in #7070 - Add missing
WarnManager.Hincludes for nonlinear solvers by @roelof-groenewald in #7069 - Allow non-uniform cross-section energy grids by @RemiLehe in #7072
- Docs: clarify that density_min/density_max apply to all density profiles by @RemiLehe in #7075
- Dependencies: weekly update by @github-actions[bot] in #7079
- Fix inconsistent indentation in
WarpXAlgorithmSelection.Hby @RemiLehe in #7084 - Bump actions/setup-python from 6 to 7 by @dependabot[bot] in #7083
- Hybrid-PIC: add an electron temperature field, move the electron-pressure update to right after deposition by @prkkumar-he in #7081
- Docs: cite 2004 ECT paper for the ect solver by @RemiLehe in #7085
- Hybrid-PIC: re-deposit rho and J on restart (fix poisoned first step after checkpoint restart) by @clarkse-he in #7049
- Refactor mass matrix application into ApplyMassMatrices by @RemiLehe in #7086
- Add user-defined warpx.self_fields_num_sweeps for MLMG by @oshapoval in #6907
- Add checkpoint_restart flag to MultiFab registry by @dpgrote in #7023
- Allow any MultiFab to be written to the diagnostics by @dpgrote in #7025
- Fix NVHPC dependency error in CUDA CI pipeline by @EZoni in #7102
- Fix docstring typo in ElectrostaticSolver's computeB by @EZoni in #7101
- Dependencies: weekly update by @github-actions[bot] in #7098
- Fix RZ/RCYLINDER DSMC ionization double velocity rotation and guard against negative energy by @roelof-groenewald in #7096
- Revert fix for NVHPC dependency error in CUDA CI pipeline by @EZoni in #7108
- picmi: actually select the preconditioner passed to NewtonNonlinearSolver by @clarkse-he in #7109
- Implement electron energy equation to the hybrid solver by @prkkumar-he in #6982
- Docs: convert
GOVERNANCE.rsttoGOVERNANCE.mdby @ax3l in #7115 - Fix Janssen 2016 entry in refs.bib by @eebasso in #7116
- RZ: conserve charge and current under binomial filtering by @clarkse-he in #7059
- Bug:
amrex::Forif indices are not independent by @ax3l in #7100 - Hybrid-PIC: fix sticky m_substeps ratchet under RKF45 by @tomzhu0225 in #7091
- Docs: replace arrow vector notation
\vecwith\boldsymbolby @RemiLehe in #7073 - Background collisions: evaluate parsers at Cartesian coordinates by @RemiLehe in #7122
- Python: Improved
Configby @ax3l in #7110 - Bump github/codeql-action from 4 to 4.37.4 by @dependabot[bot] in #7125
- Config: Omit Versions by @ax3l in #7129
- Release: WarpX 26.08 by @github-actions[bot] in #7119
Full Changelog: 26.07...26.08
26.07
Dependencies
- AMReX: 26.07
- pyAMReX: 26.07
- PICSAR-QED: 26.07
- pybind11:
3.0.4 - picmistandard: 0.34.0
- openPMD-api: 0.17.0
- Python: 3.11 - 3.14
What's Changed
- CI: Frank GPU Runners by @ax3l in #6942
- Dependencies: weekly update by @github-actions[bot] in #6938
- Doc: Glossary to Agents by @ax3l in #6950
- Tools/Parser: add input_has_value helper, use it in tests by @EZoni in #6850
- computePhiIGF: w/o Grow of Phi by @ax3l in #6952
- Hybrid-PIC: set unused dimensions nodal for RCYLINDER and RSPHERE by @tomzhu0225 in #6946
- Add backward scattering angle model for two-product reactions by @RemiLehe in #6947
- Add 1D and 2D automated tests for the macroscopic EM solver by @tomzhu0225 in #6945
- Dependencies: weekly update by @github-actions[bot] in #6958
- Reuse GetVelocityVector for parse_momentum_function by @RemiLehe in #6913
- Unify RK4 and RKF45 execution streams by @roelof-groenewald in #6953
- Add allocdata Python callback by @dpgrote in #6966
- Add support for RZ + EB with effective potential ES solver by @roelof-groenewald in #6961
- Add dependabot.yml for GitHub Actions version updates by @EZoni in #6959
- Improve Error Message of getArrWithParser by @AlexanderSinn in #6964
- Bump actions/upload-artifact from 4 to 7 by @dependabot[bot] in #6970
- Bump actions/cache from 4 to 6 by @dependabot[bot] in #6971
- Bump actions/setup-python from 5 to 6 by @dependabot[bot] in #6972
- Bump github/codeql-action from 3 to 4 by @dependabot[bot] in #6973
- Bump actions/checkout from 4 to 7 by @dependabot[bot] in #6974
- use exit_status for nonlinear solvers. by @JustinRayAngus in #6955
setup.py: Emscripten by @ax3l in #6975- Support non-EB RZ cases with effective potential solver by @roelof-groenewald in #6977
- Maxwell-Juttner: use ux_mean/uy_mean/uz_mean drift like maxwellian by @RemiLehe in #6918
- Remove redundant species_type input from test_2d_charge_exchange_dsmc by @EZoni in #6984
- Add resampling target ratio input to
picmi.pyby @roelof-groenewald in #6983 - Replace query/get_enum_sloppy with query/get_enum_case_insensitive by @RemiLehe in #6968
- Fix secondary ion emission test for multi-rank MPI runs by @RemiLehe in #5935
- Dependencies: weekly update by @github-actions[bot] in #6991
- MultiParticleContainer.cpp : ensure that physical_species has a value before using it by @lucafedeli88 in #6986
- openPMD-api: 0.17.1 by @ax3l in #6987
- Used a closed interval for laser continuous injection check by @AlexanderSinn in #6992
- C++20: use starts_with, ends_with by @lucafedeli88 in #6892
- Fix strings in WarpX_PETSc.cpp by @dpgrote in #6995
- Collisions: add shared parse_scattering_processes helper by @RemiLehe in #6979
- Divergence cleaning for loaded B fields in electrostatic/magnetostati… by @clarkse-he in #6969
- C++20: use container.contains() by @lucafedeli88 in #6885
- Update cray-python module version to 3.11.7 by @Noerr in #7002
- DSMC refactoring: use ScatteringProcess::Executor object inside SplitAndScatterFunc kernel by @RemiLehe in #7001
- Fix name of FFT compile option in error message. by @atmyers in #7006
- Enable RKF45 to be used at intervals to set the RK4 substep number by @roelof-groenewald in #6920
- Capacitive discharge CI test: compare against Turner benchmark rather than flat density by @RemiLehe in #7012
- DSMC: add m_produces_products flag to ScatteringProcess::Executor by @RemiLehe in #7011
- setup.py: honor CMAKE_GENERATOR_PLATFORM for the Windows -A flag by @ax3l in #7019
- Redistribute virtual photons after generating them with beam-size effect by @RemiLehe in #6996
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci[bot] in #7020
- Fix XDim3 uninitialized warning by @AlexanderSinn in #7015
- DSMC: support excitation processes by @RemiLehe in #7004
- Fix Load Balancing with RZ PML by @AlexanderSinn in #7016
- CI: fix workaround for Open MPI oversubscription issue by @EZoni in #6014
- Share hankel transformer between boxes by @AlexanderSinn in #7017
- Expose mesh refinement ratio to Python interface by @EZoni in #7007
- pyWarpX: Only export
_PyInit_warpx_pybindby @ax3l in #6989 - CI: check that analysis_default_regression.py is always a link by @EZoni in #6811
- Fix Examples/CMakeLists.txt for no-MPI builds by @EZoni in #7033
- Linear Compton: fix typo sampling of Klein-Nishina formula by @RemiLehe in #7029
- Replace Elixir pattern with The_Async_Arena for temporary GPU FABs by @RemiLehe in #7035
- Release: WarpX 26.07 by @github-actions[bot] in #7005
Full Changelog: 26.06...26.07
26.06
Dependencies
- AMReX: 26.06
- pyAMReX: 26.06
- PICSAR-QED: 26.06
- pybind11:
3.0.4 - picmistandard: 0.34.0
- openPMD-api: 0.17.0
- Python: 3.11 - 3.14
What's Changed
- implement mass matrices for cylindrical geometries by @JustinRayAngus in #6738
- Dependencies: weekly update by @github-actions[bot] in #6833
- Fix few comments and typos by @EZoni in #6855
- bug fix in ApplyInverseVolumeScaling by @JustinRayAngus in #6856
- Update implicit scheme PICMI interface by @dpgrote in #6853
- do not deposit mass matrices for photons by @JustinRayAngus in #6860
- Clean-up: moved current correction print statement inside PSATD solver condition by @oshapoval in #6721
- do not deposit/gather neutrals by default. by @JustinRayAngus in #6861
- implicit restart bug fix by @JustinRayAngus in #6864
- Add Hedlof (2026) reference for effective potential solver to docs by @roelof-groenewald in #6871
- Fix anonymous hyperlink mismatch by @EZoni in #6875
- Dependencies: weekly update by @github-actions[bot] in #6866
- Add missing term in RZ vector Laplacian for magnetostatic solver by @RemiLehe in #6516
- Ohm solver: add field checksums to RZ EM modes test by @EZoni in #6862
- Adaptive RKF45 subcycling for hybrid-PIC B-field advance by @prkkumar-he in #6844
- Small performance improvement in RKF45 integrator by @roelof-groenewald in #6878
- GPU kernel fuses in RKF45 integrator by @roelof-groenewald in #6880
- Fix wrong assertion in WarpX::FillBoundaryB_avg by @EZoni in #6882
- Docs: document new RKF45 parameters for hybrid-PIC B-field advance by @RemiLehe in #6883
- Update documentation on dimensionality by @EZoni in #6873
- only advance photons at end of step for implicit. by @JustinRayAngus in #6867
- Boris pusher: exact half-angle splitting for FirstHalf/SecondHalf by @RemiLehe in #6886
- Doc: BibTex Duplicates by @ax3l in #6891
- Reduce MPI communication in RKF45 integrator by @roelof-groenewald in #6887
- Dependencies: weekly update by @github-actions[bot] in #6890
- Add checks for MR and subcycling requirements by @oshapoval in #6755
- Clarify validity of the temperature diagnostic by @RemiLehe in #6895
- Update initial substep number based on prev step in RKF45 by @roelof-groenewald in #6888
- Change assert to warning about particle count in RZ by @roelof-groenewald in #6830
- Clang-tidy CI test : bump version of clang-tidy from 18 to 19 by @lucafedeli88 in #6893
- Update Roelof's affiliation by @RemiLehe in #6905
- Do not trigger CI on changes to .zenodo.json by @EZoni in #6906
- clang-sanitizers CI test : bump clang version from 17 to 19 by @lucafedeli88 in #6901
- Record separate mode checksums for openPMD RZ tests by @EZoni in #6898
- DSMC ion impact ionization: ionization products are created with collinear velocities by @RemiLehe in #5868
- Small code cleaning PR in DSMC ionization by @roelof-groenewald in #6911
- Particle thermalizer : allow setting different thresholds for the three momentum components by @lucafedeli88 in #6903
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci[bot] in #6912
- Unify 'maxwellian_boltzmann' and 'gaussian_parse_momentum_function' under 'maxwellian' momentum distribution by @oshapoval in #6896
- Follow-up PR: removes redundant check and updates u_mean set up in CI by @oshapoval in #6914
- Apply BCs to B/E external (initial) fields by @roelof-groenewald in #6897
- RZ/RCYLINDER/RSPHERE: Rename
PIdx:xtoPIdx:rby @ax3l in #4667 - Perform 0 timestep in
test_3d_initial_distributionby @RemiLehe in #6921 - GuardCellManager: expand rho guards when filter is active by @WeiqunZhang in #6663
- Hybrid-PIC optimization -
CalculatePlasmaCurrentby @roelof-groenewald in #6571 - ABLASTR: Degree to Radian by @ax3l in #6852
- Increase CCACHE_MAXSIZE for Clang sanitizers workflows by @EZoni in #6926
- Dependencies: weekly update by @github-actions[bot] in #6910
- Pre-Commit: GitLeaks by @ax3l in #6929
- Always sort keys with json dump for benchmarks by @dpgrote in #6930
- Update default CCache version to 4.13.6 by @ax3l in #6932
- Fix odd indentation in .pre-commit-config.yaml by @EZoni in #6931
- Fix openPMD RZ & 1R Particle Diagnostics by @ax3l in #6857
- DSMC electron impact ionization: isotropic, equal-energy electron scattering by @RemiLehe in #6925
- Fix macroscopic EM solver in 1D geometry by @tomzhu0225 in #6937
- Obtain scattering angle from Bobylev's delta function distribution for Coulomb collisions by @JustinRayAngus in #6904
- Updated Example/Plasma-Based Acceleration section: added example RZ PSATD on a boosted frame by @oshapoval in #6361
- Maxwell-Juttner: sample Gaussian at low temperature instead of aborting by @RemiLehe in #6922
- Implement inverse bremsstrahlung by @dpgrote in #5839
- ABLASTR: Move IntervalsParser by @ax3l in #6933
- Node.js 20 actions are deprecated by @EZoni in #6941
- CI: trust openpmd tap to fix brew untrusted formula error by @EZoni in #6943
- Split Clang sanitizers workflows by @EZoni in #6940
- Release: WarpX 26.06 by @github-actions[bot] in #6916
New Contributors
- @prkkumar-he made their first contribution in #6844
- @tomzhu0225 made their first contribution in #6937
Full Changelog: 26.05...26.06
26.05
Dependencies
- AMReX: 26.05
- pyAMReX: 26.05
- PICSAR-QED: 26.05
- pybind11:
3.0.4 - picmistandard: 0.34.0
- openPMD-api: 0.17.0
- Python: 3.11 - 3.14
What's Changed
- Dependencies: weekly update by @github-actions[bot] in #6748
- AGENTS: Do not modify autogenerated files by @ax3l in #6746
- Add enum to handle scattering angle in fusion reactions by @EZoni in #6718
- Allow beam size effect in beam-beam simulations by @pkicsiny in #6454
- Implicit fixes by @JustinRayAngus in #6737
- Move
particlescrapercallback toHandleParticlesAtBoundariesby @roelof-groenewald in #6735 - add offset to dataPtr(). by @JustinRayAngus in #6758
- CMake: decouple Python source copy from link step by @ax3l in #6757
- Add explanatory comments to
RedistributeLocalby @roelof-groenewald in #6756 - Dependencies: weekly update by @github-actions[bot] in #6770
- Docs: improve parameter formatting using custom Sphinx domain by @eebasso in #6639
- CMake: pyAMReX Compile Selected PCs by @ax3l in #6717
- Doc: Parameter inline role. by @ax3l in #6773
- Add particle field diagnostic by @dpgrote in #6570
- Refactor post_processing_utils.py by @EZoni in #6751
- Update pybind11 dependency: 3.0.3 by @EZoni in #6736
- runClangTidy.sh : fix typo in instructions on how to set the version of clang-tidy by @lucafedeli88 in #6777
Parameters.rst: Consistent Double Backticks by @ax3l in #6774- Remove unnecessary warning when using OpenPMD by @dpgrote in #6772
- Use species_type in picmi by @dpgrote in #6764
- Went to partial nowait comms by @bathmatt in #6666
- Remove checksum values that cause false positives by @EZoni in #6750
- Fix typo, change amr.ncell to amr.n_cell by @eebasso in #6783
- Add functionality for species specific current deposition from Python by @roelof-groenewald in #6667
- use time-centered E from previous step as initial guess for implicit solvers. by @JustinRayAngus in #6784
- Fix clang tidy CI test by @lucafedeli88 in #6685
- update notation inside setMassMatriceKernels() by @JustinRayAngus in #6785
- Use PhysConst::c2/inv_c2, fix constexpr, use uniform names by @EZoni in #6615
- pybind11: 3.0.4 by @EZoni in #6792
- Include laser containers in
GetParticleContainerFromNameby @roelof-groenewald in #6799 - add pulsed decay collision module. by @JustinRayAngus in #6558
- Pre-Commit: Update Monthly by @ax3l in #6794
- Docs: update instructions to compile/use WarpX on Adastra (CINES) by @lucafedeli88 in #6591
- C++20 by @ax3l in #6606
- cleanup setting initial angles for axisymmetric geometries by @JustinRayAngus in #6789
- fix collisions.correct_energy_momentum crash for implicit. by @JustinRayAngus in #6806
- Fix GPU dispatch for PolymorphicArenaAllocator in DefaultInitialization by @ax3l in #6808
- More :pp:param: role usage by @eebasso in #6781
- Examples: Remove
particles.do_tilingby @ax3l in #6809 - Fix NaN handling in electrostatic_sphere_eb MR analysis by @ax3l in #6807
- Fix silent failure in analysis_default_regression.py by @EZoni in #6812
- Link analysis_default_regression.py for pierce diode test by @EZoni in #6810
- Clean up output format detection in default regression analysis by @EZoni in #6815
- Only do pairwise energy conservation if there are two or more particles by @dpgrote in #6818
- Add link to WarpX logo in documentation by @RemiLehe in #6814
- In AddPlasma, fix for radial_numpercell_power by @dpgrote in #6804
- WarpX.H: reorder inclusions by @lucafedeli88 in #6795
- correct poynting flux at r-boundaries in cylindrical geometries. by @JustinRayAngus in #6820
- Tests: Derive analytical formula for particle_boundary_interaction by @RemiLehe in #6817
- Further cleanup in binary collision moment conservation by @dpgrote in #6824
- do proper mapping from linearized index to cell coordinates in pulsed decay collision module by @JustinRayAngus in #6827
- cosmetic cleanup by @JustinRayAngus in #6828
- Dependencies: weekly update by @github-actions[bot] in #6790
- Relax pybind11 version requirement for package managers by @EZoni in #6805
- binary collision energy conservation, sort by weight by @dpgrote in #6825
- Docs: C++20 by @ax3l in #6829
- Fix charge conservation in charge exchange and add automated test by @oshapoval in #6796
- Fix ROCm minimum version in documentation by @EZoni in #6834
- avoid NaN in maxParticleVelocity() by @JustinRayAngus in #6831
- Consistent implicit gather RZ by @JustinRayAngus in #6839
- include external B when computing mass matrices. by @JustinRayAngus in #6843
- Refactor moment correction method for weighted particle collisions by @JustinRayAngus in #6837
- Add new time step size limiters by @dpgrote in #6840
- Add comments to indicate that photons and laser particles are not advanced using a particle pusher by @oshapoval in #6688
- fix update timestep print message by @JustinRayAngus in #6846
- Rotate angles to zero for binary collisions by @dpgrote in #6841
- Fix optical length update when
collisions.split_momentum_push = 1by @aeriforme in #6838 - Release: WarpX 26.05 by @github-actions[bot] in #6832
New Contributors
Full Changelog: 26.04...26.05
26.04
Dependencies
- AMReX: 26.04
- pyAMReX: 26.04
- PICSAR-QED: 25.06
- pybind11:
3.0.2 - picmistandard: 0.34.0
- openPMD-api: 0.17.0
- Python: 3.11 - 3.14
What's Changed
- Separate current and mass matrix depositions by @JustinRayAngus in #6589
- check fusion energy on init. by @JustinRayAngus in #6624
- Dependencies: weekly update by @github-actions[bot] in #6631
- Serialization.H : refactor and bugfixing by @lucafedeli88 in #6665
- Docs: consistent simplified DOI in refs.bib by @eebasso in #6636
- Dependencies: weekly update by @github-actions[bot] in #6669
- Docs: delete redundant arXiv links by @eebasso in #6672
- Docs: use 'doi' field for doi.org, delete redundant urls by @eebasso in #6671
- Implement collisions in the middle of the momentum push for electromagnetic PIC by @oshapoval in #6581
- Improve docu and fix LabFrameFieldDiagnostic bug by @pots007 in #6673
- Move ReadMovingWindowParameters from WarpXUtil to read_moving_window_parameters in WarpXInit by @lucafedeli88 in #6676
- Updates to AGENTS.md by @RemiLehe in #6679
- Fix uninitialized sa_flags in signal handler registration by @Noerr in #6681
- Follow-up PR: Add 2D EM CI test with split collisions and Vay pusher by @oshapoval in #6675
- Remove unused InjectorMomentumRadialExpansion by @RemiLehe in #6677
- Dependencies: weekly update by @github-actions[bot] in #6683
- Remove predefined DensityInjector; replace with parser expressions by @RemiLehe in #6678
- Fix typo for rcylinder with plot files by @dpgrote in #6691
- Langmuir tests: refactor and expand charge conservation analysis by @EZoni in #6638
- Dependencies: weekly update by @github-actions[bot] in #6698
- Improve the error message for num_particles_per_cell_each_dim by @dpgrote in #6690
- Fix PETSc Preconditioning for Cases with no Implicit EM Term by @debog in #6701
- WarpX.H : use forward declaration for ImplicitSolver by @lucafedeli88 in #6687
- Fix potential out of bounds in accelerator lattice element finder by @dpgrote in #6693
- Docs: fix outdated info about clang-tidy version by @lucafedeli88 in #6680
- Claim Context7 Project by @ax3l in #6704
- fix volume element in binary collisions for non-planar geometries. by @JustinRayAngus in #6711
- Clean up ParticleUtils::getRandomVector by @EZoni in #6707
- AGENTS File: Conda Aliases by @ax3l in #6712
- Plotfile BTD: Support Labframe Filters by @ax3l in #6709
- Python 3.11+ by @ax3l in #6635
- Document LLM-Agents Usage by @ax3l in #6689
- fix bug for using MM PC without MM for Jacobian. by @JustinRayAngus in #6713
- Add skill to answer user question by @RemiLehe in #6710
- Update HPC3-UCI docs to use Python 3.14.3 by @floresv299 in #6719
- petsc matrix pc for axisymmetric geometries by @JustinRayAngus in #6697
- Update checksum documentation by @RemiLehe in #6706
- Use new ruff-check pre-commit ID by @EZoni in #6723
- Dependencies: weekly update by @github-actions[bot] in #6722
- Make DSMC code more readable by @RemiLehe in #6628
- Evolve: use finest_level instead of max_level to gate RedistributeLocal by @RemiLehe in #6727
- Generate 2 products instead of 4 in Linear Compton collisions by @aeriforme in #6321
- Particles: fix always-true bounds check in DepositCharge by @RemiLehe in #6730
- ablastr: replace protected n_grow member with public nGrowVect() by @RemiLehe in #6728
- Implementing JacobiPC by @debog in #6694
- Implement particle-absorbing boundary by @atmyers in #6503
- Collisions: replace ndt with ndt_supercycle and ndt_subcycle by @RemiLehe in #6742
- Release: WarpX 26.04 by @github-actions[bot] in #6739
New Contributors
- @pots007 made their first contribution in #6673
- @floresv299 made their first contribution in #6719
Full Changelog: 26.03...26.04
26.03
Dependencies
- AMReX: 26.03
- pyAMReX: 26.03
- PICSAR-QED: 25.06
- pybind11:
3.0.2 - picmistandard: 0.34.0
- openPMD-api: 0.17.0
- Python: 3.10 - 3.14
What's Changed
- Fix memory warning in test_2d_python_wrappers_picmi by @EZoni in #6489
- Dependencies: weekly update by @github-actions[bot] in #6543
- Add documentation example for ion beam extraction from plasma source by @oshapoval in #6496
- Hybrid PIC: change definition of number of substeps by @RemiLehe in #6556
- Fix docstring error in picmi.py by @EZoni in #6559
- Replace missing Summit postprocessing documentation by @RemiLehe in #6560
- Dependencies: weekly update by @github-actions[bot] in #6561
- Pip Install: Skip
diags/by @ax3l in #6554 - Make checksum for
test_3d_linear_compton_bunch_laserless brittle by @RemiLehe in #6565 - [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci[bot] in #6568
- Fail RTD doc on warning by @RemiLehe in #6569
- Improve performance of hybrid-PIC algorithm by @roelof-groenewald in #6567
- Docs: inputs section cleanup - simulation time by @EZoni in #6557
- Save lost particle time by @dpgrote in #6533
- Fill guard cells for EB update MFs by @roelof-groenewald in #6574
- CI: Azure Cache Revamp by @ax3l in #6577
- AMReX:
developmentby @ax3l in #6578 - exploit symmetry to reduce deposit of diagonal mass matrices by @JustinRayAngus in #6555
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci[bot] in #6587
- Control Magnetostatic Solver Precision by @n01r in #6582
- Hybrid-PIC optimization: only call FillBoundaryE for collocated grids by @roelof-groenewald in #6575
- Add AGENTS.md file by @RemiLehe in #6482
- Fix some typos by @eebasso in #6590
- Use NoGpuSync for MLMG in computePhi by @AlexanderSinn in #6491
- Polymorphic PC by @ax3l in #6374
- Dependencies: weekly update by @github-actions[bot] in #6585
- Update profile for LUMI25.03 by @huixingjian in #6597
- simplify DefaultInitializeRuntimeAttribute() parameters by @JustinRayAngus in #6583
- Dependencies: weekly update, pybind11 v3.0.2 by @github-actions[bot] in #6600
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci[bot] in #6601
- Fix bug with external field loading from file by @roelof-groenewald in #6602
- Doc: Perlmutter Python Batch Script by @ax3l in #6603
- Fixing origin issue with vector laplacian evaluation in HybridPICSolveE by @clarkse-he in #6598
- Make FinishMassMatrices public, in ImplicitSolver by @dpgrote in #6604
- Doc: Perlmutter GCC Downgrade by @ax3l in #6609
- Add picmi flag to set
do_device_synchronizeby @roelof-groenewald in #6614 - Typos in parameter.rst by @eebasso in #6612
- Change mass of pre-defined elements in
species_type: subtract mass of the electrons by @RemiLehe in #6518 - Hybrid-PIC: Add check if external currents are used by @roelof-groenewald in #6610
- reduce expanded fusion collision type checking. by @JustinRayAngus in #6623
- Add CLAUDE.md as symlink to AGENTS.md by @RemiLehe in #6620
- Create agent skill to add new paper highlights in the documentation by @RemiLehe in #6626
- Adjust indent in parameters.rst by @eebasso in #6632
- Take into account relativistic velocity in particle reflection test by @RemiLehe in #6619
- Implement collisions in the middle of the momentum push for electrostatic PIC by @oshapoval in #6572
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci[bot] in #6633
- Replace WARPX_PROFILE with ABLASTR_PROFILE by @RemiLehe in #6634
- Enable mid-v push with embedded boundaries by @oshapoval in #6617
- DevUtils: automate checksum reset from Azure via PR number by @RemiLehe in #6621
- Doc: new paper in highlights – Wang et al. 2026 by @RemiLehe in #6627
- Fix luminosity diagnostics with mesh refinement by @aeriforme in #6605
- FieldGather: use Bz-specific z offset by @WeiqunZhang in #6664
- Release: WarpX 26.03 by @github-actions[bot] in #6630
New Contributors
- @huixingjian made their first contribution in #6597
- @clarkse-he made their first contribution in #6598
Full Changelog: 26.02...26.03
26.02
Dependencies
- AMReX: 26.02
- pyAMReX: 26.02
- PICSAR-QED: 25.06
- pybind11:
3.0.1 - picmistandard: 0.34.0
- openPMD-api: 0.17.0
- Python: 3.10 - 3.14
What's Changed
- Doc: X-Ref Debugging by @ax3l in #6470
- Fix Zenodo JSON Schema by @ax3l in #6473
- Dependencies: weekly update by @github-actions[bot] in #6466
- Fix the periodic 1D Poisson solver by @dpgrote in #6418
- CI: Zenodo Validator by @ax3l in #6474
- Containers: More Shared Libs by @ax3l in #6480
- add reduced compton wavelength to constants by @pkicsiny in #6476
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci[bot] in #6484
- Doc: New Paper in NJP on LPA Opt by @ax3l in #6488
- Fix Perlmutter Container: CuPy Headers by @ax3l in #6485
- Small bugfix in particle container wrapper by @roelof-groenewald in #6481
- refactor direct deposit for Mass Matrices. by @JustinRayAngus in #6381
- fix bug in MatrixPC for 1D. by @JustinRayAngus in #6498
- Dependencies: weekly update by @github-actions[bot] in #6483
- Fix Cursor issue when running Python through CTest by @RemiLehe in #6490
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci[bot] in #6508
- Docs: inputs section cleanup - parser and constants by @EZoni in #6510
- Fix conditionless
ComputeSpaceChargeFieldby @aeriforme in #6455 - Curl2 matrix BC masks by @JustinRayAngus in #6383
- Add density floor and time filtering to effective potential solver by @roelof-groenewald in #6143
- Dependencies: weekly update by @github-actions[bot] in #6507
- Dependencies: weekly update by @github-actions[bot] in #6522
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci[bot] in #6525
- Expose reduced Planck constant by @EZoni in #6517
- Add new paper using WarpX for magnetic reconnection by @RemiLehe in #6521
- Docs: inputs section cleanup - #6510 follow-up by @EZoni in #6511
- Improve documentation for callback function (third step): data access by @RemiLehe in #6368
- bug fix for MM deposition in 1D. by @JustinRayAngus in #6526
- Mass matrices pc width part 1 by @JustinRayAngus in #6520
- Docs: Remove Summit & Lassen (ppc64le / CORAL aquisition) by @lucafedeli88 in #6528
- openPMD-api: 0.17.0 by @ax3l in #6461
- Fix warning message for mass and injection file by @Noerr in #6532
- VirtualPhotonCreation.H: remove unnecessary #include "WarpX.H" by @lucafedeli88 in #6537
- VirtualPhotonCreation.H : fix warning concerning not explicitly initialized variables by @lucafedeli88 in #6538
- TemperatureDeposition.H and VarianceAccumulationBuffer.cpp : fix inclusion of WarpX.H by @lucafedeli88 in #6540
- Release: WarpX 26.02 by @github-actions[bot] in #6544
New Contributors
Full Changelog: 26.01...26.02
26.01
Dependencies
- AMReX: 26.01
- pyAMReX: 26.01
- PICSAR-QED: 25.06
- pybind11:
3.0.1 - picmistandard: 0.34.0
- openPMD-api: 0.16.1
- Python: 3.10 - 3.14
What's Changed
- Docs: inputs section cleanup - QED by @aeriforme in #6385
- PETSC CI: Simplify by @ax3l in #6437
- allow dt update based on particle CFL for theta implicit solver. by @JustinRayAngus in #6428
- For PEC_insulator, fix the source on the boundary by @dpgrote in #6436
- Dependencies: weekly update by @github-actions[bot] in #6439
- Fix formatting in parameters.rst to avoid warnings by @dpgrote in #6444
- Free disk space in nvhpc CI by @WeiqunZhang in #6445
- CMake: No Warn for No-MPI Tests by @ax3l in #6450
- ExternalField.H: use static_cast to convert double/float to int by @lucafedeli88 in #6446
- Cropping of particles at boundaries for deposition for charge conservation by @dpgrote in #5649
- Doc: WarpX no-MPI Perlmutter Container by @ax3l in #6422
- Add cupy support for picmi CIs with callback functions by @oshapoval in #6354
- Custom weights for initial DistributionMapping by @WeiqunZhang in #6452
- Dependencies: weekly update by @github-actions[bot] in #6457
- Load Density: Distributed Approach by @WeiqunZhang in #6221
- Add option to initialize a Gaussian beam using total number of particles instead of total charge by @aeriforme in #6451
- Fix undefined variables in PICMI test scripts by @oshapoval in #6456
- External Particle Fields: enable reading of multiple fields from file by @SeverinDiederichs in #6269
- collisions should be after call to HandleParticlesAtBoundaries() by @JustinRayAngus in #6458
- PETSc: Better Support in Build & CI by @ax3l in #6441
- Poisson Solver: Synchronize nodal data before solve by @WeiqunZhang in #6438
- Add documentation for implicit attributes by @dpgrote in #6443
- Dependencies: weekly update by @github-actions[bot] in #6463
- check for out of bounds particles with cropping in suborbits. by @JustinRayAngus in #6467
- add missing PetscFunctionBeginUser by @JustinRayAngus in #6462
- Doc: AMD GPU Debugging by @ax3l in #6469
- Documentation for Adastra (CINES, France): change installation directory to WORKDIR & clean scripts by @lucafedeli88 in #6423
- Release: WarpX 26.01 by @github-actions[bot] in #6468
Full Changelog: 25.12...26.01
25.12
Dependencies
- AMReX: 25.12
- pyAMReX: 25.12
- PICSAR-QED: 25.06
- pybind11:
3.0.1 - picmistandard: 0.34.0
- openPMD-api: 0.16.1
- Python: 3.10 - 3.14
What's Changed
- Remove checksum.rst file by @RemiLehe in #6332
- In langmuir/README.rst use "none" for the language instead of "ini" by @dpgrote in #6333
- [Hackathon] Update "Theory" section in documentation by @roelof-groenewald in #5258
- Consistently use language:none for literal include in the documentation by @RemiLehe in #6336
- Docs: Complete hybrid solver parameter docs by @n01r in #6337
- Docs: Fix reStructuredText syntax for figures by @EZoni in #5386
- Update high-level page of the theory documentation by @RemiLehe in #6341
- Update title of the hybrid PIC section to mention Ohm's law by @RemiLehe in #6342
- Fix HybridPICSolver docs by @n01r in #6346
- Python: Implement
meshonMultiFabby @ax3l in #6344 - ablastr constants : add variable templates to allow for flexibility in using single/double precision by @lucafedeli88 in #5828
- Python:
WarpXParticleContainer.add_particlesby @ax3l in #6350 - Docs: Fix :alt: figure text again by @EZoni in #6348
- Remove usage of the fields wrapper classes by @dpgrote in #6339
- Remove mentions of ARTEMIS in the examples by @RemiLehe in #6326
- More general description of PIC loop, in theory section by @RemiLehe in #6345
- Add theory section for Poisson solvers by @roelof-groenewald in #6340
- Docs: Rearrange sidebar by @aeriforme in #6338
- Limit verbosity of particle sorting by @titoiride in #6353
- Add succinct explanation of hybrid-PIC model by @roelof-groenewald in #6358
- Consolidating boosted frame & BTD subsections by @oshapoval in #6347
- Document how to extend simulations via Python (first step): add overview section by @RemiLehe in #6360
- Clean-up for Example/Uniform plasma subsection by @oshapoval in #6349
- Document how to extent simulations with Python (second step): explain how to run by @RemiLehe in #6364
- Add an alias warpx.step for warpx.evolve by @dpgrote in #6362
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci[bot] in #6335
- Minor tweaks to the wording of the theory section by @RemiLehe in #6363
- Python: Remove PC Wrapper in Usage by @ax3l in #6357
- WarpX Citation by @ax3l in #6102
- WarpX Remake: Keep MultiFab Pointers for EBs by @ax3l in #6315
- Docs: Resolve comment left out of #6102 by @EZoni in #6366
- Update PICMI
amrex_gmresbucket name by @roelof-groenewald in #6370 - Add finite-difference operators for gradient and Laplacian by @roelof-groenewald in #6371
- Dependencies: weekly update by @github-actions[bot] in #6375
- BTD Resize ADIOS for
intby @ax3l in #6377 - Rework the PECInsulator boundary conditions by @dpgrote in #6253
- Make warpx.evolve obsolete by @dpgrote in #6380
- Remove Python
multifabinterface by @RemiLehe in #6313 - Docs: inputs section cleanup by @EZoni in #6384
- Add a new paper using WarpX in the highlights by @RemiLehe in #6387
- Virtual photons by @aeriforme in #5595
- Docs: Add STL Union Workflow by @n01r in #6372
- Dependencies: weekly update by @github-actions[bot] in #6401
- Fix: NERSC PM Interactive by @ax3l in #6414
- Remove project number left over in Perlmutter profile by @EZoni in #6416
- Rebuild current and gather buffer masks during regrid by @atmyers in #6412
- Dependencies: weekly update by @github-actions[bot] in #6417
- Fix path to petsc directory in tuolumne install scripts by @eebasso in #6410
- Forward SoA Names to Temporary Tiles by @ax3l in #6413
- Update convergence criterion for MLMG by @RemiLehe in #6408
- WarpXSolverVec: Remove duplicates by @WeiqunZhang in #6415
- Checkpoint/Plotfile: Robust Bounds Calc by @ax3l in #6394
- Update .gitignore to exclude WARP.md by @n01r in #6379
- Perlmutter: GPU Docker Container by @ax3l in #6389
- Array PEC Warning in nvcc by @ax3l in #6393
- Adastra.rst: disable openMP support for QED lookup table generation by @grobertdautun in #6316
- Add more dependencies to root JSON file by @EZoni in #6189
- Fix PEC_insulators by @dpgrote in #6424
- Dependencies: weekly update by @github-actions[bot] in #6429
- PEC_Insulator cleanup by @dpgrote in #6426
- Docs: inputs section cleanup - intro by @EZoni in #6386
- Add test for MR with 2 levels by @RemiLehe in #3979
- For implicit, set ng_fieldgather = ng_alloc_EB by @dpgrote in #6435
- Release: WarpX 25.12 by @github-actions[bot] in #6432
Full Changelog: 25.11...25.12
25.11
Dependencies
- AMReX: 25.11
- pyAMReX: 25.11
- PICSAR-QED: 25.06
- pybind11:
3.0.1 - picmistandard: 0.34.0
- openPMD-api: 0.16.1
- Python: 3.10 - 3.14
What's Changed
- Print maximum relative error when checksums fail by @EZoni in #6252
- Dependencies: weekly update by @github-actions[bot] in #6248
- Fix potential recursive calls of WarpX constructor. by @WeiqunZhang in #6223
- Remove obsolete documentation about checksums by @EZoni in #6258
- Add new paper using WarpX by @RemiLehe in #6256
- bug fix. rtol ==> atol. by @JustinRayAngus in #6259
- FieldGather.H : fix for uninitialized arrays by @grobertdautun in #6254
- Make sure we geometrically grow the capacity of the particle buffers by @atmyers in #6260
- SpectralFieldData: remove timer-based costs tracker from constructor by @lucafedeli88 in #6225
- Dependencies: weekly update by @github-actions[bot] in #6261
- Doc: Flux (Tuo@LLNL) by @ax3l in #6140
- Update aurora.rst fixing a mistakenly pasted path from Perlmutter by @Noerr in #6241
- Docs: update LXPLUS (CERN) documentation by @SeverinDiederichs in #6264
- Tuo (LLNL): HDF5 Module Gone by @ax3l in #6255
- Skip
SortForDepositionifdo_not_depositby @roelof-groenewald in #6267 - Docs: Simplify LXPLUS (CERN) setup by @SeverinDiederichs in #6268
- Energy-preserving explicit PIC-MCC algorithm: electrostatic by @EZoni in #5955
- Move InitBorrowing and ShrinkBorrowing from WarpX class to anonymous namespace in WarpXFaceExtensions.cpp by @lucafedeli88 in #6272
- Deprecate photon species list by @lucafedeli88 in #6265
- DSMC: implement generic two-product reaction by @oshapoval in #6250
- Tuolumne (LLNL): CPU-Only, HDF5, PETSC, Signal Handling by @ax3l in #6270
- Fix Leonardo CINECA docs link by @elehcim in #6277
- VarianceAccumulationBuffer.cpp: remove unnecessary include by @lucafedeli88 in #6280
- Dependencies: weekly update by @github-actions[bot] in #6278
- Deprecation of photon species list: update documentation by @lucafedeli88 in #6281
- Fix oneAPI CI errors by @RemiLehe in #6300
- Rename skip_current variable for more clarity by @EZoni in #6303
- WarpXParticleContainer_fwd.H: remove #include<AMReX_GpuAllocators.H> by @lucafedeli88 in #6299
- WarpXParticleContainer_fwd.H: remove unused struct TmpIdx by @lucafedeli88 in #6297
- WarpXParticleContainer class: remove unused PairIndex by @lucafedeli88 in #6296
- PML: move some static functions MakeBoxArray, MakeBoxArray_single, and MakeBoxArray_multiple to anonymous namespace in PML.cpp by @lucafedeli88 in #6301
- fix white space issue for add_warpx_test by @SeverinDiederichs in #6304
- WarpXFaceExtensions: move some functions used only in the cpp file to anonymous namespace by @lucafedeli88 in #6309
- Fix single precision issue in DSMC ionization by @roelof-groenewald in #6310
- Dependencies: weekly update by @github-actions[bot] in #6307
- Generalize DSMC two-product reactions for photons by @oshapoval in #6290
- Replace WarpXUtilIO::WriteBinaryDataOnFile with a one-liner by @lucafedeli88 in #6289
- WarpXParticleContainer : move DiagIdx from forward header to header by @lucafedeli88 in #6298
- Python Control of OMP Threads by @ax3l in #6288
- Add verbosity level for Checkpoint diagnostic output by @Noerr in #6312
- Make PIdx struct more readable by @lucafedeli88 in #6294
- MusclHancockUtils.H : fix uninitialized variables by @lucafedeli88 in #6295
- Spacecraft Charging Example: Get Field Dir String by @ax3l in #6322
- Remove particles.photon_species inputs left over by @EZoni in #6320
- Add
ablastr::math::set_random_seedby @ax3l in #6319 - Remove latex source files for the documentation by @RemiLehe in #6323
- Update runtime names to access particles from Python by @RemiLehe in #6318
- Fix default tolerance in restart test by @RemiLehe in #6325
- Implementing sparse matrix representation of Jacobian and using PETSc preconditioners by @debog in #6184
- Fix restart with ionization and add automated test by @RemiLehe in #6291
- Add ability to load particles from openPMD, through the PICMI interface by @RemiLehe in #6305
- Dependencies: weekly update by @github-actions[bot] in #6330
- Streamline contact page by @RemiLehe in #6328
- Clean documentation: Move all bibliography to
refs.bibby @RemiLehe in #6327
New Contributors
Full Changelog: 25.10...25.11