- Notifications
You must be signed in to change notification settings - Fork168
Combining Psi4 and Numpy for education and development.
License
psi4/psi4numpy
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
What I cannot create, I do not understand. - Richard Feynman
The overall goal of the Psi4NumPy project is to provide an interactive quantum chemistryframework for reference implementations, rapid prototyping, development, and education.To do this, quantities relevant to quantum chemistry are computed with the Psi4 electronic structure package, and subsequently manipulatedusing the Numerical Python (NumPy) package. This combinationprovides an interface that is both simple to use and remains relatively fastto execute.
A series of short scripts demonstrating the implementation of Hartree-Fock Self-ConsistentField, SCF Response, Møller-Plesset Perturbation Theory, Symmetry-Adapted Perturbation Theory,Coupled Cluster Theory, and more are provided for the reference of the quantum chemistrycommunity at large to facilitate both reproducibility and low-level methodological understanding.Additionally, the Tutorials folder above represents an interactive educationalenvironment containing modules discussing the theory and implementation of variousquantum and computational chemistry methods. By leveraging the popular Jupyter Notebookapplication, each tutorial is constructed as hybrid theory and programming in an easy to useinteractive environment, removing the gap between theory and implementation.
If you have comments, questions, or would like to contribute to the projectplease see ourcontributor guidelines.
- Obtain required software
- Psi4NumPy (clone this repository; no install available)
- Psi4
- Option 1 (easiest):Download installer based on your preferred operating system and version of Python. Proceed to follow the instructions described at the bottom of that page.
- Option 2 (easy): Download Conda package according toinstructions. To find the different versions available visit theanaconda website.
# Have Anaconda or Miniconda (https://conda.io/miniconda.html)>>> conda create -n p4env psi4 -c psi4 # Create a new environment named p4env and install psi4. >>> bash>>> source activate p4env - Option 3 (medium):Clone source andcompile according toinstructions
# Get Psi4 source>>> git clone https://github.com/psi4/psi4.git>>> git checkout v1.1>>> cmake -H. -Bobjdir -Doption=value ...>>> cd objdir && make -j`getconf _NPROCESSORS_ONLN`# Find `psi4` command at objdir/stage/<TAB>/<TAB>/.../bin/psi4; adjust path if needed
- Python 3.6+ (incl. w/ Psi4 Options 1 & 2)
- NumPy 1.7.2+ (incl. w/ Psi4 Options 1 & 2)
- Scipy 0.13.0+
- Enable Psi4 & PsiAPI (if Psi4 was built from source)
- Find appropriate paths
>>> psi4 --psiapi-pathexport PATH=/path/to/dir/of/python/interpreter/against/which/psi4/compiled:$PATHexport PYTHONPATH=/path/to/dir/of/psi4/core-dot-so:$PYTHONPATH - Export relevant paths
>>> bash>>> export PATH=/path/to/dir/of/python/interpreter/against/which/psi4/compiled:$PATH>>> export PYTHONPATH=/path/to/dir/of/psi4/core-dot-so:$PYTHONPATH
- Find appropriate paths
- Run scripts as conventional Python scripts
- Example: Run
DF-MP2.py>>> python psi4numpy/Moller-Plesset/DF-MP2.py
- Example: Run
New users can follow theTutorials or thePsiAPI documentation for an introduction to running Psi4 within the PsiAPI.
A tutorial that covers the basics of NumPy can be foundhere.
This repository contains
- reference implementations, which provide working Python scripts implementingvarious quantum chemical methods, and
- interactive tutorials, which provide Jupyter notebooks presenting a hybridtheory-and-implementation educational framework for learning to program quantumchemistry methods.
Reference implementations are organized into top-level directoriescorresponding to the over-arching theory upon which each method is based, i.e.,both EOM-CCSD and TD-CCSD are contained in theCoupled-Clusterdirectory. All interactive tutorials are contained in the top-level directoryTutorials. Thesetutorials are organized in logical order of progression, which is enumerated indetailhere.
This repostitory has recently been updated to be compatible with Psi4 version 1.1.Please see thev0.1-beta tag for a Psi4 v1.0 compliant Psi4NumPy version.
This reposititory is fully compatible with the upcoming Psi4 version 1.2.In fact (for a while), if you use v1.2, there's no need to worry if your Psi4 hasall the features to run all the reference implementations and tutorials.
Please consider citing this repository through the Psi4NumPy paper:
Psi4NumPy: An Interactive Quantum Chemistry Programming Environment for Reference Implementations and Rapid DevelopmentDaniel G. A. Smith, Lori A. Burns, Dominic A. Sirianni, Daniel R. Nascimento, Ashutosh Kumar, Andrew M. James, Jeffrey B. Schriber, Tianyuan Zhang, Boyi Zhang, Adam S. Abbott, Eric J. Berquist, Marvin H. Lechner, Leonardo A. Cunha, Alexander G. Heide, Jonathan M. Waldrop, Tyler Y. Takeshita, Asem Alenaizan, Daniel Neuhauser, Rollin A. King, Andrew C. Simmonett, Justin M. Turney, Henry F. Schaefer, Francesco A. Evangelista, A. Eugene DePrince III, T. Daniel Crawford, Konrad Patkowski, and C. David SherrillJournal of Chemical Theory and Computation,2018, 14 (7), 3504-3511DOI: 10.1021/acs.jctc.8b00286
About
Combining Psi4 and Numpy for education and development.
Topics
Resources
License
Contributing
Uh oh!
There was an error while loading.Please reload this page.
