# Overview of Open Source MPS and this ManualΒΆ

Generally, variational matrix-product states (MPS) is a method for representing quantum states in a form of a direct tensor product (See Section Definitions). Open Source MPS (OSMPS) is a computation tool developed to allow users to use MPS to run quantum simulations through classical data compression of the quantum states. OSMPS is a collection of numerical routines for performing variational matrix product state simulations. At present, OSMPS employs variational ground state and excited state search (eMPS) algorithms to find ground states and low-lying excited states of 1D Hamiltonians on finite lattices. Unitary dynamics of general time-dependent 1D Hamiltonians are simulated with a Krylov-based time-evolution algorithm (tMPS), the Time-Dependent Variational Principle (TDVP), a Local Runge-Kutta method (LRK), or a Trotter-like decomposition for nearest-neighbor Hamiltonians. OSMPS supports the use of long-range Hamiltonians both for statics and dynamics through the matrix product operator formalism. Finally, OSMPS implements the infinite size variational ground state search algorithm (iMPS) to find the ground state of general 1D Hamiltonians on an infinite lattice assuming a periodically repeating unit cell of user-specified length.

OSMPS consists of two numerical libraries. The first, MPSFortLib, is a collection of Fortran routines which perform computationally intensive calculations. The second, MPSPyLib, is a collection of Python libraries which form a front end for MPSFortLib to define, dispatch, and post-process simulations. A general user of OSMPS needs only to be familiar with how to interface with MPSFortLib through the MPSPyLib front end. The first part of the manual is dedicated to install OSMPS and perform MPS simulations through this python-based front end environment. The additional parts are devoted to providing necessary information for a deeper understanding of the underlying physics and numerical routines. The main chapters are organized as follows:

- The Sec.'s starting with Choosing Operating System (OS) contains information on choosing a compatible operating system (Sec. Choosing Operating System (OS)), instructions to install dependent packages (Sec. Installing dependent packages on Linux), and how to install OSMPS for your system (Sec. Linux Installation) how to compile and install OSMPS in a variety of environments.
- Sec. Simulation Overview overviews how MPS simulations are defined and dispatched in OSMPS.
- Sec. Examples for the openMPS provides details on the example simulation files included with OSMPS.
- Sec. Algorithms of the OpenMPS gives background on the algorithms contained in OSMPS and their associated convergence behavior.
- The developer's manual begins with part Developer's Manual. Here, the inner workings of OSMPS are discussed in greater detail. A user who is interested in modifying the source code should look there.