Metadata-Version: 2.1
Name: eminus
Version: 2.5.0
Summary: A plane wave density functional theory code.
Home-page: https://github.com/wangenau/eminus
Author: Wanja Timm Schulze
Author-email: wangenau@protonmail.com
License: APACHE2.0
Project-URL: Bug Tracker, https://gitlab.com/wangenau/eminus/-/issues
Project-URL: Changelog, https://wangenau.gitlab.io/eminus/changelog.html
Project-URL: Documentation, https://wangenau.gitlab.io/eminus
Project-URL: Source code, https://gitlab.com/wangenau/eminus
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Education
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: MacOS
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: POSIX
Classifier: Operating System :: Unix
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Topic :: Education
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Scientific/Engineering :: Chemistry
Classifier: Topic :: Scientific/Engineering :: Physics
Classifier: Topic :: Software Development
Requires-Python: >=3.7
Description-Content-Type: text/markdown
Provides-Extra: libxc
Provides-Extra: torch
Provides-Extra: viewer
Provides-Extra: fods
Provides-Extra: all
Provides-Extra: dev
License-File: LICENSE

![eminus logo](https://gitlab.com/wangenau/eminus/-/raw/main/docs/_static/logo/eminus_logo.png)

# eminus
[![pypi](https://img.shields.io/pypi/v/eminus?color=1a962b)](https://pypi.org/project/eminus)
[![coverage](https://gitlab.com/wangenau/eminus/badges/main/coverage.svg)](https://wangenau.gitlab.io/eminus/htmlcov)
[![python](https://img.shields.io/pypi/pyversions/eminus?color=green)](https://wangenau.gitlab.io/eminus/installation.html)
[![license](https://img.shields.io/badge/license-Apache2.0-yellowgreen)](https://wangenau.gitlab.io/eminus/license.html)
[![doi](https://zenodo.org/badge/431079841.svg)](https://zenodo.org/badge/latestdoi/431079841)

The eminus package is a plane wave density functional theory (DFT) code.
It is built upon the [DFT++](https://arxiv.org/abs/cond-mat/9909130) 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](https://wangenau.gitlab.io/eminus).

## Installation

The package and all necessary dependencies can be installed using pip

```terminal
pip install eminus
```

More information about the installation process can be found [here](https://wangenau.gitlab.io/eminus/installation.html).

## License

This project is licensed under the Apache 2.0 License - see the [LICENSE](https://gitlab.com/wangenau/eminus/-/blob/main/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
