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 details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

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

Uploaded Python 3

File details

Details for the file rom_operator_inference-1.2.1.tar.gz.

File metadata

  • Download URL: rom_operator_inference-1.2.1.tar.gz
  • Upload date:
  • Size: 44.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/0.0.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.6.0.post20200814 requests-toolbelt/0.9.1 tqdm/4.49.0 CPython/3.7.9

File hashes

Hashes for rom_operator_inference-1.2.1.tar.gz
Algorithm Hash digest
SHA256 a0ede1cfc6674bef6e156bc035e6c37ee03cc3457830243fcdf3e90a54df4cae
MD5 a8ad773974d24311a50fa5f3ec17dc36
BLAKE2b-256 80192da775f136094a4ffbec9bd1c05d02a97e7ede9c8e4367b5bd0312edba96

See more details on using hashes here.

File details

Details for the file rom_operator_inference-1.2.1-py3-none-any.whl.

File metadata

  • Download URL: rom_operator_inference-1.2.1-py3-none-any.whl
  • Upload date:
  • Size: 55.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/0.0.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.6.0.post20200814 requests-toolbelt/0.9.1 tqdm/4.49.0 CPython/3.7.9

File hashes

Hashes for rom_operator_inference-1.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 85f1fb6b841bd0c183d17bfdacd5e4abdf8a1975a41fc83afeb115ad3c97da44
MD5 385e6309e59980912c05c27b5cf87f1a
BLAKE2b-256 c8819b78dc6d47e3bcd0f3cd23ece6acf6fa61c0efc25d07d46473fd64569c56

See more details on using hashes here.

Supported by

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