Operator inference for data-driven, non-intrusive model reduction of dynamical systems.
Project description
Operator Inference
This is a Python implementation of Operator Inference for constructing projection-based reduced-order models of dynamical systems with a polynomial form. The procedure is data-driven and non-intrusive, making it a viable candidate for model reduction of black-box or complex systems. The methodology was introduced in [1]. See References for more papers that use or build on Operator Inference.
Contributors: Renee Swischuk, Shane McQuarrie, Elizabeth Qian, Boris Kramer, Karen Willcox.
See this repository for a MATLAB implementation and DOCUMENTATION.md for the code documentation.
Problem Statement
Consider the (possibly nonlinear) system of n ordinary differential equations with state variable x, input (control) variable u, and independent variable t:
where
This system is called the full-order model (FOM). If n is large, as it often is in high-consequence engineering applications, it is computationally expensive to numerically solve the FOM. This package provides tools for constructing a reduced-order model (ROM) that is up to quadratic in the state x with optional linear control inputs u. The procedure is data-driven, non-intrusive, and relatively inexpensive. In the most general case, the code can construct and solve a reduced-order system with the polynomial form
where now
This reduced low-dimensional system approximates the original high-dimensional system, but it is much easier (faster) to solve because of its low dimension r << n.
See DETAILS.md for more mathematical details and an index of notation.
Quick Start
Installation
Install from the command line with the following single command (requires pip
).
$ pip3 install rom-operator-inference
Usage
Given a linear basis Vr
, snapshot data X
, and snapshot velocities Xdot
, the following code learns a reduced model for a problem of the form dx/dt = c + Ax(t), then solves the reduced system for 0 ≤ t ≤ 1.
import numpy as np
import rom_operator_inference as roi
# Define a model of the form dx / dt = c + Ax(t).
>>> model = roi.InferredContinuousROM(modelform="cA")
# Fit the model to snapshot data X, the snapshot derivative Xdot,
# and the linear basis Vr by solving for the operators c_ and A_.
>>> model.fit(Vr, X, Xdot)
# Simulate the learned model over the time domain [0,1] with 100 timesteps.
>>> t = np.linspace(0, 1, 100)
>>> X_ROM = model.predict(X[:,0], t)
Examples
The examples/
folder contains scripts and notebooks that set up and run several examples:
examples/tutorial.ipynb
: A walkthrough of a very simple heat equation example.examples/heat_1D.ipynb
: A more complicated one-dimensional heat equation example [1].examples/data_driven_heat.ipynb
: A purely data-driven example using data generated from a one-dimensional heat equation [4].
(More examples coming)
References
-
[1] Peherstorfer, B. and Willcox, K., Data-driven operator inference for non-intrusive projection-based model reduction. Computer Methods in Applied Mechanics and Engineering, Vol. 306, pp. 196-215, 2016. (Download)
BibTeX
@article{Peherstorfer16DataDriven, title = {Data-driven operator inference for nonintrusive projection-based model reduction}, author = {Peherstorfer, B. and Willcox, K.}, journal = {Computer Methods in Applied Mechanics and Engineering}, volume = {306}, pages = {196--215}, year = {2016}, publisher = {Elsevier} }
-
[2] Qian, E., Kramer, B., Marques, A., and Willcox, K., Transform & Learn: A data-driven approach to nonlinear model reduction. In the AIAA Aviation 2019 Forum & Exhibition, Dallas, TX, June 2019. (Download)
BibTeX
@inbook{QKMW2019aviation, title = {Transform \& Learn: A data-driven approach to nonlinear model reduction}, author = {Qian, E. and Kramer, B. and Marques, A. N. and Willcox, K. E.}, booktitle = {AIAA Aviation 2019 Forum}, doi = {10.2514/6.2019-3707}, URL = {https://arc.aiaa.org/doi/abs/10.2514/6.2019-3707}, eprint = {https://arc.aiaa.org/doi/pdf/10.2514/6.2019-3707} }
-
[3] Swischuk, R., Mainini, L., Peherstorfer, B., and Willcox, K., Projection-based model reduction: Formulations for physics-based machine learning. Computers & Fluids, Vol. 179, pp. 704-717, 2019. (Download)
BibTeX
@article{swischuk2019projection, title = {Projection-based model reduction: Formulations for physics-based machine learning}, author = {Swischuk, R. and Mainini, L. and Peherstorfer, B. and Willcox, K.}, journal = {Computers \& Fluids}, volume = {179}, pages = {704--717}, year = {2019}, publisher = {Elsevier} }
-
[4] Swischuk, R., Physics-based machine learning and data-driven reduced-order modeling. Master's thesis, Massachusetts Institute of Technology, 2019. (Download)
BibTeX
@phdthesis{swischuk2019physics, title = {Physics-based machine learning and data-driven reduced-order modeling}, author = {Swischuk, Renee}, year = {2019}, school = {Massachusetts Institute of Technology} }
-
[5] Peherstorfer, B. Sampling low-dimensional Markovian dynamics for pre-asymptotically recovering reduced models from data with operator inference. arXiv:1908.11233. (Download)
BibTeX
@article{peherstorfer2019sampling, title = {Sampling low-dimensional Markovian dynamics for pre-asymptotically recovering reduced models from data with operator inference}, author = {Peherstorfer, Benjamin}, journal = {arXiv preprint arXiv:1908.11233}, year = {2019} }
-
[6] Swischuk, R., Kramer, B., Huang, C., and Willcox, K., Learning physics-based reduced-order models for a single-injector combustion process. AIAA Journal, published online March 2020. Also in Proceedings of 2020 AIAA SciTech Forum & Exhibition, Orlando FL, January, 2020. Also Oden Institute Report 19-13. (Download)
BibTeX
@article{SKHW2019_learning_ROMs_combustor, title = {Learning physics-based reduced-order models for a single-injector combustion process}, author = {Swischuk, R. and Kramer, B. and Huang, C. and Willcox, K.}, journal = {AIAA Journal}, volume = {}, pages = {Published Online: 19 Mar 2020}, url = {}, year = {2020} }
-
[7] Qian, E., Kramer, B., Peherstorfer, B., and Willcox, K. Lift & Learn: Physics-informed machine learning for large-scale nonlinear dynamical systems. Physica D: Nonlinear Phenomena, Volume 406, May 2020, 132401. (Download)
BibTeX
@article{QKPW2020_lift_and_learn, title = {Lift \& Learn: Physics-informed machine learning for large-scale nonlinear dynamical systems.}, author = {Qian, E. and Kramer, B. and Peherstorfer, B. and Willcox, K.}, journal = {Physica {D}: {N}onlinear {P}henomena}, volume = {406}, pages = {132401}, url = {https://doi.org/10.1016/j.physd.2020.132401}, year = {2020} }
-
[8] Benner, P., Goyal, P., Kramer, B., Peherstorfer, B., and Willcox, K. Operator inference for non-intrusive model reduction of systems with non-polynomial nonlinear terms. arXiv:2002.09726. Also Oden Institute Report 20-04. (Download)
BibTeX
@article{benner2020operator, title = {Operator inference for non-intrusive model reduction of systems with non-polynomial nonlinear terms}, author = {Benner, P. and Goyal, P. and Kramer, B. and Peherstorfer, B. and Willcox, K.}, journal = {arXiv preprint arXiv:2002.09726}, year = {2020} }
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for rom_operator_inference-1.0.4.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | d1b46754316fd25ef46dbd0a69f08756ae72cc4397b82e553a01521a01d2633c |
|
MD5 | 1e4d99bc96d5580f36d05eb6c569de87 |
|
BLAKE2b-256 | a864406430e6876ec30c199489a2f51e20260417ac5657f965cc6d666b87ee53 |
Hashes for rom_operator_inference-1.0.4-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3513ef646d81d4ea1cea6be693861865e086cdd76cc7f98b0692ca0362c0107b |
|
MD5 | 3571ae3716533551f9945f623a8a1ffc |
|
BLAKE2b-256 | 2d1c689e640de35776032ee40cbcb610b675ab11ea448eed58de2edcee4f8bda |