Skip to content

v0.8.5

Compare
Choose a tag to compare
@zerothi zerothi released this 21 Jul 12:06
· 4178 commits to main since this release
  • Added the following routines:

    • SuperCell.fit routine to determine a new supercell object
      such that a given set of coordinates are all within AND
      periodic in the new supercell.
    • SuperCell.parallel to check whether two objects have parallel
      latticevectors.
    • Geometry.distance returns a list of distances from a given
      set of atoms. I.e. to determine a set of distances required for
      a subsequent close call. This routine can also be used to group
      neighbouring atoms in a common fashion.
    • Geometry.optimize_nsc loops all atoms and minimizes nsc in case
      one is not sure of the interaction range.
    • Hamiltonian.shift enables the shift of the entire electronic structure
      Fermi-level.
    • Added new flag to Hamiltonian.Hk routines
      format={'csr', 'array', 'dense', ...}
      to ensure a consistent return of the data-type.
  • Bug fix for dHncSileSiesta for multiple levels.

  • Performance boost for the sub and remove functions for the
    Hamiltonian objects. Instead of creating the geometry first,
    it may now be much faster to generate the small Hamiltonian,
    tile -> repeat -> sub -> remove.

  • Performance boost for the tile and repeat functions for the
    Hamiltonian objects. They are now the preferred method for creating
    large systems.

  • Bug fixed when having extremely long atomic ranges and using tile/repeat.
    The number of supercells was too large.
    It did not affect anything, but it was inconsistent.

  • Enabled reading the density matrix and energy density matrix from siesta.

  • Addition of a PerformanceSelector class which enables a dynamic
    selection of the best routine.

    Currently this is enabled in the SparseOrbitalBZ class where
    constructing a matrix @ k can be done in numerous ways.

  • Bug fixed in supercell specification of the Hamiltonian:

    >>> H[io, jo, (-1, 0, 0)]
    

    now works in all cases.

  • Spin-orbit H(k) has been enabled

  • Fixed reading the <>.nc file from SIESTA, the non-zero elements count was
    wrong.

  • Now H(k) has been tested for non-colinear and spin-orbit coupling and
    one can now use sisl to perform non-colinear and spin-orbit coupling
    calculations.

  • API change, all dR keywords has been changed to R for consistency and
    reduction of ambiguity.
    Also the Atoms.dR is now referred to as Atoms.maxR() to indicate
    its meaning.

    This may break old scripts if one use the dR keyword in arguments.