Code

I am developing several software packages and am starting to make them publicly available as open-source projects. My philosophy is to continuously single out useful small modules from the larger research software I am using.


ED Basics

A minimalistic code performing Exact Diagonalization written in python. It demonstrates the basics of how to build a Hilbert space, employ space group symmetries, and iteratively compute extremal eigenvalues. The code was part of a hands-on-session I held at the FOR1809 Winter School in Marburg in 2018.

Github


LiLA

Lightweight Linear Algebra

Performing elementary linear algebra operations in C++ is unfortunately not as straightforward as in other languages. There exist several good options, like Eigen or Armadillo, but these libraries are rather extensive. With this project, I provide an easy-to-use minimalistic linear algebra library by wrapping the Blas/Lapack, Intel MKL, or Accelerate subroutines.

Github


LiMe

Lightweight Measurements

The hdf5 data format is a modern standard for scientific data sets. Its C interface is versatile, but not straightforward to use. This software project provides an intuitive C++ interface for writing scalars, vectors, and matrices to an hdf5 file, without having to deal with low-level function calls. The package also features extensible data collection, which is useful when consecutive measurements (from e.g. a Monte Carlo simulation) have to be accumulated.

Github


Hydra

An Exact Diagonalization software package where elementary operations are parallelized for distributed memory machines. The code is designed to scale Hamiltonian matrix-vector multiplications up to several thousand cores on modern supercomputers. The design principles are described in this paper. Currently, it is available for collaborators only.

Github