mmess
M-M.E.S.S. - The Matrix Equation Sparse Solver Library for MATLAB and Octave
M-M.E.S.S. provides low-rank solvers for large-scale symmetric matrix equations with sparse or sparse + low-rank coefficients. The main focus is on differential and algebraic Riccati equations appearing in control and model order reduction, as well as algebraic Lyapunov equations for, e.g., balanced truncation.
The underlying dynamical system may be of first or second order, and structured proper differential algebraic equations (DAEs) that allow for implicit index reduction are also supported.
The solvers philosophy is to always work on the implicitly linearized (for second order systems) and/or implicitly projected (in the DAE case) matrix equations. That means the implicit Lyapunov or Riccati equation is always of the form known for a standard first order ODE, that may have a non identity but invertible E matrix.
See help mess
for an overview of supported matrix equations and
system structures.
Further, M-M.E.S.S. provides functions for Balanced Truncation and (tangential) iterative rational Krylov algorithm (IRKA) for model order reduction (MOR) of first order state space systems and some examples demonstrate the use of the algorithms in MOR of second order systems and DAEs.
In close relation to the predecessor LyaPack, we use user supplied
functions (usfs) that implement the actions of the system matrices E and A in
multiplication and (shifted) solves. We provide those functions for
standard state space systems, second order systems, structured DAEs of
index 1 and 2, as well as second order DAEs of index 1, 2 and 3. For
more information on usfs see help mess_usfs
.
Copyright 2009-2023 by Jens Saak, Martin Koehler, Peter Benner (MPI Magdeburg)
The software uses a BSD 2-Clause license. See LICENSE.md and COPYING for details.
Installation Instructions
See INSTALL.md for details.
Getting started
Change to the installation directory, run mess_path
and check help mess
for the basic information about supported matrix equations and core solvers.
In case you need functionality beyond that of mess_lyap
and mess_care
,
consult the demonstration routines in the DEMOS folder for example use
cases of the other and underlying solvers.
Contact
Citation
See CITATION.md for details about citing the software.
Further reading
- P. Benner, M. Koehler, J. Saak, Matrix equations, sparse solvers: M-M.E.S.S.-2.0.1 – philosophy, features and application for (parametric) model order reduction, in: P. Benner, T. Breiten, H. Faßbender, M. Hinze, T. Stykel, R. Zimmermann (Eds.), Model Reduction of Complex Dynamical Systems, Vol. 171 of International Series of Numerical Mathematics, Birkhäuser, Cham, 2021, pp. 369–392. https://doi.org/10.1007/978-3-030-72983-7_18.
- J. Saak, M. Voigt, Model reduction of constrained mechanical systems in M-M.E.S.S., IFAC-PapersOnLine 9th Vienna International Conference on Mathematical Modelling MATHMOD 2018, Vienna, Austria, 21–23 February 2018 51 (2) (2018) 661–666. https://doi.org/10.1016/j.ifacol.2018.03.112.
- P. Benner, J. Saak, Efficient solution of large scale Lyapunov and Riccati equations arising in model order reduction problems, Proc. Appl. Math. Mech. 8 (1) (2008) 10085–10088. https://doi.org/10.1002/pamm.200810085.
History
- 2000 LyaPack: M-M.E.S.S. originates in the work of Penzl and especially his software package LyaPack.
- 2003-2007 LyaPack 1.1 - 1.8 authored by Jens Saak improve the handling of non-identity E matrices.
- 2008 the first conference talk about the new project labeled M.E.S.S. is held at GAMM 2008 in Bremen (Germany).
- 2016 M-M.E.S.S.-1.0 and 1.0.1 first public releases of the greatly rewritten toolbox.
- 2019 M-M.E.S.S.-2.0 adds differential Riccati equations.
- 2020 M-M.E.S.S.-2.0.1 fixes several bugs and adds improvements for MOR.
- 2021 M-M.E.S.S.-2.1 adds Lyapunov plus positive equations and BT of bilinear systems.
- 2022 M-M.E.S.S.-2.2 fixes several smaller bugs and adds improvements to code style and performance, and improves documentation
-
M-M.E.S.S.-3.0 adds
- Krylov-projection-based solvers
- sparse-dense Sylvester equations
Roadmap
-
M-M.E.S.S.-3.x
- bilinear control problems
- DAE usfs restructuring
- consistency and efficiency improvements
- code refactoring to avoid code duplication
-
M-M.E.S.S.-4.0
- sparse Sylvester equations
- non-symmetric AREs
Cite As
Saak, Jens, et al. M-M.E.S.S. - The Matrix Equation Sparse Solver Library. Zenodo, 2022, doi:10.5281/ZENODO.632897.
MATLAB Release Compatibility
Platform Compatibility
Windows macOS LinuxTags
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!Discover Live Editor
Create scripts with code, output, and formatted text in a single executable document.
DEMOS/Bilinear
DEMOS/DAE1
DEMOS/DAE2
DEMOS/DAE2/private
DEMOS/DAE2_SO
DEMOS/DAE3_SO
DEMOS/FDM
DEMOS/LTV
DEMOS/Logger
DEMOS/RI
DEMOS/Rail
DEMOS/TripleChain
DEMOS/TripleChain/private
DEMOS/models/BIPS
DEMOS/models/Data_Rail
DEMOS/models/Data_Rail/private
DEMOS/models/FDM_2D
DEMOS/models/NSE
DEMOS/models/SingleChainMSD
DEMOS/models/TripleChain
DEMOS/models/ms_ind3_by_t_stykel
DEMOS/models/stokes
doc
helpers
logger
logger/private
mat-eqn-solvers
mat-eqn-solvers/private
mor
mor/private
norms
norms/private
private
shifts
usfs
usfs/dae_1
usfs/dae_1/private
usfs/dae_1_so
usfs/dae_2
usfs/dae_2/private
usfs/dae_2_so
usfs/dae_3_so
usfs/default
usfs/default/private
usfs/default_iter
usfs/so_1
usfs/so_2
usfs/so_iter
usfs/state_space_transformed_default
usfs/state_space_transformed_default/private
doc
Version | Published | Release Notes | |
---|---|---|---|
3.0.0.0 | See release notes for this release on GitHub: https://github.com/mpimd-csc/mmess/releases/tag/v3.0 |
|
|
2.2 |