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]

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