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.
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.
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.
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.