Skip to main content

A simple density functional theory code.

Project description

simpledft logo

SimpleDFT

pypi language license

SimpleDFT is a simple plane wave density functional theory (DFT) code. It is a Python implementation of the DFT++ pragmas proposed by Thomas Arias et al. Also, it serves as the minimalistic prototype for the eminus code, which was introduced in the master thesis of Wanja Timm Schulze to explain theory and software development compactly. There is also a version written in Julia, called SimpleDFT.jl.

Note: From version 2.0 on, the implementation will slightly deviate from the master thesis to be in line with eminus.

SimpleDFT Description
Language Python 3
License Apache 2.0
Dependencies Only NumPy
Basis set Plane waves (PW)
DFT Restricted Kohn-Sham (RKS)

Installation

The package and all necessary dependencies can be installed using pip

pip install simpledft

Examples

Example calculations, i.e., the H atom, He atom, and H2 molecule can be executed with

python examples.py

Simplifications

This code is about implementing plane wave DFT as simple as possible, while still being general. To classify the shortcomings from a fully-fletched DFT code, the most important simplifications are listed below

  • Restricted Kohn-Sham DFT only, no open-shell systems
  • LDA only, no functionals using gradients
  • All-electron Coulomb potential, no pseudopotentials to only treat valence electrons
  • Gamma-point only, no band paths
  • Steepest descent only, no sophisticated minimizations
  • Random starting guess only, no calculated guess of the density

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

simpledft-2.5.tar.gz (12.6 kB view hashes)

Uploaded Source

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