M.E.S.S. (Matrix Equation Sparse Solver)

M.E.S.S. is the successor to the LyaPack Toolbox for MATLAB. It is intended for solving large sparse matrix equations. The new version has been rewritten in large parts to fit the drastic upgrades in the Matlab releases since 2000. Additionally, new solvers for differential Riccati equations extend the functionality and many enhancements upgrade the efficiency and runtime behavior enlarging the number of unknowns that can now be computed.

Amongst other things, M.E.S.S. can solve Lyapunov and Riccati equations, and perform model reduction of systems in state space and structured differential algebraic form. M.E.S.S. has been implemented in MATLAB as well as C, with bindings also via MEX and to Python. M.E.S.S. is therefore not restricted to the solution of "academic toy problems". Several measures have been taken to enhance the computational performance of M.E.S.S. routines in both implementations. To put this into the right perspective, Lyapunov equations of order 20,000 were solved by M.E.S.S. within less than a minute on a regular laptop computer. On a 64bit computeserver algebraic Riccati equations of order 250,000 can be solved in well below an hour and solutions to Lyapunov equations for 3d multiphysics applications with roughly 500,000 DOFs have been computed in only a few hours. When using standard (dense) methods, supercomputers are needed to solve problems of this size in reasonable time.

For citations to the Software please see the CITATION.md file in the top level directory of the corresponding download or installation.

Matlab and Octave

Version 3.0, released September 22, 2023.

C Version

Version 1.0.0, released July 12, 2018.

Python Bindings

The Python package Py-M.E.S.S. can be installed in different ways.

  1. In case you build the cmess library from source, simply activate the python bits using -DPYTHON=ON and follow the instructions in the Py-M.E.S.S. section of the INSTALL.md file.
  2. If you prefer to use the Python Package Index simply do
    pip install pymess
  3. To download and install, the pymess wheels from this site, make sure you have the wheel package installed
    pip install wheel
    download the wheel for your Python version from the list below and do
    pip install pymess-1.0.0-cp??-cp??m-manylinux1_x86_64.whl
    Available wheels (manylinux1): Available wheels (manylinux_2014):

Further Information

Please send an email to mess@mpi-magdeburg.mpg.de if you have any questions about the current release plans and development.

Go to Editor View