Skip to content

Releases: wangenau/eminus

v3.0.0

28 Oct 14:41
d53bf41
Compare
Choose a tag to compare
  • New features
    • eminus preprint release!
    • Full type hint support!
    • Rewritten minimizer
      • Massive speedup for more k-points
      • Fixed some convergence issues
    • Add non-iterative SCDM localization
      • Use them as the initial guess for Wannier localization
      • Use Wannier orbital COMs for FLO generations if no FODs are given
    • Add magnetization functions
    • Add POSCAR read and write functions
    • Add a simple HDF5 file extra
    • Allow setting of external functional parameters (internal and in pylibxc)
  • Coding style
    • Reformat the codebase using Ruff
    • Activate more linting rules
    • Add SPDX license identifiers
    • Modernize CI pipelines
    • Add CI release pipelines
    • Move tox.ini and setup.py contents to pyproject.toml
    • Merge all handle_k decorators into one
  • Miscellaneous
    • Fix hexagonal grid generation
    • Fix gradient convergence check, get_ip, and Efermi in extras/viewer
    • Allow plotting densities in viewer functions for all unit cell types
    • Add an option to plot both spin channels in band structure plots
    • Add DOS calculation and plot functions
    • Add an isovalue keyword to the density viewer
    • Reduce the default surfaces from 20 to 10 in the density viewer to improve performance
    • Add pass-through keyword arguments in the Cell creation
    • Add view and write class methods to Atoms, SCF, and KPoints objects
    • Set default values for uninitialized SCF attributes to None
    • Mark the log attribute as private in Atoms and SCF classes
    • Sync GTH files (this changes values for Na-q9)
    • Small tests improvements
    • Update Docker image to Python 3.12
    • Indicate Python 3.13 support
    • Use Python 3.13 as the CI base image
    • Add an eminus Discord server
    • Add citation information
  • Breaking
    • Cleanup main namespace by only including unified read and write functions
    • The rewritten minimizer will change the convergence behavior of some systems!

v2.7.1

09 Feb 14:44
df967f6
Compare
Choose a tag to compare
  • New features
    • Stabilized Fermi smearing!
  • Updated docs
    • Restyle many documentation pages
    • Add a citation page
    • Add an overview page with a workflow example
    • Add a smearing example
  • Miscellaneous
    • Small performance improvements
    • Temperature unit conversion functions
    • Tests for the smearing implementation
    • Update Ruff rules
    • Misc coding style updates

v2.7.0

19 Jan 17:53
fa5da65
Compare
Choose a tag to compare
  • New features
    • Add k-points!
      • Add k-point dependent calculations
      • Add a k-points object
      • Add a band structure, k-point, and Brillouin zone viewer
      • Add minimization functions for fixed Hamiltonians
    • Add a symmetry extra to symmetrize k-points
  • Updated docs
    • Add k-point examples
    • Increase coverage precision
  • Coding style
    • Activate several Ruff rules
    • Lint check notebooks
    • Rewrite operator handling
    • Add a lot of new tests
  • Miscellaneous
    • Add a contour line viewer
    • Plot lattice vectors in the view_atoms function
    • Add a NixOS CI test
    • Add a Nix lock file
    • Use Python 3.12 as the CI base image
    • Move Matplotlib to dev extras
    • Unpin the notebook version
    • Small performance improvements, e.g, in Atoms object creation
  • Experimental
    • Smearing functionalities
    • Density of states function

v2.6.1

04 Oct 11:27
650b5a1
Compare
Choose a tag to compare
  • New features
    • Add a Cell generation function
    • Add k-point generation functionalities
    • Add support to handle trajectory files
  • Updated docs
    • Add a FOD optimization and a reduced density gradient example
    • Add references to data
  • Miscellaneous
    • Breaking:
      • Rename X to pos in Atoms
      • Merge R into a in Atoms
    • Indicate Python 3.12 support
    • Support viewing multiple files
    • Support non-cubic cells in Atoms, io, and viewer functions
    • Support viewing multiple files
    • Fix Nix flake

v2.6.0

