View on GitHub

EDLib

Exact diagonalization solver for quantum electron models

DOI

Overview

EDLib is a C++ template finite temperature Exact diagonalization solver for quantum electron models. The central class of the library is Hamiltonian<Storage, Model>, that is parametrized by Storage and Model:

The resluting eigenpairs are stored as a set of EigenPair<precision, SymmetrySectorType> structures in the Hamiltonian object.

The following observable can be computed by means of Lanczos continuous fraction (Lanczos<Hamiltonian, Mesh, MeshArguments...> class template) of the Lehmann representation:

Look for examples in the “examples/” directory for a detailed information.

Installation

The code is is provided as a header-only library with a set of examples and tests. At least the edlib/Hamiltonian.h should be included in any derivative projects.

The eigensolver uses cpp-arnoldi, a header-only C++17 port of the ARPACK symmetric driver. Clone it alongside EDLib or point CMake at its location:

git clone https://github.com/Q-solvers/cpp-arnoldi ../cpp-arnoldi-main

To compile examples and tests create a build directory and run

  1. cmake -DExamples=ON -DTesting=ON {path_to_edlib}
  2. make
  3. make test (for running tests)
  4. example will be build in examples subdirectory

To build with MPI support add -DUSE_MPI=ON CMake flag. MPI library should be installed and ALPSCore library should be compiled with MPI support. To build with a specific ALPSCore library -DALPSCore_DIR=<path to ALPSCore> CMake flag.

Dependencies
Authors
Distribution

Open-source under MIT License.