Themys: A ParaView Branded Application
This is a guest blog from Eloïse Billa, Jacques-Bernard Lekien, Guillaume Peillex and Maxime Stauffert from CEA, DAM, the French Alternative Energies and Atomic Energy Commission.
In this blog post, the authors describe the advantages of being based on the ParaView framework for their domain specific application. Openness, collaboration and flexibility, in addition with a strong relationship with Kitware Europe’s team, factors in the success of this story.
Why Themys? Why ParaView?
CEA is a major player in research and innovation, renowned for its expertise in HPC through the momentum of the “Simulation Programme” supported by its Direction des Applications Militaires (CEA / DAM). To fulfill its mission, CEA/DAM runs multiphysics computations which results are visualized using the software Themys.
Themys has to be able to post-process billions of points and cells with multi components variables: scalars, vectors or tensors. In addition, Themys has to be based on the VTK library in order to benefit from previous in-house developments. Those two requirements, paired with the willingness to benefit from a powerful and recognized software used by many industries and academics all worldwide, led to the decision to build Themys as a ParaView’s branded application.
Being based on the ParaView’s framework allows us to effortlessly benefit from:
- parallel computations and rendering through the ParaView’s client/server architecture;
- strong, proven, graphical user interface;
- advanced testing framework;
- large expert community
Themys is open source, and hosted on gitlab, as the development team is fully involved in the open source community. We work with Kitware by reporting issues and submitting merge requests in ParaView and VTK repositories.
These merge requests encompasses bug fixes as well as, for example, heavy HyperTreeGrid/AMR developments.
Another way to collaborate with Kitware is achieved through subcontracting. It allows the team to benefit from more manpower and also from skilled Kitware experts.
The policy within the Themys development team is to push developments as much as possible in the ParaView/VTK sources. This way, the whole ParaView community can use it, resulting in extensive testing. However, if the development is too specific to be pushed in ParaView’s or VTK’s main source code, it is kept in the Themys source code. Thus, the Themys sources repository contains only CEA/DAM specific features.
Themys architecture
Themys is built around four main gitlab repositories located in the same gitlab group:
- Main repository
- Server plugins repository
- File readers repository
- Spack installer repository
Main Themys repository
This repository holds the customization of ParaView‘s graphical user interface (GUI) and Themys’ specific documentation.
Thanks to the high modularity of ParaView, it is relatively easy to tweak its GUI into different profiles. Each of these profiles may correspond to one particular use case, for instance:
- Beginner user;
- Advanced user;
- HyperTreeGrid based computations;
For now, Themys offers 3 different modes that users can select based on their preferences and specific use cases.
For instance, beginner users may prefer selecting the Themys mode, which simplifies the GUI by removing filters and buttons that are rarely used at CEA/DAM.
Themys GUI mode: a simplified GUI
More experienced or adventurous users may prefer using the Advanced mode which is in fact the default ParaView GUI with all buttons and filters available.
Advanced mode: the ParaView’s default GUI
The final profile is specifically designed for users visualizing results of Adaptive Mesh Refinement / HyperTreeGrid (AMR/HTG) computations.
Switching between modes is achieved by clicking on a dedicated button.
Switching between different GUI modes
In addition to ParaView‘s documentation, Themys’ specific documentation is accessible via the F1 key and is displayed in the user’s browser. It consists of a static web site set up through sphinx software. French and English versions are available.
Themys’s specific documentation: french or english version
Themys’s specific documentation: nice looking aspect thanks to Sphinx
Themys Server Plugins repository
This repository holds a collection of CEA/DAM specific filters.
They are designed to simplify domain specific usages, such as the RotateX, Y or Z filters, which provide quick access to pre-configured filters, and the Compare filter, which combines reflections and rotations. Another example is the vtkMaterialInterface filter, enabling CEA/DAM users to visualize interfaces computed by the CFD code between materials in mixed cells.
vtkMaterialInterface: a CEA/DAM specific filter to visualize CFD codes interfaces. (Left image is before filter application. Right image is after filter application)
This repository also includes some settings for GUI customization required in the Themys repository. For this reason, the project is included as a submodule in Themys repository.
When installing on HPC clusters, graphical support is sometimes not available. In this case, only ThemysServerPlugins are installed on the server nodes, while on client nodes Themys along with ThemysServerPlugins are installed.
Other repositories: file readers and Spack installer
Most of the CEA/DAM CFD codes are outputting their results in Hercule databases, which is a CEA/DAM library that allows CFD codes to manage their IO on HPC clusters. The readers repository holds a VTK reader capable of converting information from Hercule database into a VTK structure.
The Themys development team is also in charge of installing Themys software and all of its dependencies on many different architectures, ranging from laptop to thousands cores HPC clusters.
On many of those targets, the team does not have any special administration rights. In order to circumvent this limitation and manage all dependencies efficiently, the team uses Spack to install Themys. The Spack installer repository contains scripts and Spack environments that enable the team to install Themys on all designated targets.
Themys quality assessment
As Themys relies on ParaView/VTK, it benefits directly from the whole extensive test suite of ParaView and VTK.
In order to deploy a product as best as possible, the Themys development team invests significant effort into thoroughly testing all of its developments. Thus, dedicated Continuous Integration (CI) processes have been set up in each of the Themys repositories presented in the previous section.
These CIs themselves rely on the ParaView/VTK test system.
Hereafter is a snapshot of a CI pipeline of the Readers repository.
CI Pipeline of the readers repository
Contributions of CEA/DAM and Themys to the ParaView/VTK ecosystem
The CEA/DAM has been contributing to many new features in the ParaView/VTK code base like the memory bar, the VTK implicit arrays or the new time manager. Thanks to CEA/DAM, pioneer in the Tree based adaptative mesh refinement/HyperTreeGrid approach, the HyperTreeGrid is now part of the VTK library (see this blog article), and is still under active development by both the Themys and Kitware teams.
It is also under the impulsion of the Themys development team that implicit arrays have been introduced in VTK.
In the ParaView’s GUI, the following items, among others, have been added by Kitware as part of the subcontract financed by CEA/DAM. All these improvements are available in ParaView 5.12.0.
Memory bar
Alongside the classic progress bar, you can now find the memory bar which updates every time you create a new filter or reader. It is very handy to know if you are running out of memory, and it is also compatible with distributed client/server mode and will display the memory usage of the most used server node.
Select color map in a pinch
Colormaps are essential in ParaView in order to show the most salient information.
While the preset dialog provides a complete interface to choose between hundreds of colormaps, the ability to swiftly switch between colormaps can be quite practical, and this is exactly what this new menu is for.
Time Manager dock widget
A new time manager dock widget has been added, read more about it here: https://www.kitware.com/a-new-time-manager-is-landing-in-paraview/
Other improvements
The File dialog “look in” is now editable and the group-by logic can be disabled/enabled.
The python calculator now supports autocomplete and multi-line editions.
There are now settings to control whether floating-point values should be displayed as exact values or not.
Conclusion
Themys has been distributed since 2021, and our users appear to be satisfied.
The combination of being a Paraview Branded Application and subcontracting to Kitware enables the small development team to focus on CEA/DAM specificities, ensuring the delivery of the best possible product.
Without these two aspects it would not have been possible to achieve such an advanced and powerful tool.
For more information, you can explore the Themys code repository and use the Kitware contact page to start a similar journey for your domain-specific application.