Release v1.2.0

Feature release

Bug fixes

  • Show more instructive error message if a material argument is not followed by a valid material id
  • Recalculate or invalidate derivatives if band alignment has changed in kdotpy merge
  • Fix exception with checking script directories on different drives in Windows
  • Fix exception in kdotpy batch when no variable substitutions are given

Implementation changes

  • Improve potential file imports
  • Allow y coordinates of spatial lattice to be chosen at integer multiples or at half integer multiples of the resolution
  • Save model options into XML output
  • Optimize plot handling for 2D band plots

New features

  • Apply potentials of the form V(y, z) in kdotpy 1d; accept csv files with grid-type or mesh-type data, and use interpolation if needed
  • Optical transitions for bulk Landau level calculations (kdotpy bulk-ll)
  • Add filter for material files
  • Add helper functions for serialization (for future use)
  • Local density of states in multiple dimensions (kdotpy 2d)
  • Density as function of y and z (kdotpy 1d)
  • Binary output files (Numpy npz format) for local density of states in two dimensions and for density as function of y, z, and energy
  • Band alignment in kdotpy 1d (manual only)
  • Cache eigenstates with binary files in kdotpy 1d

Miscellaneous

  • Add license metadata in pyproject.toml following PEP 639

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
  • Fix inconsistency between pdf and csv output of wave functions for LL calculations in full LL mode

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