0.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 7cf88f1a5
#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 and read_hyperfine_coupling to txtSileORCA
#723: add test for reading Hamiltonian from wannier90 output
#725: Additional energy units
#726: units as parameter in read_*
#727: Resolve Issue #716
#729: Minor ORCA/VASP documentation improvements
#734: Remove deprecated bc argument to Grid
#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
#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
[0.15.0] - 2024-08-13
Added
conversion of list-like elements to Lattice
vacuum argument for all
sisl.geom
methods that can use itGeometry.find_nsc, alternate method for calculating nsc with more options
sisl._debug_info
for more complete debug informationaxes argument added to derivative to only calculate on a subset of directions (can greatly improve performance for some systems)
operator
argument added to derivative to apply an operator to dHk and dSk matrices. of directions (can greatly improve performance for some systems)added apply_kwargs to methods which uses a BrillouinZone 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 to Geometry, #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, a hexagonal Gold 2D structure
added the hexagonal 2D lattice, close-packed FCC(111) surface
improved atom projections of states, #750
improved typing system
units to read_* for some Sile`s, :pull:`#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 and read_hyperfine_coupling to txtSileORCA, #722
enabled AtomsArgument and OrbitalsArgument to accept bool for all or none
enabled winSileWannier90.read_hamiltonian to read the
_tb.dat
filesatoms argument to DensityMatrix.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 for DensityMatrix 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 to todense)
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 in
sisl.geom.nanoribbon
/sisl.geom.graphene_nanoribbon
as well assisl.geom.cgnr
)Creation of [n]-triangulenes (
sisl.geom.triangulene
)added offset argument in Geometry.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 to k=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 (unless unique=True)
lots of Lattice methods did not consistently copy over BC
BrillouinZone.volume fixed to actually return BZ volume use Lattice.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 to atol
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, #708
AtomUnknown now also has a default mass of 1e40
changed read_force_constant to read_hessian, the old methods are retained with deprecation warnings.
pdosSileSiesta plotting produced wrong spin components for NC/SOC
tqdm
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) atoms
Lattice 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() to Shape.volume
growth direction for zigzag heteroribbons
BandStructure points can now automatically add the nsc == 1 axis as would be done for assigning matrix elements (it fills with 0’s).
Removed
degenerate argument in velocity/derivative, they do not belong there
xvSileSiesta.read_geometry(species_as_Z), deprecated in favor of atoms=
structSileSiesta.read_geometry(species_as_Z), deprecated in favor of atoms=
Atom.radii is removed, Atom.radius is the correct invocation
sisl.plot is removed (
sisl.viz
is replacing it!)cell argument for Geometry.translate/move (it never worked)
removed Selector and TimeSelector, they were never used internally
Changed
internal test structure, should improve future progress
Lattice.parameters now returns a 2-tuple of
length, angles
units of conductivity has changed to S / Ang
conductivity is deprecated, use ahc and shc instead
berry_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 to axes argument in BrillouinZone.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’, respectively
siesta.*.read_basis now defaults to read an Atoms object with all atoms
atoms.specie changed to atoms.species, generally species is the singular form
in_place arguments changed to inplace
renamed stdoutSileVASP to outcarSileVASP, #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 last
stdoutSileSiesta.read_* changed MD output functionality, see #586 for details
AtomNeighbours changed name to AtomNeighbor to follow #393
changed method name spin_squared to spin_contamination
removed Lattice.translate|move, they did not make sense, and so their usage should be deferred to Lattice.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.