Le logicielCIVA développé par le CEA LIST, est un outil de référence pour la simulation et l’analyse des inspections non destructives. Son module ultrasonore permet notamment d’effectuer des simulations numériques de la propagation d’ondes dans la pièce inspectée. Ces calculs reposent sur un maillage 2D ou 3D d’ordre élevé, décrivant la géométrie et le comportement physique du matériau.
Un enjeu actuel est de pouvoir afficher ces maillages et les champs ultrasonores associés dans la fenêtre de visualisation 3D de CIVA. Pour cela, on souhaite exploiter les capacités de rendu scientifique avancées de la bibliothèque VTK 9.5, qui apporte de nouvelles fonctionnalités pour la prise en charge d’éléments d’ordre élevé et de nouvelles techniques de rendu.
Le stage proposé consistera à mettre en œuvre une chaîne de visualisation, depuis la conversion des données de simulation vers des structures exploitables par VTK jusqu’à l’intégration dans la fenêtre de visualisation 3D de CIVA, en veillant à la précision des résultats affichés et à la performance d’interaction en 3D.
Objectifs
* Convertir les structures de maillage et les résultats de simulation de CIVA vers des structures exploitables par VTK.
* Exploiter les fonctionnalités de VTK 9.5 pour représenter correctement des éléments d’ordre élevé et leurs données associées.
* Proposer et implémenter plusieurs modes de visualisation adaptés aux maillages volumique : isosurfaces, coupes, rendu volumique, glyphes.
* Optimiser la précision d’affichage et les performances en proposant des stratégies telles que la décimation ou l’utilisation du GPU.
Travaux attendus
1. Étude initiale et spécification : analyse des structures de données internes de CIVA, revue des nouveautés de VTK 9.5, choix des types de données (vtkCellGrid, vtkUnstructuredGrid…), sélection du format d’échange (mémoire/fichier) et des modes de représentation.
2. Implémentation C++ et Java : conversion des maillages CIVA vers VTK, développement d’un module dans l’architecture 3D de CIVA permettant de charger les données VTK et de piloter les rendus, mesures de performance, mise en place de stratégies d’optimisation.
3. Vérification du rendu en comparant avec une visualisation d’un maillage d’ordre 1 obtenu en discrétisant le maillage original, vérification de la convergence en fonction de la finesse de discrétisation.
4. Documentation et livrables :code bien documenté, jeux de tests et démonstrations, rapport de stage.
Environnement technique
Windows, C++20, Java, VTK 9.5, Visual Studio 2022, IntelliJ, Git
En cliquant sur "JE DÉPOSE MON CV", vous acceptez nos CGU et déclarez avoir pris connaissance de la politique de protection des données du site jobijoba.com.