Introduction
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.
Usage
Use the CLI to see what options are available in your terminal.
pyavbp
is the main command.
>pyavbp
Usage: pyavbp [OPTIONS] COMMAND [ARGS]...
--------------- PYAVBP --------------------
[UNDER CONSTRUCTION]
You are now using the TENTATIVE Command line interface of PyAVBP package.
a Python3 helper for the setup of AVBP software, created at CERFACS
(https://cerfacs.fr).
This is a python package currently installed in your python environement.
See the full documentation on nitrox.
Options:
--help Show this message and exit.
Commands:
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
Options:
-f, --file TEXT Project to open. (.yml)
--help Show this message and exit.
functionalities.
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.
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?
-
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.
-
No synchronisation needed PyAVBP must handle several versions of AVBP at the same time, the need of synchronisation is therefore not relevant.
-
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.
-
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:
-
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 SAFRAN and can be diffused to thirds parties with a Non Disclosure Agreement, as stated ing the “Accord AVBP Cerfacs-SAFRAN”. See AVBP licence file for a more complete description.
-
Scope PyAVBP focuses on AVBP and spin offs (AVTP, AVSP), while Antares aims to be a unique portal for many softwares.
-
User Experience PyAVBP provides both low level bricks and end user tools (Command Line Interfaces, Graphical User Interfaces, packaged tools) while Antares is focused on being a middle layer to build advanced private tools.
However (rest assured) PyAVBP is using Antares for some pre- or post- processing.