Skip to content

Installation

Warning

KITE runs exclusively on UNIX-based systems, such as GNU/Linux and Mac OS X. Currently, there is no Windows support.

KITE is written in C++ with code optimisation, including multithreading performance. The Python package Pybinding is used during pre- and post-processing steps.

Tip

To run the pre-processing tools using Python, run the Python-script from the kite/-directory. By default, KITE's python interface is only avaible within the kite/-directory.

1. Download KITE

First download the source code from our official repository on GitHub repository:

git clone https://github.com/quantum-kite/kite.git

Info

If git is not installed on your Mac OS X device, come back later to this step. A description of the installation process for Git will be given in the next section.

2. Get dependencies

KITE dependends on:

  • Pybinding
  • Eigen3 (version 3.3.7 or newer)
  • HDF5 (version 1.8.13 or newer)
  • CMake (version 3.9 or newer)
  • gcc (version 4.8.1 or newer)
  • h5py

The compiler must support C++11 features and OpenMP parallelization.

To enable KITE's Gaussian wavepacket propagation functionality, compile the source code with a recent gcc version (gcc 8.0.0 or newer). To check the gcc version, you can use the following command in the terminal:

g++ --version

2.1 For Ubuntu

Install Eigen3 for various linear algebra tools:

sudo apt-get install libeigen3-dev

Ubuntu may not provide the required version of Eigen3, retrieve the latest stable release of Eigen3. Unzip the file and copy the Eigen directory to /usr/include/.

Hierarchical Data Format (HDF5) is used to store the inputs/outputs of the program:

sudo apt-get install h5utils
sudo apt-get install libhdf5-dev

Calculations on KITE are configured using a python script which interfaces with Pybinding. Pybinding requires CMake and pip:

sudo apt-get install cmake
sudo apt-get install pip3

Pybinding also requires the SciPy packages but pip will resolve all the SciPy dependencies automatically:

pip3 install pybinding

Alternatively, you might prefer to follow the instructions on the Pybinding webpage.

To construct the HDF5-files, KITE requires h5py:

pip3 install h5py

2.2 For Mac OS X

Install the Xcode command-line tools from Apple Developer, install these using the terminal:

xcode-select --install

Info

On machines from the Apple Silicon lineup (M1, M1Max, etc.) you may have to use the Rosetta translator while a few remaining incompatibility issues are resolved. Rosetta simulates an Intel-x64 system and translates existing software for use with Apple Silicon.

To load Rosetta, run arch -x86_64 zsh each time when starting a new terminal.

Kite requires an open-source software package management system like Homebrew. Run the following command in the terminal and follow the subsequent instructions provided by Homebrew.

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Install a C++ compiler via Homebrew:

brew install gcc

Now close the terminal window, and open a new terminal window.

Hierarchical Data Format (HDF5) is used to store the inputs/outputs of the program.

Info

In the following sections, replace n with the version of gcc installed by Homebrew as given by brew info gcc.

Install HDF5 from source:

brew install hdf5 --build-from-source --cc=gcc-n

Info

The default directory for Homebrew is /usr/local/bin/. Change this path to the right location if Homebrew was installed in a different directory

Install Eigen3 for various linear algebra tools, CMake and Python:

CXX=g++-n brew install eigen python Cmake git

Calculations on KITE are configured using a python script which interfaces with Pybinding. Pybinding also requires the SciPy packages but pip will resolve all the SciPy dependencies automatically:

Warning

To install the pyhton requirements, you must run the Homebrew-python version. You can find the Homebrew-python binary at `#!bash /opt/homebrew/bin/python3.

CXX=g++-n /usr/local/bin/python3 -m pip install numpy h5py pybinding

Alternatively, you might prefer to follow the instructions on the Pybinding webpage.

Next, download the source code by the command given in section 1. Edit CMakeLists.txt in the kite/-directory: * locate the following statements

set(CMAKE C COMPILER "gcc")
set(CMAKE C COMPILER "g++")

  • replace by
set(CMAKE CXX COMPILER "gcc-n")
set(CMAKE CXX COMPILER "g++-n")

where n is the version number as used previously.

3. KITEx & KITE-tools

From within the kite/ directory (containing CMakeLists.txt and kite.py), run the following commands for KITEx:

mkdir build
cd build
cmake ..
make

Info

Any warnings appearing during the compilation process can typically be ignored.

For KITE-tools, run the following commands from the kite/tools/ directory

mkdir build
cd build
cmake ..
make

If these commands have run successfully, you will now find KITEx in the kite/build/ directory and [KITE-tools][kitetools in the kite/tools/build/ directory, which are now ready to use!

4. Test KITE

To generate an input file using KITE's python-interface, try one of our examples in the kite/examples/ directory:

python dos_graphene.py

It creates a file named graphene_lattice-output.h5 that is used as an input for KITEx:

../build/KITEx graphene_lattice-output.h5

This first example calculates the density of states (DOS) of pure graphene. To obtain the file with the DOS-data, you need to post-process the output with a tool

../tools/build/KITE-tools graphene_lattice-output.h5

that generates the appropriata data file. For more details refer to the tutorial.

Info

The three command above were run from the kite/examples/-directory. If you didn't build KITEx or KITE-tools in the kite/build/ and kite/tools/build/ directories respectively, the commands won't work.