Skip to content
/ acorn Public

Fast and simple way to electronic structure methods.

License

Notifications You must be signed in to change notification settings

tjira/acorn

Repository files navigation

Quantum Acorn


Quantum Acorn, a collection of electronic structure methods compiled into a dependency-free binary. If you are here for the educational scripts, you can find them in the education folder.

Features

Below are all the important features of Acorn divided into categories. If you are looking for the educational scripts, you can find them in the education folder.

Quantum Mechanical Methods

  • Numerically Exact Adiabatic & Nonadiabatic Quantum Dynamics
  • Hartree-Fock Method & Møller–Plesset Perturbation Theory
  • Configuration Interaction

Compilation

The software requires the libint and fftw libraries. Before compiling these libraries and proceeding with the following steps, make sure you have eigen and boost library installed. On debian-based distributions, you can do it with the following command.

sudo apt install libboost-dev libeigen3-dev

To compile the libraries execute ./script/libfftw.sh && ./script/libint.sh from the project root directory. Now, we export the necessary environment variables.

export CPLUS_INCLUDE_PATH="$PWD/libfftw/install/include:$PWD/libint/install/include:$CPLUS_INCLUDE_PATH"
export LIBRARY_PATH="$PWD/libfftw/install/lib:$PWD/libint/install/lib:$LIBRARY_PATH"

After this, the project configuration should finish without errors.

cmake -B build -DCMAKE_BUILD_TYPE=Release

And we can build with the following command.

cmake --build build

After the compilation the bin folder will be created along with the executables.

Examples

All the examples are implemented as example/makefile targets. If you are in example directory, you can run the HF example on a water molecule simply run the make hf command. The calculation should finish without errors. Feel free to explore all the examples.

Credits

  • argparse - Argument Parser for Modern C++.
  • exprtk - C++ Mathematical Expression Parsing and Evaluation Library.
  • fftw - C Subroutine Library for Computing the Discrete Fourier Transform .
  • libint - High-Performance Library for Computing Gaussian Integrals in Quantum Mechanics.