Metadata-Version: 2.1
Name: eminus
Version: 3.0.0
Summary: Pythonic electronic structure theory.
Author-email: Wanja Timm Schulze <wangenau@protonmail.com>
Project-URL: Documentation, https://wangenau.gitlab.io/eminus
Project-URL: Repository, https://gitlab.com/wangenau/eminus
Project-URL: Issues, https://gitlab.com/wangenau/eminus/-/issues
Project-URL: Changelog, https://wangenau.gitlab.io/eminus/changelog.html
Keywords: density-functional-theory,electronic-structure,education,python
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: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Education
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Scientific/Engineering :: Chemistry
Classifier: Topic :: Scientific/Engineering :: Physics
Classifier: Topic :: Software Development
Classifier: Typing :: Typed
Requires-Python: >=3.7
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: numpy>=1.17
Requires-Dist: scipy>=1.6
Provides-Extra: dispersion
Requires-Dist: dftd3>=0.6; extra == "dispersion"
Provides-Extra: hdf5
Requires-Dist: h5py>=2.8; extra == "hdf5"
Provides-Extra: libxc
Requires-Dist: pyscf>=2.1; extra == "libxc"
Provides-Extra: torch
Requires-Dist: torch>=1.8; extra == "torch"
Provides-Extra: viewer
Requires-Dist: nglview>=2.6.5; extra == "viewer"
Requires-Dist: plotly>=4.5; extra == "viewer"
Provides-Extra: fods
Requires-Dist: eminus[libxc]; extra == "fods"
Provides-Extra: symmetry
Requires-Dist: eminus[libxc]; extra == "symmetry"
Provides-Extra: all
Requires-Dist: eminus[dispersion]; extra == "all"
Requires-Dist: eminus[hdf5]; extra == "all"
Requires-Dist: eminus[libxc]; extra == "all"
Requires-Dist: eminus[torch]; extra == "all"
Requires-Dist: eminus[viewer]; extra == "all"
Provides-Extra: dev
Requires-Dist: coverage>=4.4; extra == "dev"
Requires-Dist: furo>=2022.02.14.1; extra == "dev"
Requires-Dist: matplotlib>=1.5; extra == "dev"
Requires-Dist: mypy>=1.7; extra == "dev"
Requires-Dist: notebook; extra == "dev"
Requires-Dist: pytest>=6; extra == "dev"
Requires-Dist: ruff>=0.2; extra == "dev"
Requires-Dist: sphinx>=4; extra == "dev"
Requires-Dist: sphinx-design>=0.2; extra == "dev"
Requires-Dist: sphinxcontrib-bibtex>=2; extra == "dev"

<!--
SPDX-FileCopyrightText: 2021 The eminus developers
SPDX-License-Identifier: Apache-2.0
-->
![eminus logo](https://gitlab.com/wangenau/eminus/-/raw/main/docs/_static/logo/eminus_logo.png)

# eminus
[![Version](https://img.shields.io/pypi/v/eminus?color=1a962b&logo=python&logoColor=a0dba2&label=Version)](https://pypi.org/project/eminus)
[![Python](https://img.shields.io/pypi/pyversions/eminus?color=1a962b&logo=python&logoColor=a0dba2&label=Python)](https://wangenau.gitlab.io/eminus/installation.html)
[![License](https://img.shields.io/badge/license-Apache2.0-1a962b?logo=python&logoColor=a0dba2&label=License)](https://wangenau.gitlab.io/eminus/license.html)
[![Coverage](https://img.shields.io/gitlab/pipeline-coverage/wangenau%2Feminus?branch=main&color=1a962b&logo=gitlab&logoColor=a0dba2&label=Coverage)](https://wangenau.gitlab.io/eminus/htmlcov)
[![Chat](https://img.shields.io/badge/Chat-Discord-1a962b?logo=discord&logoColor=a0dba2)](https://discord.gg/k2XwdMtVec)

eminus is a pythonic electronic structure theory code.
It implements plane wave density functional theory (DFT) with self-interaction correction (SIC) functionalities.
The goal is to create a simple code that is easy to read and easy to extend while using minimal dependencies.
It is built upon the [DFT++](https://arxiv.org/abs/cond-mat/9909130) pragmas proposed by Tomas Arias et al. that aim to let programming languages and theory coincide.
This can be shown by, e.g., solving the Poisson equation. In the operator notation of DFT++ the equation reads

$$
\phi(\boldsymbol r) = -4\pi\mathcal L^{-1}\mathcal O\mathcal J n(\boldsymbol r).
$$

The corresponding Python code (implying that the operators have been implemented properly) reads

```python
def get_phi(atoms, n):
    return -4 * np.pi * atoms.Linv(atoms.O(atoms.J(n)))
```

## Installation

The [package](https://pypi.org/project/eminus) and all necessary dependencies can be installed with

```terminal
pip install eminus
```

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

## Documentation

To learn more about the features, usage, or implementation of eminus, take a look inside the [documentation](https://wangenau.gitlab.io/eminus).

## Citation

A supplementary paper is available on [arXiv](https://arxiv.org/abs/2410.19438). The following BibTeX key can be used

```terminal
@Misc{Schulze2021,
  author    = {Schulze, Wanja T. and Schwalbe, Sebastian and Trepte, Kai and Gr{\"a}fe, Stefanie},
  title     = {eminus -- Pythonic electronic structure theory},
  year      = {2024},
  doi       = {10.48550/arXiv.2410.19438},
  publisher = {arXiv},
}
```

To cite a specific version one can select and cite it with [Zenodo](https://doi.org/10.5281/zenodo.5720635).

## License

This project is licensed under the Apache 2.0 License. See the [license page](https://wangenau.gitlab.io/eminus/license.html) for more details.
