Package: iDEA-latest
iDEA (interacting Dynamic Electrons Approach)Exploring exact solutions and practical approximations in many-electron quantum mechanics.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 theUniversity of Yorkand 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 asCoursera 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.HomepageView on GitHubInstallationUserTo install thelatest version of the iDEA code:pip install iDEA-latestTo add iDEA to your poetry environment:poetry add iDEA-latestDeveloperIf 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.gitAnd then install locally:python setup.py installDocumentationFor full details of usage please see ourtutorial. The full API documentation is available atreadthedocs.FeaturesSome 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 arbitrarilty 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 electronsHartree theoryRestricted and unrestricted Hartree-FockThe Local Density Approximation (LDA)Hybrid functionalsImplementation 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.ExampleIn 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()TutorialWe provide atutorialwhere you can learn how to use the iDEA code in your research and teaching projects.Papers You Can Reproduce With iDEA"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 documentedhere.TeachingiDEA can be used to create teaching content, visualisations and expositions. For example, see the followingYouTube video created using iDEA.iDEA was used to create teaching content for theDensity Functional Theory MOOC on Coursera.DevelopersDr. Jack Wetherell, Dr. Matt Hodgson and Dr. Leopold Talirz.ContributorsWe 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 InvolvedTo 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 tojack.wetherell@gmail.com.We provide atemplateto get you started!DependenciesiDEA supportspython 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"