Installation Guide

Short Version

To build and install SeQuant, run the following commands in the source directory:

cmake -B build -S .
cmake --build build
cmake --build build --target install

Prerequisites

Mandatory

Note

SeQuant can download and build Boost if configured with Boost_FETCH_IF_MISSING=ON, but the use of Boost provided by the system package manager is recommended. The following non-header-only Boost libraries are required, hence Boost must be configured/built:

  • Boost.Regex

  • Boost.Locale

Optional

  • TiledArray - for building coupled-cluster evaluation tests

Note

If not found, SeQuant can download and build all dependencies other than CMake and the C++ compiler, provided git <https://git-scm.com/> is available on the system.

Useful CMake Variables

CMake Variable

Default

Description

CMAKE_CXX_COMPILER

Specifies the C++ compiler to use.

CMAKE_PREFIX_PATH

This semicolon-separated list specifies search paths for dependencies (Boost, Range-V3, etc.).

CMAKE_INSTALL_PREFIX

The installation path for SeQuant.

SEQUANT_TESTS

BUILD_TESTING

Enables test targets, e.g. check-sequant.

SEQUANT_BTAS

OFF

SeQuant will look for (or build) BTAS tensor library <https://github.com/ValeevGroup/BTAS> and enable its use as an evaluation backend.

SEQUANT_TILEDARRAY

OFF

SeQuant will look for (or build) TiledArray tensor framework <https://github.com/ValeevGroup/TiledArray> and enable its use as an evaluation backend.

SEQUANT_MIMALLOC

OFF

Use mimalloc for fast memory allocation.

SEQUANT_BUILD_DOCS

OFF

Enables building of the documentation. See Documentation Guide for detailed information.

SEQUANT_PYTHON

OFF

Enables building of Python bindings.

SEQUANT_USE_SYSTEM_BOOST_HASH

ON

Use system Boost for hashing? Set to OFF to make hashing independent of Boost, thus value-portable

SEQUANT_IWYU

OFF

Whether to use the include-what-you-use tool (if found)

Boost_FETCH_IF_MISSING

OFF

If set to ON, SeQuant will download and build Boost if it is not found by find_package(Boost ...); this is not recommended.

ENABLE_TBB

OFF

Enable TBB as an optional prerequisite for C++’s parallel STL

SEQUANT_CONTEXT_MANIPULATION_THREADSAFE

ON

If set to OFF the default context must be initialized and manipulated from single thread only (most users will want to do this).

SEQUANT_ASSERT_BEHAVIOR

ABORT in Debug mode, IGNORE otherwise

Controls how assertions within SeQuant’s code are handled. Valid options are ABORT, THROW and IGNORE. The latter disables assertions, whereas the former keep them active and either abort the program or throw an exception on violation respectively.

Configuring and Building

To configure and build SeQuant, you can use various CMake variables to customize the build process. These variables can be set using the -D flag when running the cmake command. For example:

cmake -B build -S . -D<VARIABLE_NAME>=<VALUE>

Now you can build SeQuant running the following command in the source directory:

cmake --build build -S .
cmake --build build --target check-sequant # for testing
cmake --build build --target install