{"id":16908,"url":"https://github.com/twoXes/awesome-quantum-chemistry","name":"awesome-quantum-chemistry","description":"Quantum Chemistry is awesome. Throw your textbook in the garbage, light the garbage can on fire, and blend the ashes into your cold brew almond milk latte and read this.","projects_count":58,"last_synced_at":"2026-10-11T03:00:25.949Z","repository":{"id":59375488,"uuid":"363407974","full_name":"twoXes/awesome-quantum-chemistry","owner":"twoXes","description":"Quantum Chemistry is awesome. Throw your textbook in the garbage, light the garbage can on fire, and blend the ashes into your cold brew almond milk latte and read this.","archived":false,"fork":false,"pushed_at":"2022-12-16T14:00:01.000Z","size":9334,"stargazers_count":22,"open_issues_count":1,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-09-21T11:06:02.710Z","etag":null,"topics":["ab-initio-solution","electron-schroedinger-equation","neural-network","quantum"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/twoXes.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-05-01T12:45:34.000Z","updated_at":"2025-12-27T12:21:05.000Z","dependencies_parsed_at":"2023-01-29T14:15:39.703Z","dependency_job_id":null,"html_url":"https://github.com/twoXes/awesome-quantum-chemistry","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/twoXes/awesome-quantum-chemistry","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/twoXes%2Fawesome-quantum-chemistry","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/twoXes%2Fawesome-quantum-chemistry/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/twoXes%2Fawesome-quantum-chemistry/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/twoXes%2Fawesome-quantum-chemistry/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/twoXes","download_url":"https://codeload.github.com/twoXes/awesome-quantum-chemistry/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/twoXes%2Fawesome-quantum-chemistry/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":343680568,"owners_count":38169145,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-10-03T21:59:58.778Z","status":"online","status_checked_at":"2026-10-10T02:00:07.419Z","response_time":65,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"created_at":"2024-01-13T12:54:24.356Z","updated_at":"2026-10-11T03:00:25.950Z","primary_language":null,"list_of_lists":false,"displayable":true,"categories":["Tools","Machine Learning the Schrodinger Equation","[Solving the Quantum Many-Body Problem with Artificial Neural Networks (2016)](https://arxiv.org/pdf/1606.02318.pdf)","[Setup.py](https://github.com/deepmind/ferminet/blob/jax/setup.py)","[Base Config.py](https://github.com/deepmind/ferminet/blob/jax/ferminet/base_config.py)","References"],"sub_categories":["ml_collections ConfigDict"],"readme":"# Awesome Quantum Chemistry\n*A curated list of awesome quantum chemistry frameworks, libraries, software and resources.*\n\n\n![chemistry](beaker.gif)\n\n\nTextbooks on Cheminformatics \u0026 Quantum Chemistry strangle the subject to sleep 😴 and command a wild price 🤑 for the naps they induce.\n\nWant a better way to learn than some random repo on github? \n\nSpend 4-12 years of your life and hundreds of thousands of dollars chasing a paper with a stamp on it 🥇.\n\nOr feed yourself 🍼.\n\nInformation should be cheap, fast enjoyable, silly, shared, disproven, contested, and most of all free.\n\nKnowledge hodlers, and innovation stifflers are boring and old. This is for the young chemists of mind and spirit 🚼 that are looking for cheap ways to mine gold. \n\n## Tools \n\n#### [DeepQMC/PauliNet](https://deepqmc.github.io/index.html) \n\n*Deep-learning quantum Monte Carlo for electrons in real space*\n\n  * [ :bookmark_tabs: Publication](https://arxiv.org/pdf/1909.08423.pdf): (2020) Deep-neural-network solution of the electronic Schrödinger equation\n  * [:floppy_disk: Github](https://github.com/deepqmc/deepqmc)\n\n#### [FermiNet](https://deepmind.com/blog/article/FermiNet)\n\n*Implementation of the Fermionic Neural Network for ab-initio electronic structure calculations*\n\n  * [:bookmark_tabs: Publication](https://arxiv.org/abs/1909.02487): (2020) Ab-Initio Solution of the Many-Electron Schrödinger Equation with Deep Neural Networks\n\n  * [:floppy_disk: GitHub Code](https://github.com/deepmind/ferminet)\n\n#### [Hande](http://www.hande.org.uk/ent)\n\n*Highly parallel code for stochastic quantum chemistry. Can be used as standalone program or library from an existing quantum chemistry code.*\n\n  * [:bookmark_tabs:  Publication](https://pubs.acs.org/doi/10.1021/acs.jctc.8b01217)\n  * [:floppy_disk: : GitHub](https://github.com/hande-qmc/hande)\n\n#### [PySCF](http://pyscf.org/) \n\n*Simple, lightweight, and efficient python platform for quantum chemistry calculations and methodology development.*\n\n  * [:bookmark_tabs: Publication](https://authors.library.caltech.edu/74078/1/1701.08223.pdf)\n  * [:bookmark_tabs: Documentation](http://pyscf.org/pyscf/overview.html)\n  * [:floppy_disk: Github](https://github.com/pyscf/pyscf)\n  * [:floppy_disk: mpi4pyscf](https://github.com/pyscf/mpi4pyscf) - Message Passing Interface parallelism\n\n#### [PSi4](https://psicode.org/) \n\n*Suite of ab initio quantum chemistry programs designed for efficient, high-accuracy simulations of molecular properties*\n\n  * [:bookmark_tabs: Documentation](https://psicode.org/psi4manual/master/index.html)\n  * [:floppy_disk: Github](https://github.com/psi4/psi4/)\n\n#### [QMCTorch](https://qmctorch.readthedocs.io/en/latest/) \n\n*Pytorch Implementation of Real Space Quantum Monte Carlo Simulations of Molecular Systems*\n  * [:floppy_disk: Github](https://github.com/NLESC-JCER/QMCTorch)\n\n#### [NWChem](https://www.nwchem-sw.org/)\n\n## Machine Learning the Schrodinger Equation\n\n\u003cimg src=\"qsim.png\" width=\"800\" height=\"500\" /\u003e \n\n[source](https://youtu.be/_bdvpmleAgw)\n\n## [Solving the Quantum Many-Body Problem with Artificial Neural Networks (2016)](https://arxiv.org/pdf/1606.02318.pdf)\n\n* 💻 [code version from the authors](https://gitlab.com/nqs)\n\n* 💻 [version of the paper in code](https://github.com/zeldredge/py-nqs)\n\n* 💻 [version of the paper in Jupyter Notebook](https://github.com/bartolsthoorn/NQS-numpy/blob/master/NQS.ipynb)\n\n\u003e In principle, an exponential amount of information is needed to fully encode a generic [many-body quantum state](https://youtu.be/uTCeQHzQMdc).\n\n\u003e However, Nature often proves herself benevolent, and a [wave function](https://phys.libretexts.org/Bookshelves/University_Physics/Book%3A_University_Physics_(OpenStax)/Book%3A_University_Physics_III_-_Optics_and_Modern_Physics_(OpenStax)/07%3A_Quantum_Mechanics/7.02%3A_Wavefunctions) representing a physical many-body system can\nbe typically characterized by an amount of information much smaller than the maximum capacity of the corresponding [Hilbert space](https://youtu.be/g-eNeXlZKAQ). A limited amount of [quantum entanglement](https://www.quantamagazine.org/entanglement-made-simple-20160428/), as well as the typicality of a small number of physical states, are then the blocks on which modern approaches build upon to solve the many-body [Schrödinger’s equation](https://plus.maths.org/content/schrodinger-1) with a limited amount of classical resources.\n\n\u003cimg src=\"quantum_ann.png\" width=\"60%\" height=\"50%\" /\u003e\n\n# FermiNet\n\nFermiNet is the implementation of the (2020) paper [\"Ab-Initio Solution of the Many-Electron Schroedinger Equation with Deep Neural Networks\"](https://arxiv.org/pdf/1909.02487.pdf)\n\nIt is a neural network for learning the ground state [wavefunctions](https://phys.libretexts.org/Bookshelves/University_Physics/Book%3A_University_Physics_(OpenStax)/Book%3A_University_Physics_III_-_Optics_and_Modern_Physics_(OpenStax)/07%3A_Quantum_Mechanics/7.02%3A_Wavefunctions) of atoms and molecules using a [variational Monte Carlo](https://pubs.acs.org/doi/10.1021/acs.jctc.0c00147) approach.\n\n\u003cimg src=\"wave.gif\" width=\"600\" height=\"400\" /\u003e \n\n## [Setup.py](https://github.com/deepmind/ferminet/blob/jax/setup.py)\nFermiNet's setup file has some key dependencies that give us a peek into what is going on: \n* [Kfac](https://github.com/deepmind/deepmind-research/tree/master/kfac_ferminet_alpha) specific to fermiNet which is different than [TensorFlow Kfac](https://github.com/tensorflow/kfac) -- [Kfac Paper](https://arxiv.org/pdf/1503.05671.pdf) :blue_book: \n* [Jax](https://github.com/google/jax)\n* [ML Collections](https://github.com/google/ml_collections)\n* [Optax](https://github.com/deepmind/optax)\n* [PyScf](https://github.com/pyscf/pyscf/)\n\n\n## [Base Config.py](https://github.com/deepmind/ferminet/blob/jax/ferminet/base_config.py)\n\nThe base_config.py file lets the user set the system and hyperparameters.\n\n#### enum\n\nThe code begins: \n```python\nimport enum\nimport ml_collections\nfrom ml_collections import config_dict\n```\n\nSimmilar to [enums in to C++ 11](https://en.cppreference.com/w/cpp/language/enum):\n```c++\n// color may be red (value 0), yellow (value 1), green (value 20), or blue (value 21)\nenum color\n{\n    red,\n    yellow,\n    green = 20,\n    blue\n};\n```\n\n[Python enums](https://docs.python.org/3/library/enum.html) introduced in  \u003e= python 3.4 are a set of symbolic names (members) bound to unique, constant values:\n\n```python\nclass NBA_ORG_RANKING(Enum):\n  CELTICS = 7\n  JAZZ = 4\n  KNICKS = 31\n  NETS = 1\n```\n\nFermiNet instantiates classes using enum. The code continues:\n\n```python\nclass SystemType(enum.IntEnum):\n  MOLECULE = 0\n```\n[IntEnum](https://docs.python.org/3/library/enum.html#enum.IntEnum) creates enumerated constants that are also subclasses of the [int](https://docs.python.org/3/library/functions.html#int) class.\n\n\"Members of an IntEnum can be compared to integers; by extension, integer enumerations of different types can also be compared to each other...However, they can’t be compared to standard Enum enumerations:\n\n```python\nfrom enum import Enum\nfrom enum import IntEnum\n\nclass Knicks(IntEnum):\n  RANDLE = 1\n  BARRETT = 2\n  NTILIKINA = 3\n\nclass Nets(Enum):\n  DURANT = 1\n  IRVING = 2\n  HARDEN = 3\n\nprint(Knicks.RANDLE == Nets.DURANT)\n\u003e\u003e False\n```\n#### @classmethod decorator\n\nThe code continues: \n```python\nclass SystemType(enum.IntEnum):\n  MOLECULE = 0\n\n  @classmethod\n  def has_value(cls, value):\n    return any(value is item or value == item.value for item in cls)\n```\n\nThe [@classmethod](https://stackoverflow.com/questions/12179271/meaning-of-classmethod-and-staticmethod-for-beginner) decorator:\n\n\u003e \"...take a cls parameter that points to the class—and not the object instance—when the method is called.\" [source](https://realpython.com/instance-class-and-static-methods-demystified/)\n\n\u003e \"Because the class method only has access to this cls argument, it can’t modify object instance state. That would require access to self. However, class methods can still modify class state that applies across all instances of the class.\" [source](https://realpython.com/instance-class-and-static-methods-demystified/)\n\nWhat we have here is the [factorymethod](https://en.wikipedia.org/wiki/Factory_method_pattern#:~:text=From%20Wikipedia%2C%20the%20free%20encyclopedia,object%20that%20will%20be%20created.) design pattern.\n\n![chaplin](factory.gif)\n\n```python\nclass Nets:\n  def __init__(self, skills):\n    self.skills = skills\n\n  def __repr__(self):\n    return f'Nets({self.skills!r})'\n\n  @classmethod\n  def Joe_Harris(cls):\n    return cls(['3Pts', 'drives'])\n\n  @classmethod\n  def Nic_Claxton(cls):\n    return cls(['D', 'jams'])\n\nprint(Nets.Nic_Claxton())\nprint(Nets.Joe_Harris())\n\n\u003e\u003e Nets(['D', 'jams'])\n\u003e\u003e Nets(['3Pts', 'drives'])\n```\n\nIn this example we can create new Players of the Nets class configured with the skills that we want them to have from a single __init__ but many constructors. Now the class (cls) is the first argument rather than the instance of the class (self). \n\n\u003e \"Another way to look at this use of class methods is that they allow you to define alternative constructors for your classes. Python only allows one __init__ method per class. Using class methods it’s possible to add as many alternative constructors as necessary.\" [source](https://realpython.com/instance-class-and-static-methods-demystified/)\n\n### ml_collections ConfigDict\n\n```python\ndef default() -\u003e ml_collections.ConfigDict:\n  \"\"\"Create set of default parameters for running qmc.py.\n  Note: placeholders (cfg.system.molecule and cfg.system.electrons) must be\n  replaced with appropriate values.\n  Returns:\n    ml_collections.ConfigDict containing default settings.\n  \"\"\"\n ```\n \n Default returns a [mlcollections.ConfigDict]()\n \n \u003e ConfigDict...is a \"dict-like\" data structure with dot access to nested elements...Supposed to be used as a main way of expressing configurations of experiments and models.\n\n\n## References \n\n(2021) [QUANTUM MONTE-CARLO INTEGRATION: THE FULL ADVANTAGE IN MINIMAL CIRCUIT DEPTH](https://arxiv.org/pdf/2105.09100.pdf)\n\n(2021) [A MLIR Dialect for Quantum Assembly Languages](https://arxiv.org/abs/2101.11365)\n\n(2020) [\"Ab-Initio Solution of the Many-Electron Schroedinger Equation with Deep Neural Networks\"](https://arxiv.org/pdf/1909.02487.pdf) - FermiNet\n\n(2020) [Deep neural network solution of the electronic Schrödinger equation](https://arxiv.org/pdf/1909.08423.pdf) - PauliNet\n\n(2020) [Variational Principles in Quantum Monte Carlo: The Troubled Story of Variance Minimization](https://pubs.acs.org/doi/10.1021/acs.jctc.0c00147)\n\n(2020) [Fermionic neural-network states for ab-initio electronic structure](https://www.nature.com/articles/s41467-020-15724-9)\n\n(2020) [Data Driven Science \u0026 Engineering:Machine Learning, Dynamical Systems and Control](http://databookuw.com/)\n\n(2020) [Better, Faster Fermionic Neural Networks](https://arxiv.org/pdf/2011.07125.pdf)\n\n(2019) [Quantum Entanglement in Deep Learning Architectures](https://arxiv.org/pdf/1803.09780.pdf)\n\n(2019) [Solving Many-Electron Schrodinger Equation Using Deep Neural Networks](https://arxiv.org/pdf/1807.07014.pdf)\n\n(2019) [Variational neural network ansatz for steady states in open quantum systems](https://arxiv.org/pdf/1902.10104.pdf)\n\n(2019) [Variational Quantum Monte Carlo Method with a Neural-Network Ansatz for Open Quantum Systems](https://arxiv.org/pdf/1902.09483.pdf)\n\n(2018) [Quantum Chemical Approaches in Structure-Based Virtual Screening and Lead Optimization](https://www.frontiersin.org/articles/10.3389/fchem.2018.00188/full)\n\n(2016) [Solving the Quantum Many-Body Problem with Artificial Neural Networks](https://arxiv.org/pdf/1606.02318.pdf)\n\n(2015) [Optimizing Neural Networks with Kronecker-factored Approximate Curvature](https://arxiv.org/abs/1503.05671)\n\n(2006) [MontePython: Implementing Quantum Monte Carlo using Python](https://arxiv.org/pdf/physics/0609191.pdf)\n","projects_url":"https://awesome.ecosyste.ms/api/v1/lists/twoxes%2Fawesome-quantum-chemistry/projects"}