*****
0.9.6
*****

Released 18 of June 2019.


Contributors
============

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

* Jonas Lundholm Bertelsen +
* Nick Papior

Pull requests merged
====================

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

* #94: Added option to plot atom indices in sisl.plot(Geometry)
* #105: Minor fix on rotate documentation: degrees/rads
* #107: Sub orbital
* #108: travis: fixing build-system
* #111: Added rudimentary support for Path objects in get_sile
* #113: Added some noisy files to gitignore
* #116: Adding geometries preserves named regions

* Officially added real-space self-energy calculations

* Cleaned TBT vs. PHT for class name structures

* Bugfix for reading MD output from Siesta out-files #130

* Bugfix for tbtse files when requesting pivoting indices using this
  combination ``in_device=True, sort=False`` which in most cases
  return wrong indices, thanks to J. Bertelsen for bug-find!

* Added several routines for retrieving transposed coupling elements.
  When having connections `i -> j` it may be beneficial to easily get
  the transposed connection `j -> i` by taking into account the
  supercell. `Geometry.a2transpose` enables this functionality making
  construct functions much simpler when having edges/boundaries.

* Bug-fix for reading white-space prefixed keywords in XSF files, #127

* Performance increase for self-energy calculations for very small
  systems

* Huge memory reduction for `Geometry.o2a` with very large system

* Enabled pickling on `BrillouinZone` objects

* Added `spin_moment` to `Hamiltonian`

* Removed ``rotate[abc]`` methods since they were cluttering the name-space
  Codes should simply replace with:

     >>> geometry.rotate(angle, geometry.cell[{012}, :], *)

  for the same effect.

* Finally removed deprecated `write_geom` from the API

* Enabled calculation of ``<S^2>`` for spin-polarized calculations, this
  may be used for calculating spin-contaminations

* added checks for `SparseCSR` to disallow out-of-bounds keys

* Bug fixed for reading POSCAR files from VASP (only when multiple species are
  used in a non-ordered fashion)

* added `sisl` command line utility, it is exactly the same as `sdata`

* Enabled pickling sparse matrices, this allows dask usage of sparse matrices

* Performance increase for sparse matrix handling

* Fixed a problem with Fortran IO + Jupyter notebooks, now the file-handles
  are re-used if a code block is terminated before closing the file

* Added `SparseOrbital` `append` + `transpose`
  This enables appending Hamiltonian's (append) and makes hermiticity
  checks possible (transpose)

* Enabled complex averaged calculations using `oplist`
  The `oplist` object is a container allowing inter-element operations

      >>> l1 = oplist([0, 1])
      >>> l2 = oplist([2, 3])
      >>> l = l1 + l2
      >>> print(l)
      [2, 4]

  This is extremely handy for `BrillouinZone.asaverage`/`assum` when calculating
  multiple values using `eigenstate` objects.

* Added reflection calculation to `tbtncSileTBtrans`

* Added more distribution functions (step and heaviside)

* Removed numpy deprecated class numpy.matrix, now everything is array

* Removed possibility of using `kavg=list(...)` due to complexity, now single
  `kavg` requests are *not* k-averaged.

* Bugfix in calculating `shot_noise`, `noise_power` and `fano` factors in `tbtncSileSiesta`
  They were only correct for Gamma-point calculations

* Fixed `*.EIG` `sdata` processing when using `--dos`

* Fixed reading geometries from grids from VASP (grid values were correct)

* Toolboxes:

  * Added a toolbox to calculate the Poisson solution for arbitrary
    electrodes for TranSiesta