07 Aug 15:24
Compare
Choose a tag to compare
  • New features
    • Complete rewrite of the Atoms and SCF classes
      • Easily allow systems with different charge or multiplicity
      • Document all public properties
      • Use properties when parsing input arguments
      • Allow direct setting of attributes
      • Better input handling
      • Use an Occupations object to store electronic states information in Atoms
      • Use a GTH object to store GTH data in SCF
      • Add some properties to the objects, e.g., the volume element dV in Atoms
      • Indicate non-input arguments and non-results as private or read-only
      • Breaking:
        • Use unrestricted instead of Nspin
        • Use spin and charge instead of Nstate and f
        • Remove f and s as keyword arguments, can be set after initialization
        • Remove cgform as a keyword argument, use the run function to pass it to minimizers
        • Rename min keyword to opt
        • Merge symmetric with guess
    • Add DFT-D3 dispersion correction as an extra
  • Updated docs
    • Add a theory introduction page
    • Add documentation to module data/constants
    • Add a list of all packages and their respective licenses
    • Re-add documentation of operators to Atoms
    • Add a custom functional example
    • Improve the geometry optimization example
    • Add PNGs to the downloads section
    • Sort attributes groupwise
    • Fix a lot of typos
  • Coding style
    • Type check with mypy
    • Fix a lot of type warnings from mypy
    • Add type hints to scripts in docs and setup.py
    • Rename some arguments to not shadow builtins
  • Miscellaneous
    • Create the eminus-benchmarks repository
      • Move the SimpleDFT example to said repository
    • Small performance improvements, mostly for meta-GGAs
    • Add an error message when attempting to use operators of an unbuilt Atoms object
    • Add Matplotlib to the viewer setup to generate images in the examples
    • More tests, e.g, for different spin and charge states
    • Add a small demo function

v2.5.0

10 Jul 15:15
Compare
Choose a tag to compare
  • New features
    • Add meta-GGA functionals!
      • Use all meta-GGAs that don't need a Laplacian from Libxc using pylibxc or PySCF
    • Improved minimizer
      • Add new auto minimizer that functions like pccg but can fallback to sd steps
      • Add Dai-Yuan conjugate-gradient form
      • Fancier-looking output from the minimizer
      • Option to converge the gradient norm
      • Print <S^2> after an unrestricted calculation
      • Add eigenenergies to the debug output
    • Improved file viewer
      • Support PDB files
      • Allow usage outside of notebooks
  • Updated docs
    • Update the introduction page in the documentation
    • Upload the HTML coverage report
  • Coding style
    • Simplify H function
    • Simplify minimizer module
    • Reduce McCabe code complexity
    • Switch linter from flake8 to Ruff
    • Comply with different linting rules, e.g., use triple-quotes in docstrings
    • More tests and more coverage
  • Miscellaneous
    • Performance fix by using precomputed values correctly
    • Improve GGA performance
    • Do an unpaired calculation automatically if the system is unpaired
    • Option to use a symmetric initial guess, i.e., the same guess for both spin channels
    • Add trajectory keyword to XYZ and PDB writer to append geometries
    • Read the field data from CUBE files
    • New functions for the
      • Electron localization function (ELF)
      • Positive-definite kinetic energy density
      • Reduced density gradient
      • Expectation value of S^2 and the multiplicity calculated from it
    • Option to set a path to directories containing GTH pseudopotential files
    • The SCF class now contains the xc_type and is_converged variables
    • Support functional parsing using pylibxc
    • Allow using custom densities when using the atoms viewer
    • Remove Gaussian initial guess
    • Remove exc_only keyword from functionals since it was basically unused
    • Fix GTH files not being installed when using the PyPI version
    • Fix mapping of field entries with the respective real-space coordinate
    • Fix GGA SIC evaluation

v2.4.0

23 May 10:20
Compare
Choose a tag to compare
  • New features
    • Add GGA functionals!
      • Add internal PBE, PBEsol, and Chachiyo functionals
      • Option to use all GGAs from Libxc using pylibxc or PySCF
  • Miscellaneous
    • Add Thomas-Fermi and von Weizsäcker kinetic energy density functions
    • Rewrite functionals for better readability
    • Fix Torch operators in some edge cases
    • Merge configuration files in tox.ini
    • Update minimum versions of dependencies

v2.3.0

02 May 11:58
Compare
Choose a tag to compare
  • New features
    • Add Torch powered FFT operators as an extra
      • Up to 20% faster calculations
    • Add a consolidated configuration class
      • Easier configuration and more performance infos
    • Add a complete test suite
      • Add CI/CD coverage reports
    • Nix developer shell support
  • Miscellaneous
    • Rewritten FODs guess function
    • Simplify the FOD interface in io and viewer
    • Fix a plethora of small bugs
    • Update Docker image to Python 3.11

v2.2.2

03 Mar 15:31
Compare
Choose a tag to compare
  • New features
    • Improve performance, i.e, in operators, dotprod, and density calculations
    • Large and/or spin-polarized systems are much faster!
  • Coding style
    • Make Energies a dataclass
  • Miscellaneous
    • Drop Python 3.6 support
    • Raise minimum version SciPy from 1.4 to 1.6
    • Add repository statistics to the PyPI sidebar

v2.2.1

22 Feb 09:34
Compare
Choose a tag to compare
  • Hotfix for the broken PyPI installation
  • Use MANIFEST.in over package_data
  • Skip tests if pylibxc is not installed