Skip to content

v0.14.0

Compare
Choose a tag to compare
@zerothi zerothi released this 28 Sep 20:12
· 756 commits to main since this release

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