TransiFlow: A Python package for performing bifurcation analysis on fluid flow problems

TransiFlow: A Python package for performing bifurcation analysis on fluid flow problems - Published in JOSS (2026)

https://github.com/bimau/transiflow

Science Score: 89.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
  • .zenodo.json file
  • DOI references
    Found 1 DOI reference(s) in JOSS metadata
  • Academic publication links
  • Committers with academic emails
    2 of 6 committers (33.3%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
    Published in Journal of Open Source Software
Last synced: about 19 hours ago · JSON representation

Repository

Implementations and continuation of some standard computational fluid dynamics problems using the finite volume method

Basic Info
Statistics
  • Stars: 11
  • Watchers: 4
  • Forks: 13
  • Open Issues: 4
  • Releases: 2
Created about 5 years ago · Last pushed 3 days ago
Metadata Files
Readme Contributing License

README.md

TransiFlow

TransiFlow is a Python package that implements several standard test cases in computational fluid dynamics using the finite volume method. We provide an interface to compute a right-hand side, Jacobian matrix, and mass matrix for these problems, which allows us to perform time integration, or a continuation to compute a bifurcation diagram for the problem at hand.

Continuation

We provide a pseudo-arclength continuation method with adaptive arclength step size. Given a continuation parameters and a target value, the continuation can be called as follows

```Python # Define the problem parameters = {'Reynolds Number': 0, 'Problem Type': 'Lid-driven cavity'} interface = Interface(parameters, nx, ny, nz)

# Instantiate the continuation
continuation = Continuation(interface)

# Compute an initial guess
x0 = interface.vector()
x0 = continuation.newton(x0)

# Perform the continuation. x will be the state at the target Reynolds number.
x, mu = continuation.continuation(x0, 'Reynolds Number', start, target, ds)

```

Eigenvalue computation

For the computation of eigenvalues, which can be used for the detection of bifurcation points, we provide an interface to JaDaPy. JaDaPy has to be installed or included in the PYTHONPATH to use it. An example of how to perform a continuation and compute eigenvalues can be found in examples/ldc.py.

Installation

TransiFlow is available on PyPi, and can be installed by running pip install transiflow

TransiFlow is best installed in a virtual environment. We state the most common steps for creating and using a virtual environment here. Refer to the documentation for more details.

To create a virtual environment run python3 -m venv /path/to/new/virtual/environment

and to activate the virtual environment, run source /path/to/new/virtual/environment/bin/activate

After this, we can install TransiFlow from PyPi as described above, or from this source repository, to allow for easy modifications of the code. To clone the TransiFlow git repository and install TransiFlow in editable mode from the transiflow source directory, one can perform the following commands git clone https://github.com/BIMAU/transiflow.git cd transiflow pip install -e . This will also install all of the dependencies. The same can be done for JaDaPy in the same virtual environment.

Now one should be able to run an example. python examples/ldc.py

If the example fails with ldc.py:64: UserWarning: Matplotlib is currently using agg, which is a non-GUI backend, so cannot show the figure. plt.show() this means that tkinter is not available. You can either just save the image to the disk, or install e.g. python3-tk or python3-matplotlib on Debian-based Linux distributions.

Optional dependencies

To use the optional computational backends, you can install the following:

  • HYMLS: Install Trilinos with PyTrilinos enabled, then install HYMLS.
  • Epetra: Install Trilinos with PyTrilinos enabled. This is enough to use the backend, but since there is no preconditioner, this may not be very useful.
  • PETSc: Run PETSC_CONFIGURE_OPTIONS='--download-mumps --download-scalapack' pip install mpi4py petsc4py. This is enough to use the backend, but since there is no preconditioner yet, this may not be very useful.

Owner

  • Name: BIMAU
  • Login: BIMAU
  • Kind: organization

JOSS Publication

TransiFlow: A Python package for performing bifurcation analysis on fluid flow problems
Published
April 06, 2026
Volume 11, Issue 120, Page 8453
Authors
Sven Baars ORCID
Institute for Marine and Atmospheric Research (IMAU), Utrecht University, The Netherlands
David Nolte ORCID
Bernoulli Institute for Mathematics, Computer Science and Artificial Intelligence, University of Groningen, The Netherlands
Fred W. Wubs ORCID
Bernoulli Institute for Mathematics, Computer Science and Artificial Intelligence, University of Groningen, The Netherlands
Henk A. Dijkstra ORCID
Institute for Marine and Atmospheric Research (IMAU), Utrecht University, The Netherlands
Editor
Jack Atkinson ORCID
Tags
bifurcation analysis fluid dynamics parallel computing finite volume method

GitHub Events

Total
  • Release event: 1
  • Pull request event: 10
  • Fork event: 1
  • Issues event: 4
  • Issue comment event: 12
  • Push event: 12
  • Pull request review event: 2
  • Create event: 2
Last Year
  • Pull request event: 4
  • Fork event: 1
  • Issues event: 3
  • Issue comment event: 8
  • Push event: 7
  • Pull request review event: 1

Committers

Last synced: 5 months ago

All Time
  • Total Commits: 841
  • Total Committers: 6
  • Avg Commits per committer: 140.167
  • Development Distribution Score (DDS): 0.024
Past Year
  • Commits: 16
  • Committers: 2
  • Avg Commits per committer: 8.0
  • Development Distribution Score (DDS): 0.063
Top Committers
Name Email Commits
Sven Baars s****s@r****l 821
dajuno d****o@r****t 10
Lourens Veen l****n@e****l 5
Inti Pelupessy i****y 3
Jonas Thies 1****s 1
Erik t****r@r****l 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 3 months ago

All Time
  • Total issues: 4
  • Total pull requests: 31
  • Average time to close issues: about 2 months
  • Average time to close pull requests: 22 days
  • Total issue authors: 4
  • Total pull request authors: 4
  • Average comments per issue: 1.5
  • Average comments per pull request: 1.26
  • Merged pull requests: 23
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 2
  • Pull requests: 4
  • Average time to close issues: about 2 months
  • Average time to close pull requests: 16 days
  • Issue authors: 2
  • Pull request authors: 2
  • Average comments per issue: 3.0
  • Average comments per pull request: 0.25
  • Merged pull requests: 3
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • LourensVeen (1)
  • YidanXue (1)
  • cwentland0 (1)
  • dajuno (1)
Pull Request Authors
  • Sbte (24)
  • dajuno (4)
  • LourensVeen (2)
  • jatkinson1000 (1)
Top Labels
Issue Labels
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 136 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 2
  • Total maintainers: 1
pypi.org: transiflow

Implementations and continuation of some standard computational fluid dynamics problems using the finite volume method.

  • Versions: 2
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 136 Last month
Rankings
Dependent packages count: 9.6%
Average: 31.7%
Dependent repos count: 53.9%
Maintainers (1)
Last synced: 22 days ago

Dependencies

requirements.txt pypi
  • matplotlib *
  • numpy *
  • scipy *
.github/workflows/ci.yml actions
  • actions/checkout v2 composite
  • actions/setup-python v2 composite
pyproject.toml pypi
doc/requirements.txt pypi
  • matplotlib *
  • numpy *
  • scipy *
  • sphinx *
  • sphinx-rtd-theme *
  • sphinxcontrib-apidoc *