GitHunt
JU

JuliaMatSci/LearnHartreeFock.jl

Learning how to code a package for solving simple Hartree-Fock electronic structure calculations.

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

  • src - The primary source code for running HatreeFock.jl
  • tests - Test modules for comparing to original code by Prof. James John.
  • docs - Documentation.
  • examples - Example calculations and basis-sets.

Languages

Julia66.3%Jupyter Notebook33.7%

Contributors

Latest Release

v1.0June 12, 2020
MIT License
Created February 21, 2019
Updated September 27, 2025
JuliaMatSci/LearnHartreeFock.jl | GitHunt