Skip to content

Releases: zerothi/sisl

v0.15.1

11 Sep 10:34
Compare
Choose a tag to compare

Released 10 of September 2024.

Contributors

A total of 2 people contributed to this release. People with a "+" by their
names contributed a patch for the first time.

  • Nick Papior
  • Pol Febrer

Pull requests merged

A total of 5 pull requests were merged for this release.

  • #819: Make sure wheels are uploaded to pypi
  • #822: Bump pypa/gh-action-pypi-publish from 1.9.0 to 1.10.0
  • #823: Fix orbital values
  • #824: Bump pypa/gh-action-pypi-publish from 1.10.0 to 1.10.1
  • #825: Bump JamesIves/github-pages-deploy-action from 4.6.3 to 4.6.4

Added

  • enabled lowdin to return the Lowdin transformation matrix, and also
    allow it to be calculated using SVD

Fixed

  • bugfix for wrong call Lattice.to.cuboid which caused wrong densities, #821

v0.15.0

13 Aug 08:51
Compare
Choose a tag to compare

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 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
  • #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 calculating nsc with more options

  • sisl._debug_info for more complete debug information

  • axes 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 Siles, #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 files

  • atoms 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 as sisl.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 work
  • SparseCSR 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)
    ...
Read more

v0.14.3

07 Nov 14:38
Compare
Choose a tag to compare

Released 7 of November 2023.

Contributors

A total of 2 people contributed to this release. People with a "+" by their
names contributed a patch for the first time.

  • Nick Papior
  • Pol Febrer

Pull requests merged

A total of 11 pull requests were merged for this release.

  • #627: Update DEPLOY.md with pyodide instructions
  • #628: maint: allow stopping traversal of node trees
  • #629: Lattice is now owning the boundary conditions
  • #630: Included missing notebook in the viz docs
  • #631: Added Info attributes to ascii class files
  • #634: fixed #633 due to weird combination of boundary lookups
  • #635: added an as_supercell which returns geometry in supercell
  • #636: Honeycomb flakes
  • #637: Optionally avoid custom node errors.
  • #639: Black linting
  • #642: Deprecated xarray argument

[0.14.3] - 2023-11-07

Added

  • Creation of honeycomb flakes (sisl.geom.honeycomb_flake,
    sisl.geom.graphene_flake). #636
  • added Geometry.as_supercell to create the supercell structure,
    thanks to @pfebrer for the suggestion
  • added Lattice.to and Lattice.new to function the same
    as Geometry, added Lattice.to["Cuboid"]
  • added Atom.to, currently only to.Sphere()
  • enabled Geometry.to|new.Sile(...)
  • added logging in some modules, to be added in more stuff to allow easier
    debugging.
  • marked all toSphere|toEllipsoid|... as deprecated
  • a simple extensionable method to add Sile.info.<attr> by exposing
    attributes through an object on each class.
    The info_attributes contains a list of attributes that can be
    discovered while reading ascii files see #509

Fixed

  • fixed cases where Geometry.close would not catch all neighbours, #633

Changed

  • sisl now enforces the black style
  • Lattice now holds the boundary conditions (not Grid), see #626
  • Some siles exposed certain properties containing basic information
    about the content, say number of atoms/orbitals etc.
    These will be moved to sile.info.<attr> instead to reduce
    the number of methods exposed on each sile.

v0.14.2

04 Oct 12:22
Compare
Choose a tag to compare

Released 4 of October 2023.

Contributors

A total of 2 people contributed to this release. People with a "+" by their
names contributed a patch for the first time.

  • Nick Papior
  • Pol Febrer

Pull requests merged

A total of 5 pull requests were merged for this release.

  • #619: Some fixes in sisl.viz
  • #620: bug: register data classes as plotables
  • #621: Cleaning tutorial notebooks.
  • #623: bug: introduction of meta attribute broke heatmaps
  • #624: bug: origin not properly preserved during grid plotting

