Changelog#

Upcoming: major features#

Features:

  • Energy ensemble support across the codebase (PlaneWave, Probe, SMatrix, Bloch) (PR #257)

  • Significant improvements on simulating large potentials on GPU, alongside minor performance improvements (PR #269)

  • In addition to the Gaussian (G) distribution, now also implemented Lorentzian (L), Voigtian (convolution L * G) and pseudo-Voigtian (L + G) source-size distributions and filters (PR #270)

  • Support for skewed pixels (non-orthogonal x,y,z cell axes) (PR #282)

  • Linear-scaling PRISM-EELS for core-loss simulations (PR #289)

  • Radially variable detector sensitivity (PR #283)

  • Plasmons: fast PhaseScramblePlasmons for multislice and PRISM, and MonteCarloPlasmons for Bloch wave

  • CBED patterns for Bloch waves (PR #254)

1.0.10#

Features:

  • Expanded real-space multislice with propagator- and fully-corrected algorithms, and backscattered waves (PR #236)

    • Related internal function name change: standard multislice is now properly called FourierMultislice

  • Updated BullseyeAperture to use smoothed aperture edges/corners (PR #266)

  • Logarithmic scale display for DiffractionPatterns and images (PR #303)

  • Finite-projection integrals 7x faster on CPU (PR #309)

Documentation:

  • Expanded tutorial on real-space multislice

  • Depth-profile visualization of potentials in the walkthrough

  • Single-file Zarr zip storage, logarithmic display scaling, soft Bullseye apertures, anisotropic Debye-Waller factors and B-factor conversion helpers

  • All published notebooks verified to run with this release

Dependencies:

  • NumPy 2.0 or newer is now required (PR #245)

  • GitHub actions based on uv and now cover more versions (including Python 3.14) (PR #308)

  • New branching structure: dev for development, main for releases (only via PRs from dev)

  • Support for Zarr 3 ZipStore (requiring zarr>=3.1)

    • Added Zstandard compression of the arrays in the ZipStore at default level 4 (hat tip: quantEM) (PR #252)

  • Deprecated [gpu] optional dependency (as just specifying cupy will not install the correct CUDA version)

  • Moved testing, docs, and dev from optional dependencies to groups

  • Narrow Dask version exclusion to !=2025.12.*,!=2026.1.0,!=2026.1.1 (PR #285)

  • Declared sympy as an optional dependency (core-loss extra), required for core-loss EELS form factors (PR #320)

Bugfixes:

  • Frozen-phonon ensemble handling (PR #267 & PR #292)

    • May also have resulted in incorrect behavior with ensemble_mean = False for e.g. defocus distributions

  • CrystalPotential with frozen phonons bugs (especially bad on – luckily rare – eager compute) (PR #306)

  • Minor bugs, unsafe patterns, and dead code (PR #265)

  • Anistropic Debye-Waller factors for Bloch wave (PR #271)

    • Added helper functions to convert between crystallographic B-factors and thermal sigmas

  • Added missing .calculate_exit_waves for BlochwaveEnsamble (PR #294)

  • Silent atom drop when z-position lands in SliceIndexedAtoms blind spot (PR #273)

  • Early-exit bug in orthogonalize_cell (PR #291)

  • Fixed broken tutorial workflow for core-loss filtered imaging (PR #284)

    • Minor performance improvements for transition_potential_scan (PR #286)

  • Bullseye aperture: ring_width and spoke_width are now validated, rejecting values that previously produced a silently wrong (solid disk) aperture; docstring corrected to describe the actual fractional units introduced by the soft-edge redesign (PR #319)

  • Unified the task-level progress bar config key on diagnostics.task_progress (Bloch-wave code paths previously read a different, non-functional key) (PR #321)

1.0.9#

Dependencies:

  • Support for scipy>=1.7 and cupy>=12.

  • Restricted Dask versions (>=2022.12.1,!=2025.12.*,!=2026.1.*") to avoid an issue with Numba in the latest ones

1.0.8#

Starting the changelog with version 1.0.8.

Features:

  • Fully featured Bloch-wave simulations

  • Simple real-space multislice algorithm

  • Core-loss filtered imaging

  • Structured illumination (custom apertures and phase plates)

Documentation:

  • Updated and fixed example gallery

  • Appendix on convergence

  • Expanded tutorial on orthogonal periodic supercells

Bugfixes:

  • Numerous small bugfixes and improvements