Our first major release 🎉
(Changes since v0.95)
Bug fixes
- Optimize eigenvalue stitching
- Fix incorrect union and intersection operations on (energy) intervals
- Workaround for random matplotlib bug involving contour labels
- Fix problem with inadvertently changed property obsids in DiagDataPoint
- Use correct length scaling when calculating derivatives of band structure parameters exactly (dz = 0)
- Fix problems with colours in legends
- Fix problem with ETransform with plotstyle normal
- Catch rare case for kdotpy 1d where list of wave function locations is empty
- Fix bug in 19-point extremum solver (3D)
- Fix error in finding CNP when band characters are unavailable
- Raise warning about using CuPy solver with kdotpy 2d
- Fix empty unit string in legend for dual observable
- Disable BHZ plot if figure is absent
- Fix problem with extrema for spherical coordinates
- Fix handling of radians as angular units for extrema
- Do not reject valid input in imported colormaps
- Fix inconsistent composition of columns in transitions table
- Fix error in adiabatic band alignment if zero energy is undefined
- Fix units in transitions output
Implementation changes
- Packaging: turn kdotpy into a package that can be installed with pip
- Update version requirements for Python, NumPy, SciPy, and Matplotlib; update code accordingly
- Replace shell scripts by Python implementations (increase OS compatibility)
- Clean up unused code; delete unused variables and function arguments
- Restructure program, simplify internal dependencies (imports)
- Improved plot customization: Use Matplotlib style files instead of matplotlibrc; use rcparams more consistently
- Improved colormap handling
- Streamline csv output: Separate construction and writing of data
- Improved, but stricter checking on CNP
- Optimize band alignment
- Remove restrictions on broadening; enable B-dependent broadening for self-consistent Hartree in LL mode
- Change some default configuration settings
- Remove deprecated command-line arguments
New features
- Material parameter files: Material parameters are no longer hardcoded, but provided by the user as separate files in the configuration directory (more details in Wiki)
- Selfconsistent Hartree with full diagonalization (dispersion and LL mode)
- Support for JAX eigh diagsolver
- Band alignment succeeds without CNP being defined
- Doxygen generated developer documentation
- Infrastructure for configuration key deprecation