Skip to main content

interacting Dynamic Electrons Approach (iDEA)

Project description

iDEA (interacting Dynamic Electrons Approach)

Exploring exact solutions and practical approximations in many-electron quantum mechanics.

pip tag Documentation Status Issues Pull Requests

iDEA (the interacting dynamic electrons approach) is a comprehensive software library that enables users to explore and understand the intricacies of many-body quantum mechanics. Developed at the University of York and the École polytechnique, iDEA is written in Python and offers both exact and approximate approaches to quantum mechanics. With its focus on reproducibility, interactivity, and simplicity, iDEA has been used in a variety of research projects to gain insights into fundamental theories, such as density functional theory and many-body perturbation theory, as well as in educational contexts, such as Coursera online courses.

One of the main goals of iDEA is to help users understand when popular approximations used in practical quantum theory calculations may be unreliable and why. By using iDEA to study a variety of systems, researchers can identify the circumstances in which these approximations are least secure and develop more advanced methods for use in materials science.

Homepage

View on GitHub

demo

Installation

User

To install the latest version of the iDEA code:

pip install iDEA-latest

To add iDEA to your poetry environment:

poetry add iDEA-latest

Developer

If you would like to develop iDEA, first fork this git repository, and then clone from there.

Add the upstream repository: git remote add upstream https://github.com/iDEA-org/iDEA.git

And then install locally: python setup.py install

Testing

To run unit tests: pytest -v

Documentation

For full details of usage please see our tutorial. The full API documentation is available at readthedocs.

Features

Some of iDEA's features:

  • Exact solution of the many-electron problem by solving the static and time-dependent Schrödinger equation, including exact exchange and correlation.
  • Exact solutions which approach the degree of exchange and correlation in realistic systems.
  • Free choice of external potential that may be time-dependent, on an arbitrarily dense spatial grid, for any number of electron with any spin configuration.
  • Implementation of various approximate methods (established and novel) for comparison, including:
    • Non-interacting electrons
    • Hartree theory
    • Restricted and unrestricted Hartree-Fock
    • The Local Density Approximation (LDA)
    • Hybrid functionals
  • Implementation of all common observables.
  • Reverse-engineering to solve potential inversion, from exact Kohn-Sham DFT and beyond.
  • Fully parallelised using OpenBLAS.
  • Fully parallelised for all cuda supporting GPUS.

Example

In order to solve the Schrödinger equation for the two electron atom for the ground-state charge density and total energy:

import iDEA
system = iDEA.system.systems.atom
ground_state = iDEA.methods.interacting.solve(system, k=0)
n = iDEA.observables.density(system, state=ground_state)
E = ground_state.energy

import matplotlib.pyplot as plt
print(E)
plt.plot(system.x, n, 'k-')
plt.show()

Tutorial

We provide a tutorial where you can learn how to use the iDEA code in your research and teaching projects.

Papers You Can Reproduce With iDEA

  1. "Advantageous nearsightedness of many-body perturbation theory contrasted with Kohn-Sham density functional theory", J. Wetherell, M. J. P. Hodgson, L. Talirz, and R. W. Godby, Physical Review B 99 045129 (2019). paper, reprint, preprint, code.

More coming soon...

The development and applications of the iDEA code from 2010 to 2021 is documented here.

Teaching

iDEA can be used to create teaching content, visualisations and expositions. For example, see the following YouTube video created using iDEA.

iDEA was used to create teaching content for the Density Functional Theory MOOC on Coursera.

Developers

Dr. Jack Wetherell, Dr. Matt Hodgson and Dr. Leopold Talirz.

Contributors

We thank all of the developers, PhD students, master's students, summer project interns and researchers for thier key contributions to iDEA:

Sean Adamson, Jacob Chapman, Thomas Durrant, Razak Elmaslmane, Mike Entwistle, Rex Godby, Matt Hodgson, Piers Lillystone, Aaron Long, Robbie Oliver, James Ramsden, Ewan Richardson, Matthew Smith, Leopold Talirz and Jack Wetherell.

Getting Involved

To get involved:

  • Raising issues and pull requests here is greatly appreciated!
  • We can add any papers that can be fully reproduced by iDEA to our dedicated page by sending your open access paper to jack.wetherell@gmail.com.
  • We provide a template to get you started!

Dependencies

iDEA supports python 3.8+ along with the following dependences:

numpy >= "1.22.3"
scipy >= "1.8.0"
matplotlib >= "3.5.1"
jupyterlab >= "3.3.2"
tqdm >= "4.64.0"
pytest >= "8.3.0"

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

idea_latest-1.0.3.tar.gz (15.5 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

idea_latest-1.0.3-py3-none-any.whl (45.6 kB view details)

Uploaded Python 3

File details

Details for the file idea_latest-1.0.3.tar.gz.

File metadata

  • Download URL: idea_latest-1.0.3.tar.gz
  • Upload date:
  • Size: 15.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.8.6

File hashes

Hashes for idea_latest-1.0.3.tar.gz
Algorithm Hash digest
SHA256 1a1ce694fae69492c22feed974a34223ecafdb3fe978396d5a30f9120b1a4dd4
MD5 089f6b9252cac07da6c2d266934ac8a9
BLAKE2b-256 3cc5951068d838b074aeccab474fecb75fc8879a721e78d3d26495c77240275a

See more details on using hashes here.

File details

Details for the file idea_latest-1.0.3-py3-none-any.whl.

File metadata

  • Download URL: idea_latest-1.0.3-py3-none-any.whl
  • Upload date:
  • Size: 45.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.8.6

File hashes

Hashes for idea_latest-1.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 5acb469a8a77ec4d9034a01ab87cc851521ca9476ec1dcf0e68c02808e1fb3fb
MD5 316c28cd9a01aa9af609a91e38baf092
BLAKE2b-256 42c3918110980c7130a4fa4eab7d0388d05c39bc05a6760f72a7c7b2bda8920c

See more details on using hashes here.

Supported by

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