[0.14.2] - 2023-10-04

Fixed

  • problems in the sisl.viz module got fixed

Changed

  • xarray is now a full dependency (this also implies pandas)

v0.14.0

28 Sep 20:12
Compare
Choose a tag to compare

Released 28 of September 2023.

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 30 pull requests were merged for this release.

  • #421: Function to build heteroribbons
  • #476: Refactoring the viz module to a more modular design.
  • #528: bug: outSile.read_scf was not able to read unconverged SCF loops
  • #531: enh: Added Nodes and Workflows.
  • #533: bug: functions could not overwrite node arguments
  • #534: Add env variable to docs build
  • #540: bug: fixed swapaxes handling
  • #542: mnt: changed only= keyword arguments to what=
  • #544: aniSileSiesta
  • #546: mnt: added geometry collection with some more features
  • #547: mnt: nodes context settings are no longer a regular input
  • #549: Bugfix for rotate(..., atoms=list) + additional tests
  • #550: changed SuperCell to Lattice, long overdue
  • #562: Wrap fortran files import in try/except block.
  • #563: Scikit build core
  • #566: Make documentation tabs more visual
  • #573: VASP forces from OUTCAR
  • #575: cleaned the procedure for locating maxR
  • #581: undo change of filenames
  • #585: translate2uc for sparse matrices with associated geometries.
  • #586: Slicing IO read_ routines
  • #589: removed Collection + GeometryCollection
  • #594: Fix missing import in siesta_grid.
  • #596: netCDF4 is now an optional dependency
  • #598: maint: Adapt to breaking changes in scipy.sparse.isspmatrix
  • #613: Bump JamesIves/github-pages-deploy-action from 4.4.1 to 4.4.3
  • #614: Bump pypa/gh-action-pypi-publish from 1.6.4 to 1.8.10
  • #615: Bump actions/checkout from 3 to 4
  • #616: Bump pypa/cibuildwheel from 2.15 to 2.16
  • #617: Bump pypa/gh-action-pypi-publish from 1.6.4 to 1.8.10

[0.14.0] - 2023-09-28

