CERFACS CFD team is developing a software dedicated to the numerical simulation of unsteady turbulence for reacting flows called AVBP. PyAVBP is a wizard, i.e. a set of helper tools, for AVBP setups through Python.

The target audience is :

  • end users : Industrials or Academics non-experts in AVBP. Command Line Interfaces and Graphical Users Interfaces are provided to your terminal
  • developers : people needing to interact with AVBP setups and runs via Python language. Do not go there if you want to avoid python!
Installation & documentation

PyAVBP is not open-source, hosted on the internal Cerfacs Gitlab forge. Ask the credentials to the COOP team coop@cerfacs.fr, and git clone the PyAVBP repository to your machine. Then you may type,

python setup.py install

for a classical installation, or for developers :

python setup.py develop

You can read more on COOP tools installation on the COOP tools installation guide

The documentation linked to the repository can be found here. You will however find a lot of dedicated tutorials on the COOP blog. Use the Search field with the tag “pyavbp”.

PyAVBP can help you to read or write files coming with AVBP simulation, such as : - the initial solution - the solutbound - the run_param and databases. - the binary temporal files. - the ways to create complex setups with or without the GUI.


Use the CLI to see what options are available in your terminal.

pyavbpis the main command.

Usage: pyavbp [OPTIONS] COMMAND [ARGS]...

  ---------------    PYAVBP  --------------------


  You are now using the TENTATIVE Command line interface of PyAVBP package.
  a Python3 helper for the setup of AVBP software, created at CERFACS

  This is a python package currently installed in your python environement.
  See the full documentation on nitrox.

  --help  Show this message and exit.

  bin-head            Convert binary temporal file to CSV format
  bin-join            join AVBP temporal files
  bin-plot            Plot the temporal evolution of a run.
  bin-read            Show variables stored in temporal binary file.
  cmp-asciibound      Circular packing comparison of two asciibound files.
  cmp-runparam        Circular packing comparison of two run.param files.
  gui                 Startup one of the GUIs
  solut-from-average  Convert ave to inst solution.
  solut-gasout        Apply GASOUT actions to a CFD field.
  tree-asciibound     Circular packing of an asciibound
  tree-runparam       Circular packing of a run_params

You can explore yourself each option un a UNIX fashion. For example, calling Graphical user interfaces is pyavbp gui

>pyavbp gui --help
Usage: pyavbp gui [OPTIONS] {combu|avtp|tavbp|explo}

  Startup one of the GUIs

  -f, --file TEXT  Project to open. (.yml)
  --help           Show this message and exit.


Concerning Graphical User Interfaces

PyAVBP is also the base of a GUI (Graphical User Interface) created through OpenTEA, another COOP package. With this package, the creation of a full AVBP setup is even simpler.

AVBP's GUI based on PyAVBP

Do remember that some GUIs involve confidential features. For example, the SAFRAN GUIs are hosted by the outilsMetiersSAFRAN repository.

Frequently asked questions

How can I contribute to PyAVBP?

Simply work on a Feature Branch in your GIT. Do ask us first before you start, maybe this was developed elsewhere! At the end, we will make a code review together with the team and you will be allowed to merge your feature eventually.

Why PyAVBP is not part of AVBP repository?
  1. Intrusive constraints for AVBP : PyAVBP is a python3-only package, with a systematic test coverage (slowly increasing, >60% in Fev 2021). Contributions to PyAVBP are not supervised by an integrator, and comply to a very strict semantic versioning. These constraints cannot be imposed on a 70 person team.

  2. No synchronisation needed PyAVBP must handle several versions of AVBP at the same time, the need of synchronisation is therefore not relevant.

  3. Simplifying git work PyAVBP and AVBP are independent, both in terms of feature requested and people involved. Mixing the high number of commits from both codebases would make the Git work incredibly difficult.

  4. Release frequency: AVBP is using a scheduled versioning with a minor revision twice a year. Considering the size of the code base, this rhythm is already fast-paced. To comply with our customer requests, PyAVBP and related tools are releasing minors revision much more often, up to twice a month. A single repository would remove this agility.

Why PyAVBP is not part of Antares?

Antares is also a Python pre-post processing tool at cerfacs, and some features of PyAVBP are similar to Antares. However, merging the two codebases would raise the same issues as the AVBP repository. In addition some constraints clearly set these two tools apart:

  1. Intellectual Property and diffusion rules. Antares is co-developed by Cerfacs, Safran and Airbus. It cannot be shared with any third party without the consent of all co-owners. PyAVBP is open to Cerfacs and its shareholders, and can be diffused to thirds parties with a Non Disclosure Agreement.

  2. Scope PyAVBP focuses on AVBP and spin offs (AVTP, AVSP). If a feature is more generic, it will be moved to a separate OpenSource project, dependency of PyAVBP. On the contrary, If the feature is confidential, it will be moved to a private project, with PyAVBP as a dependency. This Layered IP allow flexibility in the development and is not compatible with Antares policy.

However (rest assured) PyAVBP is using Antares for some pre- or post- processing.

Like this post? Share on: TwitterFacebookEmail

Keep Reading



Our Creations


Stay in Touch