Skip to content

Commit

Permalink
Merge d9d22b6 into 967b186
Browse files Browse the repository at this point in the history
  • Loading branch information
mtezzele committed Jan 29, 2018
2 parents 967b186 + d9d22b6 commit 978db80
Show file tree
Hide file tree
Showing 6 changed files with 56 additions and 20 deletions.
11 changes: 9 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,9 +42,16 @@
* [License](#license)

## Description
**PyDMD** is a Python package that uses **Dynamic Mode Decomposition** for a data-driven model simplification based on spatiotemporal coherent structures.
**PyDMD** is a Python package that uses **Dynamic Mode Decomposition** for a data-driven model simplification based on spatiotemporal coherent structures.

Dynamic Mode Decomposition (DMD) is a model reduction algorithm developed by Schmid (see "Dynamic mode decomposition of numerical and experimental data"). Since then has emerged as a powerful tool for analyzing the dynamics of nonlinear systems. DMD relies only on the high-fidelity measurements, like experimental data and numerical simulations, so it is an equation-free algorithm. Its popularity is also due to the fact that it does not make any assumptions about the underlying system. See Kutz ("Dynamic Mode Decomposition: Data-Driven Modeling of Complex Systems") for a comprehensive overview of the algorithm and its connections to the Koopman-operator analysis, initiated in Koopman ("Hamiltonian systems and transformation in Hilbert space"), along with examples in computational fluid dynamics.

In the last years many variants arose, such as multiresolution DMD, compressed DMD, forward backward DMD, and higher order DMD among others, in order to deal with noisy data, big dataset, or spurius data for example.

In PyDMD we implemented the majority of the variants mentioned above with a user friendly interface. See the [**Examples**](#examples) section below and the [**Tutorials**](tutorials/README.md) to have an idea of the potential of this package.

The research in the field is growing both in computational fluid dynamic and in structural mechanics, due to the equation-free nature of the model.

See the [**Examples**](#examples) section below and the [**Tutorials**](tutorials/README.md) to have an idea of the potential of this package.


## Dependencies and installation
Expand Down
8 changes: 8 additions & 0 deletions docs/source/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,14 @@ Description
--------------------
PyDMD is a Python package that uses Dynamic Mode Decomposition for a data-driven model simplification based on spatiotemporal coherent structures.

Dynamic Mode Decomposition (DMD) is a model reduction algorithm developed by Schmid (see "Dynamic mode decomposition of numerical and experimental data"). Since then has emerged as a powerful tool for analyzing the dynamics of nonlinear systems. DMD relies only on the high-fidelity measurements, like experimental data and numerical simulations, so it is an equation-free algorithm. Its popularity is also due to the fact that it does not make any assumptions about the underlying system. See Kutz ("Dynamic Mode Decomposition: Data-Driven Modeling of Complex Systems") for a comprehensive overview of the algorithm and its connections to the Koopman-operator analysis, initiated in Koopman ("Hamiltonian systems and transformation in Hilbert space"), along with examples in computational fluid dynamics.

In the last years many variants arose, such as multiresolution DMD, compressed DMD, forward backward DMD, and higher order DMD among others, in order to deal with noisy data, big dataset, or spurius data for example.

In the PyDMD package we implemented in Python the majority of the variants mentioned above with a user friendly interface. We also provide many tutorials that show all the characteristics of the software, ranging from the basic use case to the most sofisticated one allowed by the package.

The research in the field is growing both in computational fluid dynamic and in structural mechanics, due to the equation-free nature of the model.


Installation
--------------------
Expand Down
11 changes: 8 additions & 3 deletions joss-paper/paper.bib
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,22 @@
%% http://bibdesk.sourceforge.net/
%% Created for Marco Tezzele at 2018-01-04 17:00:05 +0100
%% Created for Marco Tezzele at 2018-01-29 10:21:30 +0100
%% Saved with string encoding Unicode (UTF-8)
@article{schmid2010dynamic,
Author = {Schmid, Peter J},
Date-Added = {2018-01-08 16:15:45 +0000},
Date-Modified = {2018-01-08 16:15:45 +0000},
Date-Modified = {2018-01-29 09:19:01 +0000},
Doi = {10.1017/S0022112010001217},
Journal = {Journal of fluid mechanics},
Pages = {5--28},
Publisher = {Cambridge University Press},
Read = {0},
Title = {Dynamic mode decomposition of numerical and experimental data},
Volume = {656},
Year = {2010}}
Expand All @@ -33,7 +37,8 @@ @article{koopman1931hamiltonian
@book{kutz2016dynamic,
Author = {Kutz, J Nathan and Brunton, Steven L and Brunton, Bingni W and Proctor, Joshua L},
Date-Added = {2018-01-04 15:48:15 +0000},
Date-Modified = {2018-01-04 15:48:15 +0000},
Date-Modified = {2018-01-29 09:19:32 +0000},
Doi = {10.1137/1.9781611974508},
Publisher = {SIAM},
Title = {Dynamic Mode Decomposition: Data-Driven Modeling of Complex Systems},
Year = {2016}}
Expand Down
2 changes: 1 addition & 1 deletion joss-paper/paper.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ As an exmaple, we show below few snapshots collected from a toy system with some

Here we have the reconstruction of the dynamical system. You can observe the sensible reduction of the noise.

![Reconstruction](../readme/dmd-example.gif)
![Reconstruction](../readme/dmd-reconstruction.png)

# Acknowledgements
This work was partially supported by European Union Funding for Research and Innovation — Horizon 2020 Program — in the framework of European Research Council Executive Agency: H2020 ERC CoG 2015 AROMA-CFD project 681447 “Advanced Reduced Order Methods with Applications in Computational Fluid Dynamics” P.I. Gianluigi Rozza.
Expand Down
Binary file added readme/dmd-reconstruction.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
44 changes: 30 additions & 14 deletions tutorials/tutorial-2-adv-dmd.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,9 @@
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"%matplotlib inline\n",
Expand Down Expand Up @@ -56,7 +58,9 @@
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
Expand Down Expand Up @@ -101,7 +105,9 @@
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
Expand Down Expand Up @@ -130,7 +136,9 @@
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
Expand All @@ -157,7 +165,9 @@
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
Expand Down Expand Up @@ -187,7 +197,9 @@
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
Expand All @@ -209,13 +221,15 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Now the cool trick: we combine the reconstructed dataset to create an animation that shows the evolution of our system."
"Now the cool trick: we combine the reconstructed dataset to create an animation that shows the evolution of our system. We underline that you need ffmpeg installed in order to see the video."
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
Expand Down Expand Up @@ -4085,7 +4099,9 @@
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
Expand Down Expand Up @@ -4123,21 +4139,21 @@
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"display_name": "Python [Root]",
"language": "python",
"name": "python3"
"name": "Python [Root]"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.3"
"pygments_lexer": "ipython2",
"version": "2.7.10"
}
},
"nbformat": 4,
Expand Down

0 comments on commit 978db80

Please sign in to comment.