Skip to content

Data-driven reduced order modeling for nonlinear dynamical systems

License

Notifications You must be signed in to change notification settings

mattiacenedese/SSMLearnPy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

56 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SSMLearnPy

Data-driven Reduced Order Models for Nonlinear Dynamical Systems

This package perform data-driven identification of reduced order model based on spectral submanifolds (SSMs). The required input consists of trajectory data of generic system observables close to an SSM, the SSM dimension and the methods for manifold learning and reduced dynamics fitting.

The computational steps for achieving a reduced-order model are:

  1. Embedding of the simulation/measurement data in a suitable observable space;
  2. Computation of the invariant manifold parametrization and its reduced order or latent coordinates;
  3. Identification of the reduced dynamics, with initial implementation of normal form transformation.

The code can run analytics and predictions on the reduced-order model, as shown in our examples. There are no constraints on the types of masurements, on the kind of nonlinearities or on the problem dimensions.

We have included a demonstration of SSM computation over the following examples.

  • Oscillator chain: n degrees of freedom with trajectories on or off specific SSMs;
  • Brake-Reuss beam: benchmark system for the dynamics of jointed structures, data from experimental measurements (DIC and accelerometers);
  • Vortex Shedding behind a cylinder: data from CFD simulations, projected on a low-dimensional linear subspace of the phase space;
  • Couette flow: data from CFD simulations, projected on a low-dimensional linear subspace of the phase space, for different regimes;
  • Liquid sloshing of a water tank: data from experimental measurements.
  • One degree of freedom oscillator, as a benchmark problem;

Installation

  1. Clone the project with
    git clone https://github.com/mattiacenedese/SSMLearnPy.git
  2. Enter in the project folder
    cd SSMLearnPy/
  3. (optional) Create a new conda environment and activate it:
    conda create -n ssmlearn python=3.9
    conda activate ssmlearn
  4. Install dependencies:
    pip install -r requirements.txt
  5. Install the package:
    pip install -e .
  6. You are ready.

Disclaimer

The implementation and the examples are largely based on the Matlab package SSMLearn https://github.com/mattiacenedese/SSMLearn. The Python implementation is still under active developement and therefore may contain bugs. We apologize for this and welcome any feedback regarding the package.

References

Please consider to cite this article when using this code:

Additional works appear in the references:

About

Data-driven reduced order modeling for nonlinear dynamical systems

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published