mps icon indicating copy to clipboard operation
mps copied to clipboard

Library for the simulation of one-dimensional quantum many-body systems.

DESCRIPTION

A library with numerical algorithms for studying one-dimensional quantum many-body systems. Among the things you will find here:

  • Simple tools for exact diagonalizations.

  • Tensor network representations

    • Matrix Product States ansatz for states in finite lattices.
    • iTEBD ansatz for translationally invariant states
    • Matrix Product Operator representation for 1D Hamiltonians
    • Computation of expectation values, correlations and more using all these ansatz.
  • Computation of ground states and excited states using

    • Matrix Product States
    • Density Matrix Renormalization Group
    • Translationally invariant infinite-dimensional systems (iTEBD)
  • Time evolution of quantum many body systems using

    • Trotter algorithms
    • Arnoldi methods

The Tensor and MPS libraries are discussed in the libtensor Google Group, currently found here https://groups.google.com/forum/#!forum/libtensor Go to this forum for help in configuring and installing the library.

Bug reports should be submitted using the GitHub Issues interface.

BUILD AND INSTALL

Follow these steps to prepare, configure, build and install this library:

  1. Download the Tensor library (https://github.com/juanjosegarciaripoll/tensor) and install it. Make sure tensor-config is available in the path afterwards.

  2. If you have checked out the library using a version control system (git) then several files have to be rebuilt before moving any further. Open a terminal and enter

    ./autogen.sh

    This will use the autotools (autoconf, automake, libtool) to rebuild several files, such as Makefile.in, configure, files in the m4 directory, etc.

  3. Configure the library. This process detects existing software and chooses one or more options, such as building statically linked or shared libraries, using the Google Test library, etc. The process involves again a terminal and typing something like

    ./configure --prefix=$HOME LIBS="..." CXXFLAGS="..."

    Here we are using --prefix=$HOME to tell the configuration program that the libraries are going to be installed in our home directory, under $HOME/lib and $HOME/include, and we are passing additional options ("...") such as a list of libraries that are needed (LIBS) and flags for the C++ compiler (See below)

  4. Build, optionally check and install the library

    make make check # optional make install

OPTIONAL COMPONENTS

Testing

To test the library you will need the Google Test framework, which is available at

   http://code.google.com/p/googletest/

Documentation

Documentation is built using the Doxygen package, which is available in most Linux-type software distributions

   http://www.stack.nl/~dimitri/doxygen/

The documentation itself is built using the command "make doxygen-doc" after "make" and before "make install"