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.

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

All the libraries the program needs are included in the installation script. To install all the libraries, navigate to the project root directory and execute the following command.

./script/general/library.sh SHARED 1

You can also perform a static compilation. The number at the end is number of cores the compilation process uses. The program needs some heavy libraries so it takes some time. After the library compilation finishes, all the header files and compiled libraries can be found in the external directory. If you don't want to wait for the compilation process, you can also download libraries used in the latest release by running the following command.

./script/general/libdown.sh SHARED

This command also creates the external directory with libraries. After you have obtained the compiled libraries, configure the project by the following command.

cmake -B build -DCMAKE_BUILD_TYPE=Release -DSTATIC=OFF

And build with the following command.

cmake --build build

After the compilation, the bin folder will be created along with the executable.

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.