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.6.1 - Oct 04, 2023

  • 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 - Aug 07, 2023

  • 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

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.6.1.tar.gz (130.4 kB view hashes)

Uploaded Source

Built Distribution

eminus-2.6.1-py3-none-any.whl (198.0 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