Skip to main content

A plane wave density functional theory code.

Project description

eminus logo

eminus

pypi coverage python license doi

The eminus package is a plane wave density functional theory (DFT) code. It is built upon the DFT++ pragmas, that aim to let programming languages and theory coincide. The goal is to create a simple code that is easy to read and easy to extend while using minimal dependencies.

Documentation

To learn more about the implementation and usage of eminus, take a look inside the documentation.

Installation

The package and all necessary dependencies can be installed using pip

pip install eminus

More information about the installation process can be found here.

License

This project is licensed under the Apache 2.0 License - see the LICENSE file for details.

Changelog

v2.5.0 - Jul 10, 2023

  • 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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

eminus-2.5.0.tar.gz (120.6 kB view hashes)

Uploaded Source

Built Distribution

eminus-2.5.0-py3-none-any.whl (186.5 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page