Releases: zerothi/sisl
v0.15.2
Released 6 of November 2024.
Contributors
A total of 3 people contributed to this release. People with a "+" by their
names contributed a patch for the first time.
- Arnold Kole +
- Nick Papior
- Pol Febrer
Pull requests merged
A total of 14 pull requests were merged for this release.
- #691: Parsing of Mulliken charges from SIESTA stdout
- #833: Fixed spin polarized fatbands
- #836: Fix orbital values when an orbital is completely outside of the unit cell
- #843: Fix sparse grid tests
- #844: Fix failing test for minimal dependencies
- #845: Accessors and grouping documentation entries
- #846: fixed bug reading geometry from ncSileSiesta
- #848: Allow for any type of integer when requesting neighbor items
- #849: Improve plotables documentation
- #850: trying to fix the within_inf problem
- #851: major restructure of the documentation
- #857: fixed 5.2 reading of charges
- #859: Use cutoff from basis files (xml, nc)
- #860: New wheels
Maintenance pull requests merged
A total of 4 pull requests were merged for this release.
- #830: Bump pypa/gh-action-pypi-publish from 1.10.1 to 1.10.2
- #834: Bump JamesIves/github-pages-deploy-action from 4.6.4 to 4.6.8
- #837: Bump pypa/gh-action-pypi-publish from 1.10.2 to 1.10.3
- #855: Bump pypa/gh-action-pypi-publish from 1.10.3 to 1.11.0
Changelog
Added
- added
timesSileSiesta
which can read siesta TIMES output - Parsing of total Mulliken charges in
stdoutSileSiesta
, #691
Fixed
- reading charges from Siesta 5.2 output files, #856
- a read problem for very big simulations (related to
orbindxSileSiesta
) - bug-fix for
tbtSileTBtrans.Eindex
handling of integers, #829
This is a regression fix, integers will now be handled differently
than prior releases.
A warning is raised to inform users. - fixed warning raised when reading electronic structure without Ef, #826
- fixed precision writing of energies in GF files (siesta), #827
- fixed reading
HSetupOnly
HSX files from Siesta, #828 - fixed reading stresses and forces from
stdoutSileSiesta
Note that generally the forces/stresses in the Final section of the
output will not be returned. Only if there are no other forces/stresses
in the output file.
Changed
tbtSileTBtrans.Eindex
changed, see #829 for details.
v0.15.1
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
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
andread_hyperfine_coupling
totxtSileORCA
- #723: add test for reading Hamiltonian from wannier90 output
- #725: Additional energy units
- #726:
units
as parameter inread_*
- #727: Resolve Issue #716
- #729: Minor ORCA/VASP documentation improvements
- #734: Remove deprecated
bc
argument toGrid
- #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 calculatingnsc
with more options -
sisl._debug_info
for more complete debug information -
axes
argument added toderivative
to only calculate on a subset
of directions (can greatly improve performance for some systems) -
operator
argument added toderivative
to apply an operator
todHk
anddSk
matrices.
of directions (can greatly improve performance for some systems) -
added
apply_kwargs
to methods which uses aBrillouinZone
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
toGeometry
, #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, ahexagonal
Gold 2D structure -
added the
hexagonal
2D lattice, close-packed FCC(111) surface -
improved
atom
projections of states, #750 -
improved typing system
-
units
toread_*
for someSile
s, #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
andread_hyperfine_coupling
totxtSileORCA
, #722 -
enabled
AtomsArgument
andOrbitalsArgument
to acceptbool
for all or none -
enabled
winSileWannier90.read_hamiltonian
to read the_tb.dat
files -
atoms
argument toDensityMatrix.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
forDensityMatrix
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 totodense
) -
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
insisl.geom.nanoribbon
/sisl.geom.graphene_nanoribbon
as well assisl.geom.cgnr
) -
Creation of [n]-triangulenes (
sisl.geom.triangulene
) -
added
offset
argument inGeometry.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 tok=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 (unlessunique=True
)- lots of
Lattice
methods did not consistently copy over BC BrillouinZone.volume
fixed to actually return BZ volume
useLattice.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 toatol
- 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, #708AtomUnknown
now also has a default mass of 1e40- changed
read_force_constant
toread_hessian
, the old methods are retained with
deprecation warnings. pdosSileSiesta
plotting produced wrong spin components for NC/SOCtqdm
changed API in 2019,eta=True
in Notebooks should now workSparseCSR
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)
...
v0.14.3
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
andLattice.new
to function the same
asGeometry
, added Lattice.to["Cuboid"] - added
Atom.to
, currently onlyto.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 (notGrid
), see #626- Some siles exposed certain properties containing basic information
about the content, say number of atoms/orbitals etc.
These will be moved tosile.info.<attr>
instead to reduce
the number of methods exposed on each sile.
v0.14.2
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
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
insgeom
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 mixerStepMixer
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 acceptall=
argumentsstdoutSileVASP.read_energy
returns as default the next item (no longer the last)txtSileOrca
will not acceptall=
arguments, see #584stdoutSileOrca
will not acceptall=
arguments, see #584xyzSile
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 ofLattice
, 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 theGrid
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 nonetbtncSileTBtrans(only=)
arguments are changed to (what=) #541SelfEnergy.scattering_matrix
is changed toSelfEnergy.broadening_matrix
ince the scattering matrix is an S-matrix usage.
Also changedse2scat
tose2broadening
#529- allow
BrillouinZone
initialization with scalar weights for all k-points #537 Geometry.swapaxes
andSuperCell.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
, thedistutils
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
ofclose
, #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
andRealSpaceSI
, fixes #567 - ufunc reductions on
SparseGeometry
whereaxis
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
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 inberry_phase
andconductivity
- 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 ofatoms
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 tocell2length
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 onsisl
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
andE
argument order. This makes them compatible with
orbital_transmission
etc.
v0.12.2
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
androcksalt_slab
@tfrederiksen - added
Geometry.translate2uc
to shift everything into the unit-cell @tfrederiksen - added
Geometry.unrepeat
to reverserepeat
calls (and tosgeom
) - added
SparseGeometry.unrepeat
to reverserepeat
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 inGeometry.center
calls
Changed
- State*.outer corrected to the same interface as State*.inner
- all
sisl.geom
geometries are now callingoptimize_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
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
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 toState.sub
- copying Dispatchers for subclasses.
- dispatchers to
Shape
Spin.spinor
to get number of spinor componentssc
argument toxyzSile.read_geometry
for user defined cells- tiling a State object, #354 and #355
- replacing atoms in SparseOrbital geometries #139
- direction now accepts
abc
andxyz
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 orbitalsberry_phase
now works for non-orthogonal basis sets (uses Lowdin transformation)
This may require sufficiently small dk for accurateness.degenerate
argument forconductivity
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
forfxyz
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 toSile.file
which always will be apathlib.Path
instance berry_phase
now uses the gauge=R convention, the code became much simplerBrillouinZone.parametrize
function changed interface to allow more dimensionsEigenStateElectron.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 alignself
rather thanother
- 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