https://github.com/gramian/emgr
Raw File
Tip revision: b4223a10b126a5e25d37cb23d11d04a5754ca74c authored by Christian on 26 February 2019, 13:54:25 UTC
emgr v5.7
Tip revision: b4223a1
README.md
![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.
back to top