Nous recherchons un CDD ou post-doctorat de 18 mois pour réaliser des développements mathématiques et d'implémenter, sur architecture GPU, les librairies logicielles permettant de :
1/ Générer les surfaces spline MBA à partir d'un nuage de points exprimés dans un système de coordonnées génériques curvilignes.
2/ Calculer leur intersection avec des rayons.
Au sein de la plateforme CIVA, la simulation de la propagation des ondes ultrasonores est fondée sur un modèle du type rayons, très rapide et fiable, mais est sensible à la régularité des surfaces décrivant les différents milieux de propagation. Ces limites de validité sont notamment atteintes lors de la prise en compte d’organes ou de composants industriels de géométrie complexe 3D, décrites par des maillages.
La librairie permet de générer des Spline multi-niveaux (MBA Multi-Level B-Spline Approximation) à partir d’un nuage de points. Du fait de la régularisation introduite par les MBA, cette description permet à la fois de pallier les limitations des modèles rayons appliqués à des descriptions maillées des surfaces tout en permettant une accélération des simulations.
Pour l’heure, cette librairie ne traite que des nuages de points exprimés dans un repère cartésien. L’objectif est de l'étendre afin de traiter des nuages de points exprimés dans un système de coordonnées génériques curvilignes.
Les principaux développements seront les suivants :
· Adaptation de la méthode MBA à des données de type f(u,v) = (x,y,z), où chaque paire de coordonnées (u,v) est associée à un triplet de coordonnées (x,y,z) dans un espace tridimensionnel.
· Paramétrisation appropriée des surfaces B-Spline pour tenir compte des coordonnées paramétriques (u,v).
· Modification des algorithmes d’ajustement des B-Splines pour traiter les données tridimensionnelles.
· Validation sur des données d’entrée s’apparentant à des données cartésiennes f(x,y) = z (par exemple un plan ou une portion de sphère).
· Analyse de performances pour déterminer les goulots d’étranglement et le niveau de parallélisation.
· Optimisation du code (s’approcher des performances des codes MBA
classiques).
· Implémentation d’un algorithme de calcul d’intersection entre un rayon et une surface B-Spline multi-niveaux (produite par MBA), s’appuyant sur une méthode itérative de type Newton-Raphson.
· Dvlpmt d’un algorithme d’évaluation de la surface B-Spline à partir d’un (u,v) donné (généralisation de l’algorithme de De Casteljau).
· Détermination d’un first guess (u0,v0) pour éviter les minima locaux lors des itérations.
· Mise en œuvre d’une méthode de subdivision itérative de la surface B-Spline, exploitant la propriété d’enveloppe convexe du polygone de contrôle de la surface (Convex Hull Property) et le stockage de subdivisions pré-calculées.
· L’implémentation CPU en C++ suivi d’une étape devalidation, d’une analyse de performances et d’une étape d’optimisation de l’algorithme.
· Adaptation des algorithmes
#CEA-List
Master ou Doctorat en Mathématiques Appliquées, Informatique, ou domaine équivalent.
Expérience en développement d'algorithmes mathématiques.
Expérience en programmation CPU et GPU, avec une attention particulière à l'optimisation des performances et à la parallélisation.
Expérience en programmation C++ et CUDA.
Capacité à résoudre des problèmes complexes de manière autonome.
Bonnes compétences en communication écrite et orale en français et en anglais.
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.