Releases: artis-mcrt/artis
Releases · artis-mcrt/artis
v2024.09.1
What's Changed
- Fix resetting particle dep estimators (low impact) by @lukeshingles in #124
- Replace level transition and phixtarget pointers with indicies into block allocations by @lukeshingles in #123
- Move warning for Planck peak outside NU_MIN_R, NU_MAX_R from packet prop to grid update
Full Changelog: v2024.09...v2024.09.1
Performance
sim2010 classic mode 2-120 days 2e7pkt 960 core JUWELS runtime decreased from 1.18k core hrs (v2024.09) to 1.13k core hours (4.5% faster). Compared to classic (11.45k core hours) this is 10.1x faster.
v2024.09
What's Changed
- Detect and disallow variable shadowing by @lukeshingles in #115
- Perf: Cache array of level pops in photoionisation nu_edge order by @lukeshingles in #118
- Reduce heap fragmentation during startup and store allcont keep condition in cell cache by @lukeshingles #116
- Default off for VERIFY_WRITTEN_PACKETS_FILES by @lukeshingles in #122
Full Changelog: v2024.08...v2024.09
Performance
The previous release v2024.08 was not benchmarked, but significant gains have been made since v2024.04 with bit-identical output (except for the classic phixs read-in fix in v2024.08).
- W7 (Shingles et al. 2022) NLTE nebular 960 core 2e9pkt 150-410d JUWELS runtime decreased from 18.6k core hrs (published 2022) to 10.4k core hrs (v2024.04 version) to 6.4k core hrs (2.9x faster than 2022).
- With the Simpson-rule integrator, time decreases to 4.96k core hrs (3.7x faster than 2022)
- subMch Shen+2018 NLTE nebular 960 core 1e9pkt 150-410d runtime decreased from 13.14k core hrs (20210417 version) to 7.30 k core hrs (v2024.04) to 5.36k core hrs (2.45x faster than 20210417).
- sim2010 classic mode 2-120 days 2e7pkt 960 core JUWELS runtime decreased from 11.45k core hrs (ARTIS-CLASSIC) to 3.81k core hrs (20230526 version) to 1.87k core hrs (v2024.04) to 1.18k core hrs (9.7x faster than classic).
v2024.08
What's Changed
Important fix for reading classic phixsdata.txt tables (broken since v2023.05)
- Fix phixs classic readin by @fionntancallan in #113
Other changes
- Reduce bfrate raw on each node and Broadcast reduced quantity; Replace nt_bcast with MPI Pack/Unpack by @jpollin98 in #82
- Extend electron binding energies and shell occupancy data for work function approximation of non-thermal ionisation by @ccollins22 in #62
- Update Just opacity in every time step by @gleck97 in #84
- Add Wollaeger thermalisation scheme by @gleck97 in #89
- Makefile: Avoid unnecessary compilation and linking of up-to-date sn3d and exspec by @lukeshingles in #87
- Avoid dereferencing pointers to zero-size photoionisation arrays by @lukeshingles in #90
- Fix time bug in Barnes gamma thermalisation and ray-tracing error in Wollaeger gamma thermalisation by @lukeshingles in #95
- Track per-cell emission and deposition rates for alphas, positrons, and electrons by @lukeshingles in #86
- Add Guttman Gamma Thermalisation by @gleck97 in #93
- Fix compilation errors for nvc++ 24.5 with unified-memory GPUs and clang 19 by @lukeshingles in #98
- Use stable_sort for test reproducibility across C++ standard library implementations by @lukeshingles in #102
- Fix some clang-tidy 19 warnings, use more std::ranges, const correctness, and anonymous namespaces by @lukeshingles in #103
- Convert more raw pointers to std::vectors, flatten nested arrays, and simplify naming by @lukeshingles in #104
- Communicate elemental abundance updates between ranks by @lukeshingles in #105
- Use node-shared memory for non-thermal excitation ratecoeffs by @jpollin98 in #99
- Nonthermal: simplify and reduce memory use, clean up comments by @lukeshingles in #107
- NLTE: Reuse matrix and vector storage instead of alloc/free on each element solution by @lukeshingles in #108
- Non-thermal: Reduce heap allocations during update_grid by @lukeshingles in #109
- Shrink upper-triangular Spencer-Fano matrix during construction and avoid linelist lookups while looping through excitations by @lukeshingles in #110
- Use stable_sort only for reproducible CI mode by @lukeshingles in #111
- Improve checks during phixs file reads and make PHIXS_CLASSIC_NO_INTERPOLATION constexpr by @lukeshingles in #114
Full Changelog: v2024.06.03...v2024.08
v2024.06.03
What's Changed
- Fix race condition with node-shared corrphotoionrenorm array by removing unnecessary zero-fill by @lukeshingles in #80
- Revert attempted classic fix by @lukeshingles in #81
- Normalise bound-free estimators on each rank independently to eliminate MPI_Bcast and skip NLTE solver if Te=MINTEMP by @jpollin98 in #54
- Add Just grey opacity mode 6 by @gleck97 in #71
- CI: Test in 2x2 multi-node configuration by adding optional MAX_NODE_SIZE override by @lukeshingles in #78
Full Changelog: v2024.05.2...v2024.06.03
v2024.05.2
What's Changed
- Fix major issues in classic mode for deflagration model by @lukeshingles in #72
- Add optional thermalisation coefficient for bound-bound interactions by @lukeshingles in #67
Full Changelog: v2024.5.1...v2024.05.2
v2024.5.1
What's Changed
- Remove unused includes by @lukeshingles in #63
- Fix accidental reversion of #47 to prevent negative tau_sobolev by @lukeshingles in #65
Full Changelog: v2024.5...v2024.5.1
v2024.5
What's Changed
- Fix virtual packet save contribs mode on resume from crash by @lukeshingles #55
- Add option for Barnes thermalisation of gamma-ray energy by @gleck97 #56
- Assert grid corner < CLIGHT not needed with FORCE_SPHERICAL_ESCAPE_SURFACE by @ccollins22 #57
- CI: Add gcc-14 and run on Ubuntu-24.04 by @lukeshingles in #61
Full Changelog: v2024.04...v2024.5
v2024.04
What's Changed
- v2024.04 by @lukeshingles in #50
New Contributors
- @jpollin98 made their first contribution in #47
Full Changelog: v2023.10...v2024.04
v2023.10
v2023.5.3
What's Changed
- Fix for assertion failure cooling_contrib_ion != C_ion when resuming in an LTE timestep with NLTE_POPS_ON
- Add citation information by @lukeshingles in #38
- Update cambridge icelake scripts by @lukeshingles in #39
Full Changelog: v2023.5.2...v2023.5.3