Installation

TRIQS and its applications are provided a la carte: after you have installed the TRIQS library, you will be able to easily install various TRIQS-based applications: impurity solvers, tools for DFT+DMFT calculations, etc.

This page describes the installation of the TRIQS library itself. The installation procedure of the applications is described on their respective sites, under ‘Install’.

Philosophy

The TRIQS project is in perpetual dynamic evolution such that we can get our developments directly to users straight out of the oven.

However, we also understand that some users may not wish to constantly update their codes, and are happy to use an older but perhaps more stable version.

To this end, we propose two options to the user:

  1. You follow the master branch in the git repository of TRIQS and all applications. This will guarantee that you are using the latest stable release including essential bug-fixes. Note that new releases might occasionally include changes of the API, which we summarize in a set of release notes. We use continuous integration to ensure that the master branch always compiles and passes all tests. This is checked for both the TRIQS library and several public (and private) applications.
  2. You use a version tag, e.g. version 2.0, for TRIQS and all applications. This guarantees complete reproducibility, while you might be missing out on the latest features and bug-fixes.

Packaged Versions of TRIQS

Docker

The virtualization software docker can be used to run a triqs environment for both Jupyter Notebook and shell access on a variety of operating systems. Once docker is installed, just pull the latest image with:

docker pull flatironinstitute/triqs

and follow the commands on the image-website.

Note

Docker images allows for an easy set-up on cluster machines that provide the virtualization software singularity. For more information please refer to the singularity documentation.

Binder

Binder is a web-service running Jupyter notebooks for direct access. A TRIQS Jupyter notebook environment can be accessed directly at binder.

Note

Once your binder session is closed, your work will be lost.

Ubuntu Debian packages (experimental)

We provide Debian packages for the Ubuntu LTS Versions 16.04 (xenial) and 18.04 (bionic).:

sudo apt-get update && sudo apt-get install -y software-properties-common apt-transport-https curl
source /etc/lsb-release
curl -L https://users.flatironinstitute.org/~ccq/triqs/master/$DISTRIB_CODENAME/public.gpg | sudo apt-key add -
sudo add-apt-repository "deb https://users.flatironinstitute.org/~ccq/triqs/master/$DISTRIB_CODENAME/ /"
sudo apt-get update && sudo apt-get install -y triqs

This will install the minimal runtime packages and triqs into the system tree at /usr.

If you aim to compile applications against the triqs library, additional development libraries have to be installed. You should further set the following environment variables permanently:

export CPATH=/usr/include/openmpi:/usr/include/hdf5/serial/:$CPATH
source /usr/share/cpp2pyvars.sh
source /usr/share/triqsvars.sh

For full c++2py functionality, please read the corresponding section for the Ubuntu set-up.

Compiling TRIQS from source (Advanced)

Prerequisites

The TRIQS library relies on a certain number of standard libraries and tools described in the list of requirements. Please pay particular attention to the C++ compilers and to Python virtual environments. Here are instructions to install these necessary libraries on two standard systems:

Note

Please ensure that you have all the dependencies installed before proceeding further!

Installation steps

You need to install first Cpp2Py and then TRIQS.

We provide hereafter the build instructions in the form of a documented bash script. You can adapt INSTALL_PREFIX, NCORES for your local settings. Note that, contrary to previous versions of TRIQS, the installation directory CMAKE_INSTALL_PREFIX is now mandatory in the cmake configuration.

#!/bin/bash

# Set this variable to your desired install directory
INSTALL_PREFIX=$(pwd)/install

# Set the number of cores for the compilation
NCORES=4

# Clone the git repositories for cpp2py and triqs
git clone https://github.com/TRIQS/cpp2py cpp2py.src
git clone https://github.com/TRIQS/triqs triqs.src

# Configure the cpp2py build process
mkdir -p cpp2py.build && cd cpp2py.build
cmake ../cpp2py.src -DCMAKE_INSTALL_PREFIX=$INSTALL_PREFIX

# Build and install cpp2py
make -j$NCORES && make install
cd ../

# Load the cpp2py installation into your environment
source $INSTALL_PREFIX/share/cpp2pyvars.sh

# Use cmake to configure the triqs build process
mkdir -p triqs.build && cd triqs.build
cmake ../triqs.src -DCMAKE_INSTALL_PREFIX=$INSTALL_PREFIX

# Build, test and install triqs
make -j$NCORES && make test && make install
cd ../

# Load the triqs installation into your environment
source $INSTALL_PREFIX/share/triqsvars.sh

echo 
echo "If you want to automatically load triqs and cpp2py into your environment,"
echo "please add the following two lines to your ~/.bash_profile (or ~/.zprofile):"
echo "source $INSTALL_PREFIX/share/cpp2pyvars.sh"
echo "source $INSTALL_PREFIX/share/triqsvars.sh"

Environment setup

Cpp2Py and TRIQS both provide a small script (cpp2pyvars.sh and triqsvars.sh) to load their respective installation into your environment variables. Please source them with the proper replacement of INSTALL_PREFIX:

source $INSTALL_PREFIX/share/cpp2pyvars.sh
source $INSTALL_PREFIX/share/triqsvars.sh

To automate this process, please add these two lines to your ~/.bash_profile (or ~/.zprofile)