JuliaMatSci / LearnHartreeFock.jl

Learning how to code a package for solving simple Hartree-Fock electronic structure calculations.
MIT License
20 stars 6 forks source link
electronic-structure hartree-fock julia-language quantum-chemistry

LearnHartreeFock.jl DOI

JuliaPsi Logo

Learning Hartree-Fock By Doing

This package is focused on learning how to code a library for solving simple Hartree-Fock electronic structure calculations.

The aim is to assist users of mainstream quantum chemistry and electronic structure software (e.g. NWChem, CP2K) with a more fundamental understanding of the steps associated with all-electron wavefunction based approaches. This code will only address Hartree-Fock approach (i.e. only electron exchange) using simple Gaussian basis-sets (e.g. 6-31G). The code relies heavily on Gaussian product theorem to handle integrals.

The code here is directly based on the implementation from the video series and matlab code by Prof. James Johns at the Univ. of Minnesota. This version is written in Julia, which will have familiar syntax as Matlab, but may have promising performance advantages (not confirmed) and uses a liberal MIT license.

What Code Can & Cannot Do

Does

1. Spherical Gaussian basis-sets. Relies on Gaussian product theorem exhaustively.
2. Mean-field Hartree-Fock approach 
   a. Self-consistent Field solution
3. Minimum Energy in Hartree units.

Doesn't

1. Non-Gaussian basis-sets.
2. Gaussian basis-sets including angular, polarized, or diffuse functions.
3. Electron correlation energy.
4. Excited-state, dynamics, or perturbation theory calculations.

H2 Binding Curve Example

H2 Binding Curve

Folder Hierarchy