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 with Arbitrary Number of States & Dimensions
  • Restricted Hartree–Fock for Closed Shell & Generalized Hartree–Fock for Open Shell Systems
  • Møller–Plesset Perturbation Theory, Configuration Interaction & Coupled Cluster Methods

Compilation

Before the compilation process, make sure you have eigen, boost and openblas libraries installed. On debian-based distributions, you can do it with the following command.

sudo apt install libboost-dev libeigen3-dev libopenblas-dev

After these well-estabilished libraries are installed on your system, you need to compile several other dependencies. Fortunately, the Acorn package contains a script to install them all-in-one. You can install all additional dependencies by executing ./script/liball.sh from the root directory. Now, go grab some coffee, it can take several hours. After the library compilation is finished, 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 located in example/input folder. To run an example Hartree-Fock calculation, execute the corresponding example file using the acorn -i example/input/hf.json command from the project root. Feel free to explore all the examples.

Credits

  • argparse - Argument Parser for Modern C++.
  • eigen - C++ template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms.
  • exprtk - C++ Mathematical Expression Parsing and Evaluation Library.
  • fftw - C Subroutine Library for Computing the Discrete Fourier Transform.
  • json - JSON for Modern C++.
  • libint - High-Performance Library for Computing Gaussian Integrals in Quantum Mechanics.
  • pytorch - Tensors and Dynamic neural networks in Python with strong GPU acceleration.