Releases: Hi-PACE/hipace
v24.08
AMReX: release 24.08
openPMD-api: release 0.15.2
What's Changed
- Build back on AMReX development after release 24.06 by @MaxThevenet in #1124
- Add a relative tolerance to SALAME by @AlexanderSinn in #1125
- Add inputs for scaling benchmarks to examples by @AlexanderSinn in #1128
- CI: CCache for macOS by @ax3l in #1129
- Read laser profile from parser by @huixingjian in #1122
- Clean in-situ diagnostic with TupleSplit and tupleToArray by @AlexanderSinn in #1126
- Remove
amrex::Gpu::notInLaunchRegion()
checks by @AlexanderSinn in #1127 - Fix compilation without openpmd by @AlexanderSinn in #1132
- Add fix for slow GPU aware MPI to JSC booster script by @AlexanderSinn in #1133
- Add pre_register_memory option by @AlexanderSinn in #1134
- Fix unused parameter warning by @AlexanderSinn in #1138
- Remove particles with negative psi_inv by @AlexanderSinn in #1142
- HPMG: Compute finest level directly on the field by @AlexanderSinn in #1137
- Update release number and AMReX build version by @MaxThevenet in #1145
Full Changelog: v24.06...v24.08
v24.06
AMReX: release 24.06
openPMD-api: release 0.15.2
What's Changed
- [mini] Revert amrex branch to build hipace-dev on amrex-dev by @MaxThevenet in #1078
- Improve Maxwell documentation to setup and run by @MaxThevenet in #1076
- Add option to use HPMG to solve Poisson equations by @AlexanderSinn in #1063
- Fix MPI buffer max_leading_slices by @AlexanderSinn in #1079
- Add Beam Spin tracking by @AlexanderSinn in #1071
- Put input parameters for MPI in a separate category by @AlexanderSinn in #1080
- Reverse order of MPI ranks by @AlexanderSinn in #1081
- [mini] Add doc entry for use_previous_rng by @MaxThevenet in #1084
- Make CPU-GPU memory copy highly asynchronous by @AlexanderSinn in #1082
- Add in-situ diagnostic for spin by @AlexanderSinn in #1086
- Limit size in GiB of communications buffer by @AlexanderSinn in #1085
- NVCC 11.5 fixes by @AlexanderSinn in #1089
- Use 63 bits for Beam ID by @AlexanderSinn in #1090
- correct the direction of the spatial rotation by @huixingjian in #1091
- Put Laser abs(a) in separate Field by @AlexanderSinn in #1088
- Clean-up TinyProfiler output by @AlexanderSinn in #1087
- Fix Spin in-situ diagnostic for NVCC 11.5 by @AlexanderSinn in #1094
- Simplify tiling in plasma deposition by @AlexanderSinn in #1093
- Fix Plasma tiling in SALAME by @AlexanderSinn in #1096
- Fix SALAME overloaded beam removal by @AlexanderSinn in #1097
- Don't use Laser FFT array in Laser MG solver by @AlexanderSinn in #1095
- Fix index bug in FFTPoissonSolverPeriodic by @AlexanderSinn in #1102
- Fix adaptive time step for non-electron beams by @AlexanderSinn in #1092
- Enable initial pulse front tilt set for lasers by @huixingjian in #1100
- Remove outer_depos_loop by @AlexanderSinn in #1101
- Use correct geometry for Laser diagnostics by @AlexanderSinn in #1103
- Fix ReorderParticles for Beam by @AlexanderSinn in #1104
- Sort plasma after initialization when running on CPU by @AlexanderSinn in #1107
- Refactor AnyFFT by @AlexanderSinn in #1099
- CI: Update ROCm/HIP by @ax3l in #1113
- Doc: Fix Legal References by @ax3l in #1115
- CMake: No Deprecation Warnings by @ax3l in #1118
- Separate grid for Laser by @AlexanderSinn in #1106
- Fix tiling without OMP by @AlexanderSinn in #1108
- Amend Notices for Non-Endorsement by @ax3l in #1114
- Initialize MR level with beam from file by @AlexanderSinn in #1117
- Use less than or equal for min_density with beam by @AlexanderSinn in #1119
- Add warning if beam is injected with zero particles by @AlexanderSinn in #1120
- Fix openPMD crash if beam has no particles by @AlexanderSinn in #1121
- Improve performance of FFTDirichletExpanded by @AlexanderSinn in #1111
- Improve performance of FFTDirichletFast by @AlexanderSinn in #1112
- Prepare for release 24.06 by @MaxThevenet in #1123
Full Changelog: v24.03...v24.06
v24.03
AMReX: release 24.03
openPMD-api: release 0.15.2
What's Changed
- Hipace dev builds on amrex dev by @MaxThevenet in #1035
- Doc: Button to Copy Code Blocks by @ax3l in #1039
- [mini] Fix typo in laser pulse length to pulse duration conversion by @MaxThevenet in #1036
- Fix typo in assert by @AlexanderSinn in #1041
- Beam particle sorting by @AlexanderSinn in #1032
- Add option to symmetrize fields by @AlexanderSinn in #1038
- Laser FFT solver for AMD by @AlexanderSinn in #1043
- Set
amrex.omp_threads = "nosmt"
by @ax3l in #1044 - Add in-situ diagnostics for field energy by @AlexanderSinn in #1030
- Use 64 bit idcpu by @AlexanderSinn in #1047
- CI: Fix ROCm 6.0
hiprand
by @ax3l in #1048 - Fix minor formatting issue in documentation by @AlexanderSinn in #1050
- Make plasma ppc a mandatory input parameter by @AlexanderSinn in #1051
- MacOS CI explicitly install python@3.12 by @AlexanderSinn in #1049
- Laser with non-electron plasma by @AlexanderSinn in #1002
- Make laser output LASY compliant by @AlexanderSinn in #1046
- Add zyx geometry for laser input by @AlexanderSinn in #1053
- Clean-up in-situ diagnostic by @AlexanderSinn in #1052
- DepositCurrent: atomicAdd -> lockAdd by @WeiqunZhang in #1059
- Use AMReX version of TypeMultiplier by @AlexanderSinn in #1061
- Add HiPACE_CCACHE Option by @ax3l in #1065
- Add [xuy], [yux], [ux/uz], [uy/uz] to beam in-situ diagnostics by @AlexanderSinn in #1058
- Initial propagation angle of laser enabled by @huixingjian in #1057
- Add laser insitu diagnostics by @AlexanderSinn in #1060
- Use id().is_valid() by @AlexanderSinn in #1066
- Use amre::removeInvalidParticles for the Beam by @AlexanderSinn in #1067
- Fix hpmg for some non-ideal resolutions by @AlexanderSinn in #1062
- Try fix MacOS CI by unlinking Python by @AlexanderSinn in #1073
- Prepare Beam Communication for Runtime Components by @AlexanderSinn in #1068
- Add support for Spin to openPMD Beam output by @AlexanderSinn in #1069
- Use amre::GpuComplex in diagnostics by @AlexanderSinn in #1070
- [mini] Option to specify laser CEP by @MaxThevenet in #1074
- [mini] Fix typos in executable names in doc by @MaxThevenet in #1075
- Prepare for release 24.03 by @MaxThevenet in #1077
New Contributors
- @huixingjian made their first contribution in #1057
Full Changelog: v23.11...v24.03
v23.11
AMReX: release 23.11
openPMD-api: release 0.15.2
WARNING: this release builds on AMReX 23.11, but this was not heavily tested. In case of unexpected problems, this could be a good place to check.
What's Changed
- [mini] build on latest openpmd-api 0.15.2 by @MaxThevenet in #1023
- Add xy_integrated diagnostic type by @AlexanderSinn in #1020
- Initialize fixed weight beam from PDF by @AlexanderSinn in #1024
- Add interpolate_neutralizing_background option by @AlexanderSinn in #1021
- Add option to limit number of buffered beam slices by @AlexanderSinn in #1026
- Beam external field from parser by @AlexanderSinn in #1028
- Fix External AMReX Builds by @ax3l in #1031
- Update amrex version when checking for pre-installed version by @MaxThevenet in #1033
- Update version numbers before release by @MaxThevenet in #1034
Full Changelog: v23.10...v23.11
v23.10
Dependencies
AMReX: release 23.10
openPMD-api: release 0.15.1
What's Changed
- build on amrex dev again by @MaxThevenet in #996
- Add output_input option by @AlexanderSinn in #997
- Per-slice communication by @AlexanderSinn in #991
- Include SALAME beam profile in first output iteration by @AlexanderSinn in #1001
- fix B field conversion in radiation reactions in normalized units by @SeverinDiederichs in #998
- Communicate lambda0 with laser from file by @AlexanderSinn in #1004
- Add ghost cells to laser arrays for 2^n-1 MG solve by @AlexanderSinn in #1005
- set MG_tolerance_abs to numeric_limits min by @AlexanderSinn in #1007
- Add deposit_rho_individual option by @AlexanderSinn in #1003
- Per-slice fixed_ppc beam initialization by @AlexanderSinn in #1000
- [mini] Add radius to fixed weight beams by @SeverinDiederichs in #1006
- add plasma subcycling by @SeverinDiederichs in #1009
- Per-slice fixed_weight beam initialization by @AlexanderSinn in #1008
- Fix deposit_rho_individual with neutralizing background and SALAME by @AlexanderSinn in #1010
- CMake: Verify HiPACE_..._src paths exit by @ax3l in #1012
- push beam particles on correct slice when subcycling by @AlexanderSinn in #1013
- add weight for plasma insitu diags and radius by @SeverinDiederichs in #1011
- [mini] update LUMI docs by @SeverinDiederichs in #1017
- Plasma initialization for MR by @AlexanderSinn in #1018
- Workaround std::gcd and std::lcm constexpr issue by @AlexanderSinn in #1019
- Add simple string input parameter parsing by @AlexanderSinn in #990
- Faster multigrid solve using shared memory by @AlexanderSinn in #1015
- Prepare for Release 23.10: proper release number and amrex version by @MaxThevenet in #1022
Full Changelog: v23.07...v23.10
v23.07
Dependencies
AMReX: release 23.07
openPMD-api: release 0.15.1
What's Changed
- Replace rho field with rho - jz/c by @AlexanderSinn in #940
- CI: apt retry and new Easyinstall link by @AlexanderSinn in #930
- make CI triggers consistent by @AlexanderSinn in #938
- Fix rocfft 5.5 by @SeverinDiederichs in #942
- Option to symmetrize plasma by @SeverinDiederichs in #943
- [mini] Document manip to build HiPACE++ release on corresponding AMReX release by @MaxThevenet in #944
- Enable 3 MR levels by @AlexanderSinn in #945
- replace
static
withinline static
for member variables by @AlexanderSinn in #946 - Use less than or equal for min_density by @AlexanderSinn in #947
- Don't use tiling in the plasma pusher by @AlexanderSinn in #949
- [mini] Read angularFrequency from mesh instead of from iteration by @MaxThevenet in #955
- [mini] Fix plasma do_symmetrize by @MaxThevenet in #957
- [mini] Fix b0 calculation in collisions by @SeverinDiederichs in #958
- Implement OMP threading in missing functions by @AlexanderSinn in #951
- [mini] Fix formatting for HIPACE_PROFILE output by @MaxThevenet in #956
- Gather Ez in loop over slices to gather from proper array by @MaxThevenet in #948
- [mini] update documentation for Maxwell by @SeverinDiederichs in #960
- [mini] Fix adaptive time step by @MaxThevenet in #959
- Laser file reader can read from arbitrary box and domain by @MaxThevenet in #950
- [mini] Remove unused variables by @MaxThevenet in #961
- Reset plasma id at every call of Init by @MaxThevenet in #963
- Update Beam and Plasma to Pure SoA by @AlexanderSinn in #928
- Laser reader in cylindrical coordinates by @MaxThevenet in #953
- Fix collisions in normalized units by @SeverinDiederichs in #954
- Enable ionization in normalized units by @SeverinDiederichs in #962
- Add [z], [z^2], [uz], [uz^2] and [z*uz] to beam insitu diagnostics by @AlexanderSinn in #964
- Fix bug in intra-species Coulomb collisions by @SeverinDiederichs in #967
- [mini] assert for normalized units when total charge is specified by @SeverinDiederichs in #969
- fix compiler warning: use static_cast for extent by @SeverinDiederichs in #970
- Plasma in-situ diags by @SeverinDiederichs in #968
- add Bz component to beam pusher by @SeverinDiederichs in #973
- Minor improvements for collision module. by @SeverinDiederichs in #972
- Generalize external E and B fields to uniform and linear in all directions by @MaxThevenet in #965
- add classical radiation reactions for beams by @SeverinDiederichs in #974
- fix some issues with the collision module by @SeverinDiederichs in #976
- MR with SALAME and PC by @AlexanderSinn in #971
- don't use managed memory by @AlexanderSinn in #975
- Add IntVect and RealVect overloads to queryWithParser by @AlexanderSinn in #977
- always use PhysConstSI in parser by @SeverinDiederichs in #978
- Cleaning collisions and preparing UpdateMomentumPerez for beams by @SeverinDiederichs in #980
- [mini] remove passing of ibox by @SeverinDiederichs in #982
- Add option to allocate mpi buffers in device memory by @AlexanderSinn in #979
- Remove z component from plasma by @AlexanderSinn in #984
- [mini] clean GetInstance() and use static inline by @SeverinDiederichs in #981
- remove OK assert by @AlexanderSinn in #985
- break loop over time steps for max_time by @SeverinDiederichs in #986
- Fix output logic for insitu diags by @SeverinDiederichs in #987
- Cut box to plasma radius in init by @AlexanderSinn in #988
- Refactoring documentation by @SeverinDiederichs in #989
- Add beam-plasma collisions by @SeverinDiederichs in #983
- [mini] document GPU-aware MPI for various clusters by @SeverinDiederichs in #992
- [mini] reset ID incrementor before starting initializing a beam by @MaxThevenet in #994
- Prepare release 23.07 by @MaxThevenet in #995
Full Changelog: v23.05...v23.07
v23.05
Dependencies
AMReX: release 23.05
openPMD-api: release 0.15.1
What's Changed
- CI: macOS Only One by @ax3l in #881
- On dev branch, we build on top of amrex dev branch by @MaxThevenet in #882
- Allow for arbitrary sized diagnostics grid by @AlexanderSinn in #871
- Reduce memory footprint of plasma initialization by @AlexanderSinn in #885
- Improvements on the adaptive time step calculation by @MaxThevenet in #884
- [mini] Print pusher for which HiPACE++ was compiled by @MaxThevenet in #888
- [mini] When a checksum test fails, also print the whole new json file by @MaxThevenet in #886
- [mini] Remove unused variable in adaptive time step by @MaxThevenet in #889
- [mini] rename to avoid compiler warning by @SeverinDiederichs in #890
- [mini] fix print statement for small DSTs using rocFFT by @SeverinDiederichs in #892
- CI on GPU by @MaxThevenet in #887
- Better defaults for production (in particular adaptive time step) by @MaxThevenet in #893
- [mini] fix concurrency in local GPU CI test by @MaxThevenet in #896
- [mini] Set default subcycling to 10 by @MaxThevenet in #895
- Upgrade to openPMD API v.15.0 by @MaxThevenet in #901
- Adaptbeams by @MaxThevenet in #899
- use serial openPMD by @SeverinDiederichs in #876
- [mini] Better print statement when checksum fails by @MaxThevenet in #905
- openPMD-api: 0.15.1 by @ax3l in #908
- Multiple diagnostic grids by @AlexanderSinn in #898
- Reorder plasma for deposition by @AlexanderSinn in #900
- Make leapfrog and explicit default by @MaxThevenet in #906
- Update doc to point to chat by @MaxThevenet in #910
- Use parser for beam density by @MaxThevenet in #912
- Remove zeta refinement by @AlexanderSinn in #911
- [mini] remove some unused parameters by @SeverinDiederichs in #913
- add LUMI documentation by @SeverinDiederichs in #914
- [mini] Add info on n_cell in doc by @MaxThevenet in #916
- Remove AmrCore by @AlexanderSinn in #915
- Support new AMReX particle interfaces by @AlexanderSinn in #921
- remove /usr/local from brew cache by @AlexanderSinn in #922
- Interpolate current to level 1 by @AlexanderSinn in #920
- Update LUMI doc by @SeverinDiederichs in #925
- Add time to CI ccache restore key by @AlexanderSinn in #926
- Remove NumPy from brew cache by @AlexanderSinn in #929
- Dynamic particle level by @AlexanderSinn in #924
- Fully initialize plasma every timestep by @AlexanderSinn in #927
- Add mailmap by @MaxThevenet in #931
- Update versions of Python packages to build RTD doc by @MaxThevenet in #934
- add config file for readthedocs by @SeverinDiederichs in #935
- macOS CI add HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK by @AlexanderSinn in #937
- fix a bunch of issues in the documentation by @SeverinDiederichs in #932
- Interpolate jx_beam and jy_beam to level 1 by @AlexanderSinn in #936
- update Perlmutter documentation by @SeverinDiederichs in #939
- update version tags by @SeverinDiederichs in #941
Full Changelog: v23.03...v23.05
v23.03
Dependencies
AMReX: release 23.03
openPMD-api: release 0.14.5
What's Changed
- plasmas.names is now an optional parameter, default no_plasma, and same for beam and laser by @MaxThevenet in #864
- fix typo found by Sarah by @SeverinDiederichs in #865
- Use only one MultiFab for all field slices by @AlexanderSinn in #868
- Assert that insitu and full diagnostics file prefixes are different by @AlexanderSinn in #869
- Increase tolerance on production runs by @MaxThevenet in #875
- Read in Laser form OpenPMD file by @AlexanderSinn in #866
- Output normalized momentum instead of proper velocity in insitu diagnostics by @AlexanderSinn in #870
- CI: macOS by @ax3l in #874
- CI: Windows by @ax3l in #873
- Use only one MultiFab for all laser slices by @AlexanderSinn in #867
- Update release number and fix dependency by @MaxThevenet in #880
Full Changelog: v23.02...v23.03
v23.02
Dependencies
AMReX: release 23.02
openPMD-api: release 0.14.5
What's Changed
- fix NVCC 11.5+ compile issue by @AlexanderSinn in #833
- update CUDA CI to 11.8 by @SeverinDiederichs in #834
- Mesh Refinement with Explicit Solver by @AlexanderSinn in #835
- [mini] Clearly state in the doc that HiPACE++ is 3D by @MaxThevenet in #840
- Remove numprocs_x/y in all inputs, useless and confusing by @MaxThevenet in #841
- Add production examples by @MaxThevenet in #842
- Upper bound to time step when adaptive by @MaxThevenet in #845
- Bug fix:reset plasma only once the time step is known by @MaxThevenet in #846
- Reset plasma position before push by @AlexanderSinn in #848
- User defined Ez chirp in SALAME algorithm by @AlexanderSinn in #852
- option to focus the beam at arbitrary position by @MaxThevenet in #853
- Remove unnecessary copy of BeamBins by @AlexanderSinn in #855
- Gather ExmBy and EypBx as derivatives of Psi by @AlexanderSinn in #850
- HPMG: Support for 2^n-1 cells per direction by @WeiqunZhang in #854
- amrex::Gpu::Atomic::Inc -> amrex::Gpu::Atomic::Add by @WeiqunZhang in #859
- Add leapfrog pusher for plasma by @AlexanderSinn in #847
- Adjust boundary condition for MR with 2^n-1 HPMG by @AlexanderSinn in #857
- Get correct central point for the phase calculation in laser advance by @MaxThevenet in #856
- Fix AdaptiveTimeStep for low density beams by @AlexanderSinn in #862
- Prevent perfectly centered plasma particle by @AlexanderSinn in #861
- replace 22.12 with 23.02 by @MaxThevenet in #863
Full Changelog: v22.12...v23.02
v22.12
Dependencies
AMReX: release 22.12
openPMD-api: release 0.14.5
What's Changed
- Update version number before release by @MaxThevenet in #812
- Fix invalid CUDA device function error in HPMG by @AlexanderSinn in #813
- [mini] print number of iterations only for PC solver by @SeverinDiederichs in #816
- Automatic Beam loading using a near direct SALAME algorithm by @AlexanderSinn in #814
- add documentation for Perlmutter by @SeverinDiederichs in #817
- Fix errors in I/O by @SeverinDiederichs in #818
- Use ReduceOp instead of AtomicAdd in AdaptiveTimeStep by @AlexanderSinn in #820
- [mini] option to not use the phase for laser envelope advance by @MaxThevenet in #821
- clean up deposition using ParallelFor with compile time optimizations by @AlexanderSinn in #819
- Fix Juwels compile issue by @AlexanderSinn in #825
- [mini] Fix docstring of laser gather function by @AlexanderSinn in #826
- Enable multiple laser pulses by @MaxThevenet in #823
- reset laser slices before DepositNeutralizingBackground by @SeverinDiederichs in #827
- Remove spurious comments in laser handling by @MaxThevenet in #828
- [mini] Enable laser transverse offset by @MaxThevenet in #830
- Add derivative shape factors by @AlexanderSinn in #831
- Udate version number by @MaxThevenet in #832
Full Changelog: v22.11...v22.12