Photo Mildlee on Unsplash - COOP packages, a set of high quality python packages curated to support your scientific computing craft
COOP is working on an ecosystem of Python packages to ease different tasks in the field of scientific computations. Discover here how these packages are articulated. For more information on a specific package, type the name of a package in the Search field of the blog.
Due to some circumstances, this ecosystem is usually named the The Opentea3 ecosystem.
Short Description
Main packages with GUIs
COOP is developing pyAVBP, a set of python-based helpers for the AVBP solver. It features Graphical user interfaces for several families of AVBP setups, but also helper functions in python to rely on when developing custom-made AVBP tools.
The license is “AVBP limited diffusion”, meaning you need an access to the Cerfacs Forge to install pyavbp.
outilsMetierSafran (in short oms) can be used on top of pyavbp to get the tools compatible with SAFRAN combustion studies. More advanced tools and GUIs are proposed. Contrarily to pyAVBP, this package is private to SAFRAN.
Finally hip is an open-source Swiss-army knife for meshes. It allows mesh conversions, corrections, adaptations and compositions. Mostly used with an interactive command-line, it also comes with pyhip a python Front-end with GUIs and terminal shortcuts.
Special purpose packages
The following packages written in a generic fashion to be of use in broader contexts, beyond AVBP. All are open-source.
ms_thermois a helper tool to manage the thermodynamical state of a multi-species gas. Compatible with NASA polynomials as well as AVBP thermodynamical properties, it can be the basis for many custom-made pre and post-processing toolsopentea3is a GUI engine using json-SCHEMA to build Tkinter Graphical User Interfaces.tiny3dengineis a subpart ofopentea3allowing a simple rendering of wireframes 3D scenes.arnicais where we store, test, and document our smallest no-brainer functions (normalize a vector field, rotate it, create a.xmf&.h5file from numpy arrays etc…)h5crossis our set of hdf5-related recurrent functions. For example, go there to compare visually two hdf5 dataset from the command line.nobhelps to handle highly nested serialized datasets.nobvisualprovides a good visualisation of these nested objects.tekigohelps to generate mesh adaptations metrics satisfying both local (e.g. cell size) and global (e.g. nb. of cells) constraints. The work of mesh adaptation is then given topyhip.kokiygenerates some 2D curvilinear I,J shells used in post-processing tools of our CFD fields.cloud2cloudis a generic radial-based-function interpolator for point-clouds stored in Numpy arrays. As it uses SciPy cKDtree, the global interpolation speed is quite good.calciferis 2D finite difference solver working on 2D curvilinear grids. Not a revolution, but useful for a quick resolution of the heat equation.lemmingshelps to create a job chain portable from one HPC cluster to the other. Its most basic usage is “Re-submit this run until simulated time equals ***ms”, but one can add a lot more of smart logic in a LemmingJob.showyuse.ymlconfiguration files to define plots layouts for the temporal monitoring of a code. Its backend is matplotlib, and uses a color-blind proof set of colors.satisis where we store our temporal analysis functions such as Fourier transform of auto-correlations times.
Dependencies of packages
The following table shows that most of our packages are the basis for pyavbp. oms inherits from pyavbp dependencies.tekigo inherits from pyhip dependencies.
However lemmings , kokiy, nob ,nobvisual , showy are all standalone packages.
| oms | pyavbp | pyhip | tekigo | kokiy | lemmings | tekigo | nob | nobvisual | showy | |
|---|---|---|---|---|---|---|---|---|---|---|
| pyavbp | O | |||||||||
| pyhip | O | O | ||||||||
| opentea | O | O | ||||||||
| arnica | O | O | O | O | ||||||
| ms_thermo | O | |||||||||
| kokiy | O | |||||||||
| h5cross | O | |||||||||
| nobvisual | O | |||||||||
| showy | O |
Table of dependencies related to each package - to be read column-wise