v2025.08.01
Performance
- sim2010 classic mode 2-120 days 2e7pkt 960 core Virgo runtime decreased from 915.7 core hrs (v2024.02.17) to 776.8 core hours (12% faster). Compared to classic (5741.5 core hours) this is 7.39x faster.
- W7 (Shingles et al. 2022) NLTE nebular 960 core 2e9pkt 150-410d Virgo decreased from 4888.0 core hrs (v2024.02.17) to 4358.7 core hrs (12% speedup).
What's Changed
- Add scripts to sum CPU core hours from sn3d or slurm logs by @lukeshingles in #169
- Refactor boundary checks and remove last_cross by @lukeshingles in #176
- DIRECT_COL_HEAT: Don't allocate or update colheatingestimator by @lukeshingles in #177
- Sort linelist by wavelength (not always unique), element, ion, lowerlevel, upperlevel by @lukeshingles in #178
- Create nuclides.out to associate packets with decays of specific nuclides by @lukeshingles in #179
- Add pellet_decaytype column to packets*.out by @lukeshingles in #183
- Fix unit error in XCOM gamma-ray photoionization cross sections (non-default settings) by @gleck97 in #185
- Avoid malloc and replace some raw pointer usage by @lukeshingles in #188
- Block allocate all levels and share on node by @lukeshingles in #189
- GSI Virgo cluster: Update from vae24 to vae25 and drop gcc-12 from test matrix by @lukeshingles in #197
- Fix phi binning for rare theta=0 packets by @lukeshingles in #198
- Allow removing unimportant ion stages from the NLTE population solver by @fionntancallan in #187
- Add extra clang-tidy checks for implicit narrowing conversions by @lukeshingles in #196
- Refactor and define do_emission_res = true (removing input.txt option) by @lukeshingles in #200
- Handle species with zero bound electrons (e.g. He III) by @fionntancallan in #199
- Add safe wrappers around MPI calls by @lukeshingles in #202
- Fix DO_TITER option by @AlexHls in #186
- Fix checks on superlevel population inversions when STRICT_POPULATION_CHECKING is true by @fionntancallan in #204
- Update nltephotospheric tests to include Fe VI and VII and He in atomic data by @fionntancallan in #203
- Add ION_NLEVELS_NLTE to artisoptions by @fionntancallan in #206
- Fix no LTE reset when NLTE_LIMIT_ION_STAGES_AFTER_FAILURE can not find solution by @fionntancallan in #207
- Enable libc++ unsafe-buffer warnings and remove almost all pointer arithmetic by @lukeshingles in #205
- Remove unused TRACK_ION_STATS by @lukeshingles in #211
- Write angle-resolved output during simulation by @lukeshingles in #215
- Refactor NLTE solver by @lukeshingles in #218
- Add initial support for dielectronic recombination by @ssim in #161
- Use atomic operations to accumulate spectra/lc to node shared memory on all ranks simultaneously by @lukeshingles in #220
- Fix for LLVM clang-tidy 21.1.0-rc1 by @lukeshingles in #221
Full Changelog: v2025.02.17...v2025.08.01