sisl 0.16.4 Release Notes
Released on 2026-03-19.
Changes and improvements
Change trs default in MonkhorstPack depending on spin
Now for non-collinear or higher spin-configurations it defaults to
trs=False.(PR927)
Full implementation of Bloch 3D expansion
It now fully utilizes the Toeplitz matrix structure for huge performance improvements.
(PR951)
Improved performance of real-space self-energies
Now there is only a single copy at the end of the integration, so it should be much faster.
(PR951)
Improved Atoms.index usability
Now one gets an empty list if no atoms are found. One can also get the combined indices of several atom types, e.g., atoms.index([“C”, “H”]).
(PR954)
Changed spherical_harm argument order to match scipy 1.17
Since this is generally not really used, it should be safe to do. Sorry for the inconvenience.
(PR969)
Dropped support for Python 3.9
Enabled simpler rotation argument to Geometry.rotate
This makes rotation arguments more versatile, and also easier to combine.
One can now do lists of rotations that then gets parsed directly.
Implemented dependency-groups in pyproject.toml
This affects developers where the
docsbuild specification is now hidden from end-users.added oxyz to extract coordinates of orbitals
This allows easier access to orbital coordinates rather than having to convert indices to atoms and then to supercell coordinates.
Basically equivalent to:
`python atoms = geom.o2a(orbitals) geom.axyz(atoms) == geom.oxyz(orbitals) `
Bugfixes
Fixed spin-rotations
Now one can denote rotations in a much more generic way.
Removed rotation_matrix and superseeded by parse_rotation which returns a Quaternion which can be used to create a rotation-matrix.
(PR924)
Reading the basis-enthalpy for Siesta 5.4 changed
(PR929)
Fixed finding coordinates within elliptical cylinders
(PR947)
Fixed import error for scipy deprecations
(PR968)
Fixed order in ORB_INDX files when species are not linear
(PR971)
Fixed AtomCategory usage when sisl.geom hasn’t been imported
(PR982)
bug fix for pandas >= 3 migration
(PR983)
DIIS mixing now uses a scaling factor for inverse
This provides a better stability for the inversion algorithm when the metrics are much bigger than 1.
Fixed reshape calls, removed from ndarray in later versions
Fixed skewed cell neighbor search
For the linear neighbor search mechanism it needed to account for skewed cells when the binsize is very close to the inter-atomic distances.
(reported by @ialcon on Discord, thanks!)
Documentation
Fixed wording in Geometry.scale documentation
It is now clearer that both lattice vectors and atomic coordinates are scaled.
(PR949)
Internal development changes
Bumped CI to Python 3.14
(PR978)