Prerequisites¶
Rust features¶
The QSym² crate defines the following features that can be specified at compilation via cargo
. Some of these features are mutually exclusive.
Linear algebra backend¶
There are six features defining six different ways a linear algebra backend can be configured for QSym². These are inherited from the ndarray-linalg crate. One (and only one) of these must be specified:
openblas-static
: Downloads, builds OpenBLAS, and links staticallyopenblas-system
: Finds and links existing OpenBLAS in the systemnetlib-static
: Downloads, builds LAPACK, and links staticallynetlib-system
: Finds and links existing LAPACK in the systemintel-mkl-static
: Finds and links existing static Intel MKL in the system, or downloads and links statically if not foundintel-mkl-system
: Finds and links existing shared Intel MKL in the system
If the *-static
backends give rise to numerical problems, please try installing the linear algebra backends directly (either via your system's package manager or by compiling from source) and then using the corresponding *-system
backends.
Interfaces¶
qchem
: Enables Q-Chem's HDF5 archive files to be read in and analysedpython
: Enables the Python bindings for several core functionalities
Integrals¶
integrals
: Enables the computation of \(n\)-centre overlap integrals and \(n\)-centre overlap integral derivatives within QSym²
Composite¶
standard
: Enables theopenblas-static
andqchem
featuresfull
: Enables thestandard
andintegrals
features
Developmental¶
sandbox
: Enables experimental features that are still being actively developed
Dependencies¶
The installation of QSym² requires the following:
-
Common:
curl
for installing the Rust compiler- the Rust compiler and the
cargo
package manager git
for obtaining the source code of QSym²libssl-dev
(Debian/Ubuntu) oropenssl-devel
(Rocky/Fedora/RHEL)pkg-config
(Debian/Ubuntu) orpkgconfig
(Rocky/Fedora/RHEL)
-
Feature-specific:
Feature | Dependencies | Notes |
---|---|---|
openblas-static |
make , gcc , gfortran |
Builds OpenBLAS and links statically (see ndarray-linalg documentation) |
openblas-system |
|
Finds and links existing OpenBLAS in the system (see ndarray-linalg documentation) |
netlib-static |
make , gfortran |
Builds LAPACK and links statically (see ndarray-linalg documentation) |
netlib-system |
|
Finds and links existing LAPACK in the system (see ndarray-linalg documentation) |
intel-mkl-static |
|
Finds and links existing static Intel MKL in the system, or downloads and links statically if not found (see ndarray-linalg documentation) |
intel-mkl-system |
|
Finds and links existing shared Intel MKL in the system (see ndarray-linalg documentation) |
qchem |
cmake , gcc |
Builds the HDF5 C library and links statically |
integrals |
|
Installs the TLS framework required for reqwest |
python |
Python, which is best managed via Anaconda | Installs the Python bindings for core functionalities of QSym² |