0.12.0

Released 28 of January 2022.

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/new.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