This is a fork of the Crawford Programming Projects that seeks to place more emphasis on learning to program in Python. The original projects are a great resource, but some of the instructions can be a bit vague, and C++ itself is not the easiest language to begin with. As such, this version will give fuller instructions for the chemistry problems as well as embed more language information directly in the tutorial. One of the difficulties of learning to program is that the best way to learn is by working on a concrete project. The goal of this tutorial then is to offer a substantial, quantum chemistry-flavored project to help people learn Python. I also hope to place some emphasis on a test-driven development style since that should help with the inevitable debugging and on some basics of the shell.
This repository is organized into several projects, each with its own
directory. In each one you will find a README.md
file like this one
with instructions and output for you to check your implementation
against. These projects will also require some input files that will
be discussed in each project as they become relevant. These input
files can be found in the inputs
directory. Within input
there
are directories for several different molecule/basis-set combinations
where you will find integrals, molecular geometries and other files to
use as input to your programs.
- Project #1: Molecular Geometry/rotational constant analysis
- Project #2: Harmonic Vibrational analysis
- Project #3: The Hartree-Fock self-consistent field (SCF) procedure.
- Project #4: The second-order Moller-Plesset perturbation (MP2) energy.
- Project #5: The coupled cluster singles and doubles (CCSD) energy.
- Project #6: A perturbative triples correction to CCSD [CCSD(T)].
- Project #7: Connecting your code to PSI4.
- Project #8: DIIS extrapolation for the SCF procedure.
- Project #9: Using symmetry in the SCF procedure.
- Project #10: DIIS extrapolation for solving the CC amplitude equations.
- Project #11: An "out of core" SCF procedure.
- Project #12: Excited Electronic States: CIS and TDHF/RPA
- Loading basis sets and computing integrals