Skip to main content

Operator inference for data-driven, non-intrusive model reduction of dynamical systems.

Project description

License Top language Code size Issues Latest commit Documentation

Operator Inference in Python

This is a Python implementation of Operator Inference for learning projection-based polynomial reduced-order models of dynamical systems. The procedure is data-driven and non-intrusive, making it a viable candidate for model reduction of "glass-box" systems. The methodology was introduced in [1].

See the Wiki for mathematical details and API documentation. See this repository for a MATLAB implementation.

Quick Start

Installation

Install the package from the command line with the following single command (requires pip).

$ python3 -m pip install --user rom-operator-inference

See the wiki for other installation options.

Usage

Given a basis matrix Vr, snapshot data X, and snapshot time derivatives 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 time derivatives 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:


Contributors: Renee Swischuk, Shane McQuarrie, Elizabeth Qian, Boris Kramer, Karen Willcox.

References

These publications introduce, build on, or use Operator Inference. Entries are listed chronologically.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for rom-operator-inference, version 1.2.1
Filename, size File type Python version Upload date Hashes
Filename, size rom_operator_inference-1.2.1-py3-none-any.whl (55.2 kB) File type Wheel Python version py3 Upload date Hashes View
Filename, size rom_operator_inference-1.2.1.tar.gz (44.9 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page