Announcement: talks at DPG Regensburg 2025

At the upcoming DPG Spring Meeting (Frühjahrstagung) in Regensburg, we will present several exciting talks about kdotpy and its results:

Release v1.1.1

Bugfix release

Bug fixes

  • Provide fallback for kdotpy help in case the less command is not available (primarily a Windows issue)
  • Fix incorrect quantity being shown in dsigmah-de plot (for kdotpy ll with hall)
  • Show more instructive error messages when estimation of CNP fails, for example if the split argument is omitted

Release v1.1.0

Feature release

Bug fixes

  • Make kdotpy compatible with Numpy 2
  • Fix pending deprecations for future Scipy and Python versions

Implementation changes

  • Replace hard-coded strain ratio C12/C11 by value from material parameters
  • Simplify the implementation for iterators in kdotpy batch
  • Make sign of carrier/charge density more consistent internally

New features

  • Add elasticity parameters as material parameters
  • Add grouped iterators in kdotpy batch, which are iterated through simultaneously
  • Enable input of charge density per layer, for simulations of modulation doping

We welcome Julian Kuther as a new contributor. Thanks to Julian for his work on the elasticity parameters!

[Read More]

Publication in SciPost Physics Codebases

Our article about kdotpy release 1.0.0 has been offically published by SciPost Physics Codebases! 🎉

Please view the article at https://scipost.org/SciPostPhysCodeb.47.
[DOI: 10.21468/SciPostPhysCodeb.47]

The codebase published with the article can be found at the journal repository. Note that this journal repository will be updated less frequently than our live Gitlab repository.

You are encouraged to credit us by citing the article and/or the codebase, indicating the relevant release/version number.

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”, SciPost Phys. Codebases 47 (2025).

[Read More]

Release v1.0.2

Bugfix release

Bug fixes

  • Fix an incompatibility with matplotlib version 3.10.0, leading to an exception for some DOS plots

Miscellaneous

  • Update citation information following publication of our article and codebase in SciPost Physics Codebases

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