![emgr logo](emgr.png) emgr - EMpirical GRamian Framework ========================================================= ![code meta-data.](https://img.shields.io/badge/code_meta--data-%E2%9C%93-brightgreen.svg) ![zenodo listed.](https://zenodo.org/badge/doi/10.5281/zenodo.2577980.png) ![matlab compatible](https://img.shields.io/badge/matlab-compatible-lightgrey.svg) * emgr - EMpirical GRamian Framework ([gramian.de](https://gramian.de)) * version: **5.7** (2019-02-26) * by: Christian Himpe ([0000-0003-2194-6754](https://orcid.org/0000-0003-2194-6754)) * under: [BSD-2-Clause](https://opensource.org/licenses/BSD-2-Clause) License * summary: Empirical Gramians for (model reduction of) input-output systems. ## Scope * Model Reduction / Model Order Reduction (MOR) * parametric Model Order Reduction (pMOR) / Robust Reduction * nonlinear Model Order Reduction (nMOR) * Parameter Identification / Parameter Reduction * **Combined State and Parameter Reduction** (Combined Reduction) * Sensitivity Analysis * Decentralized Control * Optimal Sensor Placement / Optimal Actuator Placement * Nonlinearity Quantification ## Empirical Gramians (Empirical Gramian Matrix Types) * Empirical Controllability Gramian * Empirical Observability Gramian * Empirical Cross Gramian * Empirical Linear Cross Gramian * Empirical Sensitivity Gramian * Empirical Augmented Observability Gramian (Empirical Identifiability Gramian) * Empirical Joint Gramian (Empirical Cross-Identifiability Gramian) ### Features * Interfaces for: * custom solvers / integrators * custom inner products / dot products / kernels / pseudo-kernels * distributed / partitioned / low-rank cross Gramian * Non-symmetric cross gramian option for: * Empirical Cross Gramian * Empirical Linear Cross Gramian * Empirical Joint Gramian * Compatible with: * GNU Octave * Mathworks MATLAB * Vectorized and parallelizable * matrix transformation as bulk operations * `parfor` hints highlighting outer-most parallelizable loops * Functional design ### Algorithm For a mathematical summary and technical documentation of the empirical Gramian framework detailing all features and capabilities see: * C. Himpe. "[emgr -- the Empirical Gramian Framework](https://doi.org/10.3390/a11070091)". Algorithms 11(7): 91, 2018. ## Compatibility * GNU Octave >=4.2.0 (available in Ubuntu **18.04** LTS repositories) * Mathworks MATLAB >=2016b (use `emgr_lgc.m` for earlier version) * Python 2.X and 3.X ## Citation * C. Himpe (2019). emgr -- EMpirical GRamian Framework (Version 5.7) [Software]. https://gramian.de doi:[10.5281/zenodo.2577980](https://doi.org/10.5281/zenodo.2577980) ## Getting Started Run a minimal example in a Matlab interpreter like OCTAVE or MATLAB: ``` RUNME ``` To run all tests use: ``` testall ``` To run demos use: ``` examples(id) % with id one of 'hnm', 'isp', 'fss', 'nrc', 'rqo', 'lte', 'fbc', 'qso' ``` ## Files and Folders [`README.md`](README.md) Basic Information [`CODE`](CODE) Meta Information [`CITATION`](CITATION) Citation Information [`LICENSE`](LICENSE) License Information [`CHANGELOG`](CHANGELOG) Version Information [`RUNME.m`](RUNME.m) Minimal Code Example [`emgr.m`](emgr.m) Empirical Gramian Framework (main file, crc32:`52e9f192`) [`emgr_oct.m`](emgr_oct.m) Empirical Gramian Framework (Optional Octave variant) [`emgr_lgc.m`](emgr_lgc.m) Empirical Gramian Framework (Pre 2016b Matlab variant) [`curios.m`](curios.m) Clearing Up Reducibility of Input-Output Systems (simple frontend) [`emgrtest.m`](emgrtest.m) System Tests [`moretests.m`](moretests.m) Component Tests [`examples.m`](examples.m) Run demo (sample applications) * `'hnm'` Hyperbolic Network Model * `'isp'` Inverse Sylvester Procedure * `'fss'` Flexible Space Structures * `'nrc'` Nonlinear Resistor-Capacitor Cascade * `'rqo'` Random Diagonal System with Quadratic Output * `'lte'` Linear Transport Equation * `'fbc'` Five Body Choreography * `'qso'` Quasi-Stable Orbits Inside Black Holes [`testobj.m`](testobj.m) State-Space Object Tests [`emgr-ref.pdf`](emgr-ref.pdf) emgr reference cheat sheet [`py/emgr.py`](py/emgr.py) Empirical Gramian Framework (Python variant) [`py/moretests.py`](moretests.m) Component Tests (Python variant) ## Documentation Table-of-Contents ### [Summary](https://gramian.de/#summary) ### [Scope](https://gramian.de/#scope) ### [Download](https://gramian.de/#download) ### [License](https://gramian.de/#license) ### [Disclaimer](https://gramian.de/#disclaimer) ### [Usage](https://gramian.de/#usage) ### [Arguments](https://gramian.de/#arguments) ### [Empirical Gramian Types](https://gramian.de/#gramians) ### [Option Flags](https://gramian.de/#options) ### [Custom Solver](https://gramian.de/#solver) ### [Utility](https://gramian.de/#extra) ### [Tests](https://gramian.de/#tests) ### [Demos](https://gramian.de/#demos) ### [About](https://gramian.de/#about) ### [References](https://gramian.de/#references) ### [Contact](https://gramian.de/#contact) ### [Links](https://gramian.de/#links) ### [Notes](https://gramian.de/#notes) ### [Troubleshooting](https://gramian.de/#trouble) ## More information at: https://gramian.de Follow [@modelreduction](https://twitter.com/modelreduction) for `emgr` news.