Skip to content

ifilot/hfcxx

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

HFCXX

Build Version License: GPL v3

Overview

HFCXX is a Hartree-Fock code in C++. The program currently supports only single-point calculations (i.e. no geometry optimizations). The basis sets STO-3G and STO-6G are included for atoms up to N=8 (oxygen).

Note

This program is mainly made for educational purposes. There are some (obvious) things to improve as suggested by others (e.g. loading of basis set coefficients from external files). My aim is however to keep this code simple and not use too many additional features.

Tip

Explore educational resources on electronic structure theory

  • Featured project — PyQInt
    An Educational Hartree–Fock Code in Python: Transparent implementation of Gaussian-type integrals, SCF procedures, and geometry optimization.

  • 📐 Interested in learning Density Functional Theory?
    Have a look at DFTCXX.

  • 📘 Want a deeper theoretical foundation?
    Read my free lecture book: Elements of Electronic Structure Theory.

Compilation

Linux

Ensure you have all the required packages installed

sudo apt install build-essential cmake libcppunit-dev
mkdir build && cd build
cmake ../src
make -j9

For Apple Silicon

Install the compilation toolchain via brew.

brew install make gcc cmake cppunit

You also have to make sure that you have xCode installed

xcode-select --install

Packages are located in a different folder compared to linux

mkdir build && cd build
cmake -DCMAKE_CXX_FLAGS="-I/opt/homebrew/opt/cppunit/include" ../src
make -j9

Testing

After compilation, you can test the hfccc executable by running the test suite.

Note: The testsuite contains a HF calculation of benzene using the STO-6g basis set. Since HFCXX is not optimized for speed, running the tests can take a few minutes to complete.

make test

A successful test should give an output similar to the following

Running tests...
Test project /mnt/d/PROGRAMMING/CPP/hfcxx/build
    Start 1: TestMolecules
1/1 Test #1: TestMolecules ....................   Passed   50.70 sec

100% tests passed, 0 tests failed out of 1

Total Test time (real) =  50.72 sec

Usage

./hfcxx _input_file_ > _output_file_

For example, to run a HF calculation for H2, run

./hfcxx molecules/h2.in > h2.out

About

Hartree-Fock C++ code

Topics

Resources

License

GPL-3.0, GPL-3.0 licenses found

Licenses found

GPL-3.0
LICENSE
GPL-3.0
COPYING

Contributing

Stars

Watchers

Forks

Contributors 2

  •  
  •