v0.15.0
Released 13 of August 2024.
Contributors
A total of 4 people contributed to this release. People with a "+" by their
names contributed a patch for the first time.
- Nick Papior
- Nils Wittemeier
- Pol Febrer
- Thomas Frederiksen
Pull requests merged
A total of 92 pull requests were merged for this release.
- #393: Linear and efficient neighbour finder
- #496: Calculate psi values on a sparse grid, to accelerate multiple...
- #497: mnt: changed spin_squared name to other name
- #647: Added a node to keep track of files
- #651: added typing hints for Lattice and LatticeChild
- #652: added sanitize to SparseCSR and setitem
- #658: Bump pypa/gh-action-pypi-publish from 1.8.10 to 1.8.11
- #659: Bump JamesIves/github-pages-deploy-action from 4.4.3 to 4.5.0
- #660: Bump actions/setup-python from 4 to 5
- #662: Bump github/codeql-action from 2 to 3
- #663: Bump actions/upload-artifact from 3 to 4
- #664: Bump actions/download-artifact from 3 to 4
- #665: moving towards functional programming in sisl
- #666: Support for conditional expressions on workflows.
- #667: ensure that workflows have (and transmit) the right state
- #668: WIP: Added a matrix plot
- #670: Missing fdf flags error
- #672: first try at implementing bond-order calculations
- #673: removed selector from code base
- #679: Bump codecov/codecov-action from 3 to 4
- #681: Fix multisize 3D balls in plots
- #682: Added Jmol colors as defaults for atoms.
- #683: Added pre-commit config
- #684: Some tweaks to atom colors
- #686: 579 dftb hamiltonian
- #692: Lazy loading of the viz module
- #693: Fix wheels workflow
- #695: added typing in lots of io places, added SileSlicer
- #696: Bump pypa/gh-action-pypi-publish from 1.8.11 to 1.8.12
- #697: Optimize nsc after reading Hamiltonian from wann90 output
- #702: fixed #700 by reverting 7cf88f1
- #704: Bump pypa/gh-action-pypi-publish from 1.8.12 to 1.8.14
- #706: cleaned finder and removed pbc (getting it from Lattice)
- #710: removed txtSileOrca.no/info.no since it was never present
- #711: added warning for complex grids and isosurface
- #714: 675 documentation
- #715: Bump pypa/cibuildwheel from 2.16 to 2.17
- #717: Fix for reading spinful CHG/CHGCAR
- #722: Add
read_gtensor
andread_hyperfine_coupling
totxtSileORCA
- #723: add test for reading Hamiltonian from wannier90 output
- #725: Additional energy units
- #726:
units
as parameter inread_*
- #727: Resolve Issue #716
- #729: Minor ORCA/VASP documentation improvements
- #734: Remove deprecated
bc
argument toGrid
- #736: Some polishing of
sisl.nodes
- #737: added math notation convention
- #739: Ensure module is fine on node class creation
- #742: Draft: add vectorsSileSIESTA for parsing vibra output
- #743: Added specific functions to create animations and subplots
- #746: 745 rtd files
- #749: Ensure c-order for
Geometry
coordinates - #750:
norm2
as atom-resolved quantity - #751: made State.inner a very flexible matrix product
- #752: added hexagonal and goldene
- #753: removed sisl.plot from the code base
- #754: Reading spin densities from CHGCAR
- #755: Bump JamesIves/github-pages-deploy-action from 4.5.0 to 4.6.0
- #757: Plot update on getting attributes
- #758: Added declaration of some attributes in Figure
- #759: Removed nodes from
sisl
- #761: removed 3.8 support, bumped min to 3.9
- #762: CI also run on minimal installation
- #763: changed phonon displacement shape
- #765: Modifying the returns of the neighbor finder
- #767: fixed pbc usage across sisl, fixes #764
- #769: Bump pypa/cibuildwheel from 2.17 to 2.18
- #771: Removed leftover print
- #772: Removed deprecated argument
diag->projection
- #773: Dihedral angles
- #774: Bump JamesIves/github-pages-deploy-action from 4.6.0 to 4.6.1
- #776: Add support for sisl in nodify's GUI
- #779: fixed reading geometries from fdf + XV + STRUCT
- #780: Allow dash to be set in bands plots.
- #781: Allow tuning matplotlib subplots.
- #784: Legend grouping in bands plots
- #786: Allow custom color scales across sisl.viz
- #787: Clarify viz dependencies error
- #788: Bump pypa/cibuildwheel from 2.18 to 2.19
- #789: Bump pypa/gh-action-pypi-publish from 1.8.14 to 1.9.0
- #790: fixed lots of parallel calculations
- #792: trying to remove numpy 2 (as a temporary work-around)
- #793: adding test for parallel calculation
- #796: Clarify out of memory error on density
- #797: 766 shc
- #803: Bump JamesIves/github-pages-deploy-action from 4.6.1 to 4.6.3
- #804: ensured building against numpy>=2
- #805: Fix bug with numpy v2.0
- #807: Fix fatbands with negative size
- #809: enabled vacuum for all geometries with non-pbc directions
- #812: completed tests rearrangement
- #818: fixing many simple PEP-585 deprecations
Added
-
conversion of list-like elements to
Lattice
-
vacuum argument for all
sisl.geom
methods that can use it -
Geometry.find_nsc
, alternate method for calculatingnsc
with more options -
sisl._debug_info
for more complete debug information -
axes
argument added toderivative
to only calculate on a subset
of directions (can greatly improve performance for some systems) -
operator
argument added toderivative
to apply an operator
todHk
anddSk
matrices.
of directions (can greatly improve performance for some systems) -
added
apply_kwargs
to methods which uses aBrillouinZone
object.
This enables one to leverage parallel processing for calculations. -
SISL_PAR_CHUNKSIZE=25
, new default parameter for parallel processing.
Can greatly improve parallel processing of BZ integrations -
added
vectorsSileSiesta
to read vibra eigenmode output -
added
dihedral
toGeometry
, #773 -
ability to retain sub-classes through
<class>.new
calls -
added
Listify
to ensure arguments behaves as iterables -
setter for
Lattice.pbc
to specify it through an array -
Lattice.volumef
to calculate a subset volume based on axes -
added
write_grid
to Siesta binary grid files -
added the
goldene
2D lattice, ahexagonal
Gold 2D structure -
added the
hexagonal
2D lattice, close-packed FCC(111) surface -
improved
atom
projections of states, #750 -
improved typing system
-
units
toread_*
for someSile
s, #726 -
enabled reading the Hamiltonian from the Wannier90 _tb.dat file, #727
-
"Hz", "MHz", "GHz", "THz", and "invcm" as valid energy units, #725
-
added
read_gtensor
andread_hyperfine_coupling
totxtSileORCA
, #722 -
enabled
AtomsArgument
andOrbitalsArgument
to acceptbool
for all or none -
enabled
winSileWannier90.read_hamiltonian
to read the_tb.dat
files -
atoms
argument toDensityMatrix.spin_align
to align a subset of atoms
(only diagonal elements between the atoms orbitals) -
added an efficient neighbor finder, #393
-
enabled reading DFTB+ output Hamiltonian and overlap matrices, #579
-
bond_order
forDensityMatrix
objects, #507 -
better error messages when users request quantities not calculated by Siesta/TBtrans
-
functional programming of the basic sisl classes
Now many of the `Geometry|Lattice|Grid.* manipulation routines which
returns new objects, are subjected to dispatch methods.
E.g.sisl.tile(geometry, 2, axis=1) geometry.tile(2, axis=1)
will call the same method. The first uses a dispatch method, and a
SislError
will be raised if the dispatch argument is not implemented. -
SparseCSR.toarray
to comply with array handling (equivalent totodense
) -
enabled
Grid.to|new
with the most basic stuff
str|Path|Grid|pyamg -
Shape.translate
, to easily translate entire shape constructs, #655 -
Creation of chiral GNRs (
kind=chiral
insisl.geom.nanoribbon
/sisl.geom.graphene_nanoribbon
as well assisl.geom.cgnr
) -
Creation of [n]-triangulenes (
sisl.geom.triangulene
) -
added
offset
argument inGeometry.add_vacuum
to enable shifting atomic coordinates -
A new
AtomicMatrixPlot
to plot sparse matrices, #668
Fixed
- PEP-585 compliant
- buildable for numpy>2, #791
BrillouinZone.tocartesian()
now defaults tok=self.k
- reading XV/STRUCT files from fdf siles could cause problems, #778
Geometry.[ao][us]c2[su]c
methods now retains the input shapes (unlessunique=True
)- lots of
Lattice
methods did not consistently copy over BC BrillouinZone.volume
fixed to actually return BZ volume
useLattice.volume
for getting the lattice volume.- xsf files now only respect
lattice.pbc
for determining PBC, #764 - fixed
CHGCAR
spin-polarized density reads, #754 - dispatch methods now searches the mro for best matches, #721
- all
eps
arguments has changed toatol
- methods with
axis
arguments now accepts the str equivalent 0==a - documentation links to external resources
- fixed
chgSileVASP.read_grid
for spinful calculations txtSileOrca.info.no
used a wrong regex, added a test- raises error when requesting isosurface for complex valued grids, #709
- some attributes associated with
Sile.info.*
will now warn instead of raising information - reading matrices from HSX files with weird labels, should now work (fingers-crossed)
Atom(Z="1000")
will now correctly work, #708AtomUnknown
now also has a default mass of 1e40- changed
read_force_constant
toread_hessian
, the old methods are retained with
deprecation warnings. pdosSileSiesta
plotting produced wrong spin components for NC/SOCtqdm
changed API in 2019,eta=True
in Notebooks should now workSparseCSR
ufunc handling, in some corner cases could the dtype casting do things
wrongly.- fixed corner cases where the
SparseCSR.diags(offsets=)
would add elements
in non-existing elements - some cases of writing orthogonal matrices to TSHS/nc file formats #661
BDOS
from TBtrans calculations now returns the full DOS of all (Bloch-expanded)
atomsLattice
objects now issues a warning when created with 0-length vectors- HSX file reads should respect input geometry arguments
- enabled slicing in matrix assignments, #650
- changed
Shape.volume()
toShape.volume
- growth direction for zigzag heteroribbons
BandStructure
points can now automatically add thensc == 1
axis as would
be done for assigning matrix elements (it fills with 0's).
Removed
degenerate
argument invelocity
/derivative
, they do not belong therexvSileSiesta.read_geometry(species_as_Z)
, deprecated in favor ofatoms=
structSileSiesta.read_geometry(species_as_Z)
, deprecated in favor ofatoms=
Atom.radii
is removed,Atom.radius
is the correct invocationsisl.plot
is removed (sisl.viz
is replacing it!)cell
argument forGeometry.translate/move
(it never worked)- removed
Selector
andTimeSelector
, they were never used internally
Changed
- internal test structure, should improve future progress
Lattice.parameters
now returns a 2-tuple oflength, angles
- units of
conductivity
has changed to S / Ang conductivity
is deprecated, useahc
andshc
insteadberry_curvature
has completely changed, checks it API- BZ apply methods are now by default parallel (if
SISL_NUM_PROCS>1
) hsxSileSiesta.read_hamiltonian
now implicitly shifts Fermi-level to 0 (for newer HSX versions)- deprecated
periodic
toaxes
argument inBrillouinZone.volume
- changed
Eigenmode.displacement
shape, please read the documentation - bumped minimal Python version to 3.9, #640
- documentation build system on RTD is updated, #745
gauge
arguments now accept 'cell' and 'orbital' in replacements for 'R' and 'r', respectivelysiesta.*.read_basis
now defaults to read anAtoms
object with all atomsatoms.specie
changed toatoms.species
, generally species is the singular formin_place
arguments changed toinplace
- renamed
stdoutSileVASP
tooutcarSileVASP
, #719 - deprecated scale_atoms in favor of scale_basis in
Geometry.scale
- changed default number of eigenvalues calculated in sparse
eigsh
, from 10 to 1 stdoutSileSiesta.read_*
now defaults to read the next entry, and not the laststdoutSileSiesta.read_*
changed MD output functionality, see #586 for detailsAtomNeighbours
changed name toAtomNeighbor
to follow #393- changed method name
spin_squared
tospin_contamination
- removed
Lattice.translate|move
, they did not make sense, and so their
usage should be deferred toLattice.add
instead. vacuum
is now an optional parameter for all ribbon structures- enabled
array_fill_repeat
with custom axis, to tile along specific
dimensions - Importing
sisl.viz
explicitly is no longer needed, as it will be lazily
loaded whenever it is required.