Skip to content

Commit 0905dce

Browse files
committed
Update README and references for version 1.2.
1 parent 420a3ee commit 0905dce

File tree

2 files changed

+21
-14
lines changed

2 files changed

+21
-14
lines changed

Diff for: README.md

+20-14
Original file line numberDiff line numberDiff line change
@@ -6,18 +6,15 @@
66

77
**flowTorch** - a Python library for analysis and reduced order modeling of fluid flows
88

9-
*flowTorch* is developed primarily by [@AndreWeiner](https://github.com/AndreWeiner) in the [Flow Modeling and Control group](https://www.tu-braunschweig.de/en/ism/research-workgroups/flow-modelling-and-control) led by [Richard Semaan](https://www.tu-braunschweig.de/en/ism/research/flow-modelling-and-control/staff/semaan). The development is financed by the German Research Foundation (DFG) within the research program [FOR 2895](https://www.for2895.uni-stuttgart.de/)
10-
11-
12-
> unsteady flow and interaction phenomena at high speed stall conditions
13-
14-
with the primary goal to investigate flow conditions that lead to [buffeting](https://en.wikipedia.org/wiki/Aeroelasticity#Buffeting) at airfoils in the transonic flow regime. The animation below shows the shock buffet on a NACA-0012 airfoil at *Re=10^7*, *Ma=0.75*, and 4 degrees angle of attack. The simulation was conducted in OpenFOAM; follow [this link](https://github.com/AndreWeiner/naca0012_shock_buffet) for more information about the setup.
9+
The development of flowTorch is primarily financed by the German Research Foundation (DFG) within the research program [FOR 2895](https://www.for2895.uni-stuttgart.de/) *unsteady flow and interaction phenomena at high speed stall conditions* with the primary goal to investigate flow conditions that lead to [buffeting](https://en.wikipedia.org/wiki/Aeroelasticity#Buffeting) at airfoils in the transonic flow regime.
1510

1611
https://user-images.githubusercontent.com/8482575/120886182-f2b78800-c5ec-11eb-9b93-efb9a139c431.mp4
1712

13+
The animation shows the shock buffet on a NACA-0012 airfoil at $Re=10^7$, $Ma=0.75$, and $\alpha=4^\circ$ angle of attack. The simulation was conducted with OpenFOAM; follow [this link](https://github.com/AndreWeiner/naca0012_shock_buffet) for more information about the setup.
14+
1815
## Why *flowTorch*?
1916

20-
The *flowTorch* project was started to make the analysis and modeling of fluid data **easy** and **accessible** to everyone. The library design intends to strike a balance between **usability** and **flexibility**. Instead of a monolithic, black-box analysis tool, the library offers modular components that allow assembling custom analysis and modeling workflows with ease. *flowTorch* helps to fuse data from a wide range of file formats typical for fluid flow data, for example, to compare experiments simulations. The available analysis and modeling tools are rigorously tested and demonstrated on a variety of different fluid flow datasets. Moreover, one can significantly accelerate the entire process of accessing, cleaning, analysing, and modeling fluid flow data by starting with one of the pipelines available in the *flowTorch* [documentation](https://flowmodelingcontrol.github.io/flowtorch-docs/1.1/index.html).
17+
The *flowTorch* project was started to make the analysis and modeling of fluid data **easy** and **accessible** to everyone. The library design intends to strike a balance between **usability** and **flexibility**. Instead of a monolithic, black-box analysis tool, the library offers modular components that allow assembling custom analysis and modeling workflows with ease. *flowTorch* helps to fuse data from a wide range of file formats typical for fluid flow data, for example, to compare experiments simulations. The available analysis and modeling tools are rigorously tested and demonstrated on a variety of different fluid flow datasets. Moreover, one can significantly accelerate the entire process of accessing, cleaning, analyzing, and modeling fluid flow data by starting with one of the pipelines available in the *flowTorch* [documentation](https://flowmodelingcontrol.github.io/flowtorch-docs/1.2/index.html).
2118

2219
To get a first impression of how working with *flowTorch* looks like, the code snippet below shows part of a pipeline for performing a dynamic mode decomposition (DMD) of a transient *OpenFOAM* simulation.
2320

@@ -46,17 +43,17 @@ for i, time in enumerate(window_times):
4643
4744
# perform DMD
4845
dmd = DMD(data_matrix, rank=19)
49-
# analyse dmd.modes or dmd.eigvals
46+
# analyze dmd.modes or dmd.eigvals
5047
# ...
5148
```
5249

5350
Currently, the following sub-packages are under active development. Note that some of the components are not yet available in the public release because further developments and testing are required:
5451

5552
| package | content |
5653
| :------ | :-------|
57-
|flowtorch.data | data loading, domain reduction (masked selection) |
58-
| flowtorch.analysis | algorithms for dimensionality reduction, including *proper orthogonal decomposition* (POD), *dynamic mode decomposition* (DMD), autoencoders, and variants thereof |
59-
| flowtorch.rom | reduced-order modeling using [cluster-based network models (CNM)](https://github.com/fernexda/cnm) |
54+
|flowtorch.data | data loading, domain reduction (masked selection), outlier removal |
55+
| flowtorch.analysis | algorithms for dimensionality reduction and modal analysis (e.g., SVD, DMD, MSSA) |
56+
| flowtorch.rom | reduced-order modeling (CNM) |
6057

6158
*flowTorch* uses the [PyTorch](https://github.com/pytorch/pytorch) library as a backend for data structures, data types, and linear algebra operations on CPU and GPU. Some cool features of *flowTorch* include:
6259

@@ -69,12 +66,13 @@ Currently, the following sub-packages are under active development. Note that so
6966

7067
*flowTorch* can be also used easily in combination with existing Python packages for analysis and reduced-order modeling thanks to the interoperability between PyTorch and NumPy. Great examples are (by no means a comprehensive list):
7168

72-
- [PyDMD](https://github.com/mathLab/PyDMD) - Python Dynamic Mode Decomposition
69+
- [PyDMD](https://github.com/mathLab/PyDMD) - Python dynamic mode decomposition
7370
- [PySINDy](https://github.com/dynamicslab/pysindy) - sparse identification of nonlinear dynamical systems from data
71+
- [PyKoopman](https://github.com/dynamicslab/pykoopman) - data-driven approximations of the Koopman operator
7472

7573
## Getting started
7674

77-
The easiest way to install *flowTorch* is as follows:
75+
The easiest way to install *flowTorch* is as follows (use the development branch *aweiner* for access to the latest developments):
7876
```
7977
# install via pip
8078
pip3 install git+https://github.com/FlowModelingControl/flowtorch
@@ -92,8 +90,13 @@ and install the dependencies listed in *requirements.txt*:
9290
```
9391
pip3 install -r requirements.txt
9492
```
93+
Installing all flowTorch dependencies requires a significant amount of disk space. When using isolated subpackages, one can also install the dependencies manually (by trial-and-error). To load the library package from within a Python script file or a Jupyter notebook, add the path to the cloned repository as follows:
94+
```
95+
import sys
96+
sys.path.insert(0, "/path/to/repository")
97+
```
9598

96-
To get an overview of what *flowTorch* can do for you, have a look at the [online documentation](https://flowmodelingcontrol.github.io/flowtorch-docs/1.1/index.html). The examples presented in the online documentation are also contained in this repository. In fact, the documentation is a static version of several [Jupyter labs](https://jupyter.org/) with start-to-end analyses. If you are interested in an interactive version of one particular example, navigate to `./docs/source/notebooks` and run `jupyter lab`. Note that to execute some of the notebooks, the **corresponding datasets are required**. The datasets can be downloaded [here](https://cloud.tu-braunschweig.de/s/sJYEfzFG7yDg3QT) (~2.6GB). If the data are only required for unit testing, a reduced dataset may be downloaded [here](https://cloud.tu-braunschweig.de/s/b9xJ7XSHMbdKwxH) (~411MB). Download the data into a directory of your choice and navigate into that directory. To extract the archive, run:
99+
To get an overview of what *flowTorch* can do for you, have a look at the [online documentation](https://flowmodelingcontrol.github.io/flowtorch-docs/1.2/index.html). The examples presented in the online documentation are also contained in this repository. In fact, the documentation is a static version of several [Jupyter labs](https://jupyter.org/) with start-to-end analyses. If you are interested in an interactive version of one particular example, navigate to `./docs/source/notebooks` and run `jupyter lab`. Note that to execute some of the notebooks, the **corresponding datasets are required**. The datasets can be downloaded [here](https://cloud.tu-braunschweig.de/s/sJYEfzFG7yDg3QT) (~2.6GB). If the data are only required for unit testing, a reduced dataset may be downloaded [here](https://cloud.tu-braunschweig.de/s/b9xJ7XSHMbdKwxH) (~411MB). Download the data into a directory of your choice and navigate into that directory. To extract the archive, run:
97100
```
98101
# full dataset
99102
tar xzf datasets_29_10_2021.tar.gz
@@ -139,6 +142,9 @@ cd ParaView-5.9.1-MPI-Linux-Python3.8-64bit/
139142
echo export PATH="\$PATH:$(pwd)/bin" >> ~/.bashrc
140143
echo export PYTHONPATH="\$PYTHONPATH:$(pwd)/lib/python3.8/site-packages" >> ~/.bashrc
141144
```
145+
In case of version conflicts between Python packages coming with ParaView and local versions of these packages, the following options exist:
146+
1. go to your ParaView installation and manually delete or rename the affected packages; the packages are located at */path/to/ParaView/lib/python3.8/site-packages*
147+
2. use *pvpython*, a modified Python interpreter shipped with ParaView and add a virtual environment containing flowTorch but not the conflicting packages (see [Using pvpython and virtualenv](https://www.kitware.com/using-pvpython-and-virtualenv/))
142148

143149
## Development
144150
### Documentation

Diff for: references.md

+1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
- A. Weiner, R. Semaan: Backpropagation and gradient descent for an optimized dynamic mode decomposition, ArXiv, 2023, [https://arxiv.org/abs/2312.12928](https://arxiv.org/abs/2312.12928)
12
- N. Rathje, P. Ströer, A. Weiner, T. Knopp and R. Radespiel: Dynamics of a strake vortex interaction with the turbulent boundary layer of a two-element airfoil, AIAA 2023-4438. AIAA AVIATION 2023 Forum. June 2023, [https://doi.org/10.2514/6.2023-4438](https://doi.org/10.2514/6.2023-4438)
23
- R. Zahn, A. Weiner and C. Breitsamter: Prediction of wing buffet pressure loads using a convolutional and recurrent neural network framework. CEAS Aeronautical Journal, 2023, [https://doi.org/10.1007/s13272-023-00641-6](https://doi.org/10.1007/s13272-023-00641-6)
34
- J. Kleinert, J. Stober and T. Lutz: Numerical simulation of wake interactions on a tandem wing configuration in high-speed stall conditions. CEAS Aeronautical Journal 14, 171–186, 2023, [https://doi.org/10.1007/s13272-022-00634-x](https://doi.org/10.1007/s13272-022-00634-x)

0 commit comments

Comments
 (0)