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.

Source Distribution

rom_operator_inference-1.2.1.tar.gz (44.9 kB view hashes)

Uploaded Source

Built Distribution

rom_operator_inference-1.2.1-py3-none-any.whl (55.2 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page