Added

  • added SISL_UNIT_SIESTA to select between legacy or codata2018 units (since Siesta 5)
    New default is codata2018, may create inconsistencies until Siesta 5 is widely adopted.

  • added --remove to sgeom for removing single atoms

  • added a EllipticalCylinder as a new shape

  • added basis-enthalpy to the stdoutSiestaSile.read_energy routine

  • added read_trajectory to read cell vectors, atomic positions, and forces from VASP OUTCAR

  • slicing io files multiple output (still WIP), see #584 for details
    Intention is to have all methods use this method for returning
    multiple values, it should streamline the API.

  • allowed xyz files to read Origin entries in the comment field

  • allowed sile specifiers to be more explicit:

    • "hello.xyz{contains=}" equivalent to "hello.xyz{}"

    • "hello.xyz{startswith=}" class name should start with <name>

    • "hello.xyz{endswith=}" class name should end with <name>
      This is useful for defining a currently working code:

       SISL_IO_DEFAULT=siesta
      
  • added environment variable SISL_IO_DEFAULT which appends a sile specifier
    if not explicitly added. I.e. get_sile("hello.xyz") is equivalent to
    get_sile("hello.xyz{os.environ["SISL_IO_DEFAULT"]}".
    Fixes #576

  • added a context manager for manipulating the global env-vars in temporary
    locations. with sisl_environ(SISL_IO_DEFAULT=...)

  • enabled Geometry.append|prepend in sgeom command (reads other files)

  • added fdfSileSiesta.write_brillouinzone to easily write BandLines to the fdf output,
    see #141

  • added aniSileSiesta for MD output of Siesta, #544

  • mdSileOpenMX for MD output of OpenMX

  • Atoms.formula to get a chemical formula, currently only Hill notation

  • unified the index argument for reading Grids, read_grid, this influences
    Siesta and VASP grid reads.

  • sisl.mixing:

    • AndersonMixer enables the popular and very simple linear-like mixer
    • StepMixer allows switching between different mixers, for instance this
      enabled restart capabilities among other things.
    • Enabled composite mixers (simple math with mixers)
  • BrillouinZone.merge allows simple merging of several objects, #537

Changed

  • updated the viz module, #476
  • allowing ^ negation in order arguments for siles
  • internal change to comply with scipy changes, use issparse instead
    of spmatrix, see #598
  • netCDF4 is now an optional dependency, #595
  • interface for Sparse*.nonzero(), arguments suffixed with 's'
  • stdoutSileVASP will not accept all= arguments
  • stdoutSileVASP.read_energy returns as default the next item (no longer the last)
  • txtSileOrca will not accept all= arguments, see #584
  • stdoutSileOrca will not accept all= arguments, see #584
  • xyzSile out from sisl will now default to the extended xyz file-format
    Explicitly adding the nsc= value makes it compatible with other exyz
    file formats and parseable by sisl, this is an internal change
  • default of Geometry.translate2uc, now only periodic axes are
    default to be moved
  • all out files have been renamed to stdout to clarify they are
    user determined output file names, suggestion by @tfrederiksen
  • bumped Python requirement to >=3.8
  • orbitals R arguments will now by default determine the minimal radii
    that contains 99.99% of the function integrand. The argument now
    accepts values -1:0 which is a fraction of the integrand that the function
    should contain, a positive value will explicitly set the range #574
  • Added printout of the removed couplings in the RecursiveSI
  • SuperCell class is officially deprecated in favor of Lattice, see #95 for details
    The old class will still be accessible and usable for some time (at least a year)
  • Enabled EigenState.wavefunction(grid) to accept grid as the initialization of
    the grid argument, so one does not need to produce the Grid on before-hand
  • Geometry.rotate(only=) to (what=), this is to unify the interfaces across, #541
    Also changed the default value to be "xyz" if atoms is Not none
  • tbtncSileTBtrans(only=) arguments are changed to (what=) #541
  • SelfEnergy.scattering_matrix is changed to SelfEnergy.broadening_matrix
    ince the scattering matrix is an S-matrix usage.
    Also changed se2scat to se2broadening #529
  • allow BrillouinZone initialization with scalar weights for all k-points #537
  • Geometry.swapaxes and SuperCell.swapaxes, these are now more versatile by
    allowing multiple swaps in a single run, #539
  • deprecated set_sc
  • internal build-system is changed to scikit-build-core, the distutils will be
    deprecated in Python>=3.12 so it was a needed change.
    This resulted in a directory restructuring.

Fixed

  • fixed Mulliken calculations for polarized calculations due to missing copy, #611
  • fixed single argument ret_isc=True of close, #604 and #605
  • tiling Grid now only possible for commensurate grids (grid.lattice % grid.geometry.lattice)
  • rare cases for non-Gamma calculations with actual Gamma matrices resulted
    in crashes #572
  • MonkhorstPack.replace now checks for symmetry k-points if the BZ is using
    trs. Additionally the displacements are moved to the primitive point before
    comparing, this partly fixed #568
  • spin-orbit Hamiltonians in RealSpaceSE and RealSpaceSI, fixes #567
  • ufunc reductions on SparseGeometry where axis arguments reduces
    dimensionality
  • interaction with pymatgen
  • fdfSileSiesta.includes would fail when empty lines were present, #555
    fixed and added test
  • Documentation now uses global references
  • Geometry.swapaxes would not swap latticevector cartesian coordinates, #539

toolbox.btd

Added

  • calculation of scattering matrices

v0.13.0

18 Jan 10:50
Compare
Choose a tag to compare

Released 18 of January 2023.

Contributors

A total of 5 people contributed to this release. People with a "+" by their
names contributed a patch for the first time.

  • A.H. Kole
  • Nick Papior
  • Nils Wittemeier +
  • Pol Febrer
  • Thomas Frederiksen

Pull requests merged

A total of 18 pull requests were merged for this release.

  • #487: Fix issue 486 - in correct sign of the y component of the spin...
  • #489: bug: fixed #488 with the cell order
  • #494: enh: enabling reading of file-handles and StringIO
  • #498: 495 deprecation
  • #499: Easy construction of hydrogenic orbitals
  • #500: Reading output from ORCA
  • #503: Plotly is incompatible with ipywidgets 8.x
  • #504: Allow reading forces from transiesta in output file
  • #508: New keywords in step_to()
  • #510: Add CodeQL workflow for GitHub code scanning
  • #511: Possible bug: within_inf with periodic=False returns sc atoms...
  • #514: Surface slab geometries: clarify vacuum=None as a possibility...
  • #515: doc: fixed indices in sums
  • #516: mnt: changed index ordering of spin-charge quantities
  • #519: Fix reading of basis
  • #520: ORCA API
  • #521: Minor fixes for IO-API
  • #526: bug: reading the EDM from fdf did not read geometry automatically

Added

  • Geometry.apply apply functions to slices of data depending on the geometry
  • enabled Gaussian and Slater type orbitals, #463
    Please give feedback!
  • deltancSileTBtrans.merge allowing easy merging of several delta
    siles, #513
  • implemented reading of output files from ORCA, #500
  • HydrogenicOrbital is added for simple handling of 1-valence electron
    orbitals, #499
  • Bohr radius to constants
  • enabled ASCII siles to read from file-handles and buffers, #484
  • enabled unit specification for lengths in cube-files
  • added kwargs passed to eigenstate functions in berry_phase
    and conductivity
  • ensured that non-orthogonal transform will copy over overlap matrix
    in case the matrix is only touching the non-overlap elements
  • enabled dictionary entries for the Atoms initialization
    in place of atoms argument. Both in the list-like entry, or
    as the only argument.

Fixed

  • rare compiler bug, #512
  • within_inf with periodic arguments, #511
  • reading TranSiesta data from outSileSiesta
  • regression from 80f27b0, reading version 0 HSX content, #492
  • delta-files (netCDF) would always have diagonal components,
    this has now been removed since it only needs the elements with
    values
  • Siesta sparse matrices could in some cases set wrong diagonal
    components
  • too large energies in Siesta files could result in crash, #482
  • orbital quantum numbers from HSX file was wrong in v1, #462
  • corrected sign for spin-Y direction, PDOS, spin_moment, #486
  • RealSpaceSI for right semi-infinite directions, #475
  • tbtrans files now have a separate entry in the documentation

Changed

  • removed all deprecated routines, #495
  • oplist now can do in-place operations on generators
  • significant performance improvement for COOP calculations,
    thanks to Susanne Leitherer for discovering the issue
  • changed argument order of ElectronState.COP
  • index ordering of spin and coordinate quantities are now changed to
    have these as the first indices. This ensures consistency across
    return types and allows easier handling.
    Note that non-polarized PDOS calculations now has an extra dimension
    for coherence with non-colinear spin. (see #501)
  • ensured all units are now CODATA-2018 values
  • cell_length changed to cell2length with new axes argument
  • enabled orbitals up to the h-shell, #491
  • swapped order of honeycomb (graphene derivatives)
    lattice vectors, to ensure the vectors are following right-hand-rule, #488
  • changed DIIS solver to assume the matrix is symmetric (it is)
  • tbtncSileTBtrans and its derivates has changed, drastically.
    This will accommodate changes related to #477 and #478.
    Now *_transmission refers to energy resolved transmissions
    and *_current reflects bias-window integrated quantities.
    The defaults and argument order has changed drastically, so
    users should adapt their scripts depending on sisl version.
    A check can be made, if sisl.__version_tuple__[:3] >= (0, 13, 0):
  • To streamline argument order the *_ACO[OH]P routines have changed
    elec and E argument order. This makes them compatible with
    orbital_transmission etc.

v0.12.2

02 May 06:06
Compare
Choose a tag to compare

Contributors

A total of 3 people contributed to this release. People with a "+" by their
names contributed a patch for the first time.

  • Nick Papior
  • Pol Febrer
  • Thomas Frederiksen

Pull requests merged

A total of 4 pull requests were merged for this release.

  • #444: Function to translate atoms in geometry into the unit cell
  • #445: Suggestions to docs
  • #447: Minor things
  • #451: enh: enabled PBC center of mass calculations

Added

  • enabled parsing geometry.in files from FHIaims
  • added batched_indices for memory-reduced location of array values
  • enabled manifold extractions sisl.physics.yield_manifolds
  • enabled center of mass for periodic systems (chooses best COM)
  • enabled returning the overlap matrix from berry_phase
  • added rocksalt @tfrederiksen
  • slab geometry creations, fcc_slab, bcc_slab and rocksalt_slab @tfrederiksen
  • added Geometry.translate2uc to shift everything into the unit-cell @tfrederiksen
  • added Geometry.unrepeat to reverse repeat calls (and to sgeom)
  • added SparseGeometry.unrepeat to reverse repeat calls

Fixed

  • enabled reading HSX file version 1, #432
  • major performance boost for reading GULP FC files
  • cleaned mixing methods and decoupled the History and Mixers
  • incorrect handling of atoms argument in Geometry.center calls

Changed

  • State*.outer corrected to the same interface as State*.inner
  • all sisl.geom geometries are now calling optimize_nsc if needed
  • SparseGeometry.cut -> SparseGeometry.untile
    • much faster
    • many more checks to warn about wrong usage
      • cut is now deprecated (removed in 0.13)
      • changed the --cut flag in sgeom to --untile, deprecated flag
  • enabled in/out arguments to tbt siles (easier to remember meaning)

v0.12.1

10 Feb 07:25
Compare
Choose a tag to compare

Contributors

A total of 2 people contributed to this release. People with a "+" by their
names contributed a patch for the first time.

  • Nick Papior
  • Pol Febrer

Pull requests merged

A total of 0 pull requests were merged for this release.

Added

  • return spin moment from SCF output files of Siesta
  • read_fermi_level to siesta.PDOS files

Fixed

  • MacOS builds
  • sdata handling of siesta.PDOS* files, much more versatily now
  • masking import of xarray
  • Fixes to sisl.viz module related to 3.10 and other details

v0.12.0

28 Jan 13:17
Compare
Choose a tag to compare

Contributors

A total of 4 people contributed to this release. People with a "+" by their
names contributed a patch for the first time.

  • A.H. Kole +
  • Nick Papior
  • Pol Febrer
  • Thomas Frederiksen

Pull requests merged

A total of 14 pull requests were merged for this release.

  • #307 : Reading net charges from outSileSiesta
  • #313 : doc: added description of dictionary keys and fixed a typo
  • #365 : mnt: changed all origo references to origin
  • #367 : Parallel calculation of PDOS and (fat)bands
  • #368 : Allow per-category atom styles in GeometryPlot
  • #371 : bug: fixed some errors in tutorial notebooks
  • #374 : bug: geometry plot tests were failing
  • #376 : tests: removed plotly requirement to test sisl.viz
  • #378 : mnt: fixed matplotlib tests in <=3.4
  • #382 : bug: 2D geometry plots didn't take perspective into account.
  • #395 : Quick bug fix. Plot was not callable.
  • #397 : tests: avoid too many matplotlib figures
  • #402 : Use PeriodicTable to convert atomic labels to atomic numbers...
  • #403 : Fixed construction of non-orthogonal (2-atom) hcp cell

Added

  • Geometry.sub_orbital is added
  • BrillouinZone.volume enables easy calculation of volumes for BZ integrals
  • State.sub|remove are now allowed to be done inplace
  • State.derivative can now correctly calculate 1st and 2nd order derivatives #406
  • Enabled discontinuity jumps in band-structures (pass points as None)
  • COOP and COHP calculations for eigenstates
  • inverse participation ration calculations (with arbitrary q)
  • origin point for mirror functionality (Geometry)
  • degenerate_dir for velocity directions
  • State.remove complementary to State.sub
  • copying Dispatchers for subclasses.
  • dispatchers to Shape
  • Spin.spinor to get number of spinor components
  • sc argument to xyzSile.read_geometry for user defined cells
  • tiling a State object, #354 and #355
  • replacing atoms in SparseOrbital geometries #139
  • direction now accepts abc and xyz keywords to retrieve vectors depending on direction input.
  • replacing atoms in SparseOrbital geometries #139
  • reading from STRUCT_* files (Siesta input/output) #308
  • reading the SuperCell block from fdf
  • reading PAO.Basis blocks from both out and fdf files, almost complete functionality #90
  • generic transform method for matrix transformations
  • doing ufunc.reduce on SparseCSR matrices; wrong values for e.g. np.prod, generally be CAUTIOUS with reduction operations
  • transposing a SparseCSR matrix
  • added pymatgen conversion (Geometry.to/from.pymatgen)
  • atom indexing by shapes #337

Fixed

  • sub_orbital allows lists of orbitals
  • berry_phase now works for non-orthogonal basis sets (uses Lowdin transformation)
    This may require sufficiently small dk for accurateness.
  • degenerate argument for conductivity to enable decoupling of states
  • BandStructure.lineark now always starts from 0
  • reading coordinates from siesta.out when bands are calculated #362
  • complex warning for spin_moment #360 and #363
  • partially fixed #102 (wavefunction for fxyz outside box, related to #365 and how origin is interpreted in the code
  • non-collinear PDOS plotting
  • improvement for BandStructure setup, arguments more stringent
  • several fixes for sisl.viz; #368, #376 and #382
  • empty array handlings in _sanitize_* #370
  • ensured AtomicOrbital can be instantiated without specifying m (default to 0)
  • fixed bug when copying orbitals
  • fixed reading atomic labels in xsf files #402
  • fixed hpc parameters #403

Changed

  • order of arguments for nanoribbon it was not consistent with the others
  • removed cell argument in Geometry.sub
  • removed Sile.exist, refer to Sile.file which always will be a pathlib.Path instance
  • berry_phase now uses the gauge=R convention, the code became much simpler
  • BrillouinZone.parametrize function changed interface to allow more dimensions
  • EigenStateElectron.inner does not use the overlap matrix by default, norm2 is for
    exactly this behaviour
  • changed license to MPLv2 makes toolboxes easier to contribute under different license
  • renamed origo to origin, see #365
  • default parallel calculations are disabled
  • changed State.align_* routines to align self rather than other
  • doc fixes for recommending python -m pip

Removed

  • removed keywords align for State.inner|outer, manually use align if required
  • removed method State.expectation

toolbox.btd

Added

  • calculation of scattering states and eigenchannels
  • multiple variants of scattering state methods

v0.11.0

17 Feb 08:35
Compare
Choose a tag to compare
  • Major addition: plotly backend for plotting and interaction with
    output. This is still a work in progress made by Pol Febrer.
    Many thanks to @pfebrer!

  • Added unzip argument to BZ.apply methods to unzip multiple
    return values, also added documentation to reflect this

  • Fixed reading data-arrays from Siesta-PDOS files

  • Enabled minimization method for basis information and pseudo generation

  • Enabled plotting grids using the command-line

  • Bug in how non-colinear matrices are dealt with, now fixed
    Thanks to Xe Hu for discovering this.

  • Allowed reading the geometry for supercell HSX files
    Atomic coordinates and nsc are determined from xij arrays

  • Basic implementation of Hermitian construct.
    It now ensures a correct Hermitian matrix for simple cases

  • Added more return from close/within, supercell offsets
    may be queried (ret_isc)

  • Added more transposing functionality for spin matrices

  • Fixed wfsxSileSiesta returning proper k-points if a geometry
    is passed (i.e. reduced k-points). Otherwise warns users

  • Huge performance increase for finalizing very large structures

  • Fixed writing %block in fdf files

  • Enabled reading Fermi level from VASP DOSCAR files

  • Cleaned siesta and VASP reading of completed jobs, #287

  • added Geometry.new allowing easy type-lookups to convert to Geometry
    e.g. Geometry.new("RUN.fdf") and Geometry.new(ase_atoms) automatically
    figures out which method to call and how to interpret the objects.
    added Geometry.to allowing easy type-lookups to convert to other objects
    #282

  • enabled calculating supercell matrices with phases, format=sc:
    returns in supercell matrix form (no, no_s)

  • removed support for int and long as matrix types, only float/complex

  • Enabled sgrid to write tables of data

  • Merged spin_orbital_moment(deleted) and spin_moment with optional argument project

  • Enabled orbital resolved velocities

  • Added outSileSiesta.read_energy to read final energies in a property-dict
    (works both as a property (energy.fermi) and a dictionary (energy["fermi"])

  • Ensured ghost atoms in Siesta are handled with separate
    class, AtomGhost, #249

  • Using si.RealspaceSI with unfold=(1,1,1) no longer results in nsc on
    the given surface hamiltonian being set to (1,1,1).

  • Added calculation of isosurfaces, #246

  • Added sisl.WideBandSE for self-energies with constant diagonals

  • Enabled more user control over categories, #242

  • Improved interpolation function for Grid's, and also added filters

  • Bugfix for periodic directions for ASE conversion, #231

  • Fixed tuples for _sanitize_atoms, #233

  • Fixed reading correct unit from deltanc files, #234

  • Enabled berry-phase calculations for NC+SOC, #235

  • Added tiling to Grid, #238

  • Added Atoms.group_data which nicely splits an array holding
    orbital information into atomic contributions (a list since
    each sub-list may be unequal in length)

  • Many small bug-fixes and performance improvements

Contributors

A total of 5 people contributed to this release.

  • Jonas Lundholm Bertelsen
  • Nick Papior
  • Pol Febrer
  • Sofia Sanz Wuhl
  • Thomas Frederiksen

Pull requests merged

A total of 12 pull requests were merged for this release.

  • #231 <https://github.com/zerothi/sisl/pull/231>__: Transmitting pbc to ASE
  • #246 <https://github.com/zerothi/sisl/pull/246>__: Method to calculate grid isosurfaces
  • #253 <https://github.com/zerothi/sisl/pull/253>__: Geometry._sanitize_atoms did not accept generic categories
  • #254 <https://github.com/zerothi/sisl/pull/254>__: f-string was not printing variable value due to missing f
  • #255 <https://github.com/zerothi/sisl/pull/255>__: Make parent categories callable and avoid their instantiation
  • #258 <https://github.com/zerothi/sisl/pull/258>__: Making coordinate categories more accessible
  • #263 <https://github.com/zerothi/sisl/pull/263>__: Supporting the creation of Binder docker images
  • #267 <https://github.com/zerothi/sisl/pull/267>__: bug: skewed isosurfaces were not properly calculated
  • #270 <https://github.com/zerothi/sisl/pull/270>__: Fixed reading geometries in .AXSF-files
  • #277 <https://github.com/zerothi/sisl/pull/277>__: maint: remove ending blank line when writing xyz-files
  • #298 <https://github.com/zerothi/sisl/pull/298>__: All plotly tests passing now
  • #300 <https://github.com/zerothi/sisl/pull/300>__: Make plotly docs work