Release v1.0.1

Bugfix release

Bug fixes

  • Fix incorrect prefix handling for vector grid and vector transformation
  • No longer create transformable Hamiltonian if stripangle is used
  • Fix false negatives for thickness commensurability test
  • Let kdotpy test use python -m kdotpy, so that it can be run if kdotpy is not in PATH
  • Fix incorrect display of unparsed arguments
  • Improve error messages for invalid command line arguments (e.g., vector grid, material, and layer stack arguments)
  • Fix infinite loop in contour plot if minimum and maximum value are equal
  • Fix errors in observable strings
  • Fix exception if there are no extrema
  • No longer ignore table_extrema_precision configuration value

Implementation changes

  • Slight difference in handling of vector grid arguments (k and/or b), in order to improve error messages for invalid input
  • Disallow underscore as separator in matparam argument in order to prevent parsing errors

Acknowledgement: We thank the reviewers of our SciPost submission for bringing some of these issues to our attention. See the SciPost submissions page for more information.

[Read More]

Release v1.0.0

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

Preprint arXiv:2407.12651

The preprint that goes together with release 1.0.0 is available now!

W. Beugeling, F. Bayer, C. Berger, J. Böttcher, L. Bovkun, C. Fuchs, M. Hofer, S. Shamim, M. Siebert, L.-X. Wang, E. M. Hankiewicz, T. Kießling, H. Buhmann, and L. W. Molenkamp, kdotpy: k·p theory on a lattice for simulating semiconductor band structures, arXiv:2407.12651 (2024)

Release v1.0.0rc2 (release candidate)

The second release candidate

(Changes since prerelease v1.0.0rc1)

Bug fixes

  • Fix error in adiabatic band alignment if zero energy is undefined
  • Fix units in transitions output

Implementation changes

  • Streamline some code differences between source code and article
  • Update project metadata

New features

  • Infrastructure for configuration key deprecation

Release v1.0.0rc1 (release candidate)

The first release candidate (not released to the public)

(Changes since prerelease v1.0.0beta2)

Bug fixes

  • Fix inconsistent composition of columns in transitions table

Implementation changes

  • Update authors, acknowledgements, citation instructions
  • Delete tests for ‘symbolic objects’
  • Fix some out-of-date comments, docstrings, and helpfile entries

Release v1.0.0b2 (beta)

The second beta version (not released to the public)

(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

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