Skip to content

jamesETsmith/fri-cc

Repository files navigation

Fast-randomized Iteration (FRI) Coupled Cluster

GitHub Actions Codacy Badge

⚠️ WARNING: PROJECT IS UNDER CONSTRUCTION AND SUBJECT TO BREAKING CHANGES ⚠️

Installation

Requirements

  • C++20 Compiler
  • cmake
  • Python >= 3.6
    • PySCF
    • pytest
    • matplotlib
    • h5py

Tested Configurations

Compiler Success
g++10 ✔️

From Source

git clone git@github.com:jamesETsmith/fri-cc.git --recursive
CXX=<your desired c++ compiler> cmake -B build
cmake --build build --parallel --target install
python -m pip install -e .

For cmake<3.14

git clone git@github.com:jamesETsmith/fri-cc.git --recursive
mkdir build && cd build
CXX=<your desired c++ compiler> cmake ..
make install -j
cd ..
python -m pip install -e .

⚠️ NOTE: fri-cc uses git submodules

Broadly speaking, the build/install process has the following steps:

  1. Compile the shared library libfricc
  2. Using pybind11, create Python wrappers for parts of libfricc called py_rccsd
  3. Package and install the compiled Python modules.

Testing

There are two test suites, the first in C++, can be turned on by using an extra cmake flag -DCPP_TEST=ON:

mkdir build && cd build
CXX=<your desired c++ compiler> cmake .. -DCPP_TEST=ON
make install -j
make test

The second is a Python-based test suite, which you can run after following the instructions in the From Source section.

Benchmarking

Benchmarking is done from Python and scripts are contained in fricc/benchmark.