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.
- M-M.E.S.S.-3.0 Matlab Toolbox file
(recommended for Matlab R2014a and above; double-click the file in Matlab’s file browser) - M-M.E.S.S.-3.0 Octave package
(recommended for Octave 5.1 and above; run pkg install mess-3.0.tar.gz) - M-M.E.S.S.-3.0 Zip Archive
- (unzip and check INSTALL.md)
- M-M.E.S.S. public git access
- Additional NSE model data Zip Archive (800 MB)
C Version
Version 1.0.0, released July 12, 2018.
- Source Code: cmess-1.0.0.tar.gz or cmess-1.0.0.zip
- Documentation (HTML, autogenerated): cmess-html-doc-1.0.0.tar.gz
- Documentation (PDF, autogenerated): cmess-refman-1.0.0.pdf
- Prebuilt for Ubuntu 16.04 (x86-64): cmess-1.0.0-ubuntu1604-amd64.tar.gz
- Prebuilt for Ubuntu 18.04 (x86-64): cmess-1.0.0-ubuntu1804-amd64.tar.gz
- Public Git Repository.
Python Bindings
The Python package Py-M.E.S.S. can be installed in different ways.
- 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.
- If you prefer to use the Python Package Index simply do
pip install pymess - 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):- Python 2.7 pymess-1.0.0-cp27-cp27m-manylinux1_x86_64.whl
- Python 3.4 pymess-1.0.0-cp34-cp34m-manylinux1_x86_64.whl
- Python 3.5 pymess-1.0.0-cp35-cp35m-manylinux1_x86_64.whl
- Python 3.6 pymess-1.0.0-cp36-cp36m-manylinux1_x86_64.whl
- Python 3.7 pymess-1.0.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Python 3.8 pymess-1.0.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Python 3.9 pymess-1.0.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Python 3.10 pymess-1.0.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Further Information
Please send an email to mess@mpi-magdeburg.mpg.de
if you have any questions about the current release plans and development.