Skip to content
William Jussiau edited this page Mar 21, 2025 · 35 revisions

Welcome to the 🌀FlowControl Wiki! [UNDER CONSTRUCTION]

Contents of the Wiki

  1. Home: homepage of the project
  2. Getting started: installation tips
  3. Code: basics: basic code description and usage
  4. Code: advanced: additional code information and advanced usage
  5. Code: utility: utility functions surrounding the code
  6. Numerical details: details on the implementation
  7. Third-party tools: some third-party tools used for mesh generation and visualization
  8. Examples: showcase of two examples
  9. FAQ: frequently asked questions and debug ideas

FlowControl

The FlowControl toolbox is an open-source toolbox addressing the simulation and control of 2D incompressible flows. It aims at providing a user-friendly way to simulate flows with actuators and sensors, a possibility to readily define new use-cases and support for operators & frequency responses computations.

This page contains introductory information about the toolbox. For more in-depth content, feel free to consult the Wiki.

Animated GIF featuring the stabilization of the flow past a cylinder at Re=100. The self-sustained, periodic oscillations of the flow (known as vortex shedding) gradually disappear as the controller actuates the flow. The feedback controller uses a sensor in the wake and actuates the flow on the poles of the cylinder. More details are given below.

The toolbox is shipped with two benchmarks for flow control and allows for easy implementation of new cases.

Animated GIF featuring the stabilization of the flow over an open cavity at Re=7500. The self-sustained, quasi-periodic oscillations of the flow gradually disappear as the controller actuates the flow. The feedback controller uses a wall stress sensor on the wall after the cavity, and actuates the flow with a volume force upstream of the cavity. More details are given below.

The core of the toolbox is in Python and relies on FEniCS 2019.1.0 as a backend.

FEniCS Project banner, featuring a flame meshed with colorful elements and the text fenics project next to it.

What the toolbox offers

Simulation

  • By default, the toolbox integrates in time the Incompressible Navier-Stokes equations. For a 2D flow defined by its velocity ${v}({x}, t) = [v_1({x}, t), v_2({x}, t)]$ and pressure $p({x}, t)$ inside a domain ${x} = [x_1, x_2] \in\Omega$, the equations read as follows:
$$\left\{ \begin{aligned} & \frac{\partial {v}}{\partial t} + ({v} \cdot \nabla){v} = -\nabla p + \frac{1}{Re}\nabla^2 {v} \\\ & \nabla \cdot {v} = 0 \end{aligned} \right.$$
  • The only numerical parameter of the non-dimensional equations, the Reynolds number defined as $Re = \frac{UL}{\nu}$, balances convective and viscous terms.

Actuation and sensing

The toolbox allows the user to define actuators for forcing and sensors to probe the flow. It also provides utility for controller design and implementation.

Two benchmarks

Two canonical oscillator flows often used for control are shipped with the current code.

Use-case Description
Cylinder Flow past a cylinder at Re=100
Cavity Flow over an open cavity at Re=7500

Examples of use of the toolbox

The following articles were based on previous versions of the code:

Roadmap

The current roadmap is as follows:

  • Complete the documentation 📖,
  • Refactor and release additional control-related tools,
  • Update the project to FEniCSx,
  • Sort and check all utility functions,
  • Implement general form for operator computation,
  • Docker/venv/pip.

Contact

📫 william.jussiau@gmail.com

Clone this wiki locally