Framework C++17 de génération de microstructures et IHM Python de test pour la construction de datasets

IFP Energies Nouvelles Group

Rueil-Malmaison

On-site

EUR 12,000 - 18,000

Full time

14 days+

Get a reply from this employer

Your resume and cover letter, tailored to exactly what they’re hiring for.

Get past ATS filters

Benefits offered by this job

Stage en environnement de recherche
Encadrement technique
Formation et documentation

Job summary

IFP Energies Nouvelles Group recherche un stagiaire pour moderniser une librairie C++ et étendre un pipeline plex en Python. Vous contribuerez au développement modulaire, à l’extension de l’IHM PySide6 et à l’orchestration des tâches via un DAG, tout en assurant tests et validations.

Le stage implique aussi la documentation API et guide utilisateur, avec un encadrement technique et une immersion dans un contexte de calcul scientifique et de matériaux.

Qualifications

  • Stage en développement C++17 et Python, conception modulaire et build portable.
  • Capacité à lire du code scientifique et à travailler en équipe.
  • Bonnes bases en tests unitaires et CI/CD.

Responsibilities

  • Moderniser la librairie C++ et étendre le pipeline plex.
  • Concevoir et réaliser l'IHM Python (PySide6) pour configuration et visualization.
  • Mettre en place tests unitaires et CI GitLab.
  • Documenter l'API et guides d'utilisation.

Skills

C++17
Python programming
Linux/ scripting
DAG orchestration

Education

Stage en Informatique ou Calcul Scientifique

Tools

CMake
GitLab
Google Test
Qt / PySide6

Job description

Framework C++17 de génération de microstructures et IHM Python de test pour la construction de datasets

La caractérisation et la modélisation des microstructures de matériaux (sols, roches, matériaux composites) est un enjeu central en sciences des matériaux et en mécanique. Une librairie C++ existante permet déjà de générer des microstructures 3D par schéma booléen (placement aléatoire d'objets géométriques) et par modèle d'agrégation (sphères, ellipsoïdes, plaquettes). Ces microstructures simulées servent de données d'entrée à des codes de calcul de propriétés physico-chimiques (perméabilité, conductivité thermique, propriétés élastiques, etc.).

En pratique, générer et paramétrer ces microstructures « à l'aveugle » rend leur réglage et leur validation difficiles : il faut pouvoir visualiser, contrôler et rejouer interactivement les réalisations produites. IFPEN dispose par ailleurs d'une application interne en Python (PySide6) dédiée à l'analyse d'images scientifiques de milieux poreux, qui constitue une base naturelle pour un banc de test interactif.

L'objectif du stage est de structurer et d'étendre cette librairie afin de constituer un pipeline complet et automatisé en s'appuyant sur un gestionnaire de plan d’expérience (plex) existant capable de générer des datasets de microstructures et de leurs propriétés associées à grande échelle, en explorant un espace de paramètres défini.

Le stage comporte ainsi deux volets complémentaires : d'une part la consolidation de la librairie C++ et l'extension d'un pipeline plex existant (code Python autour d'un DAG) ; d'autre part le développement d'une IHM de test en Python, greffée sur l'application existante, permettant de configurer la génération, de lancer les exécutables du framework et de visualiser les microstructures obtenues.

Missions et objectifs

1. Mise en forme et modernisation de la librairie

  • Audit et refactoring du code C++ existant vers le standard C++17
  • Définition d'interfaces claires et d'une architecture modulaire (séparation .h / .cpp, namespaces)
  • Mise en place d'un système de build portable avec CMake (Linux / Windows)
  • Intégration dans un dépôt GitLab avec CI/CD de base

2. Reprise et extension du pipeline plex

  • Prise en main du gestionnaire de plan d'expérience existant, écrit en Python et structuré autour d'un graphe orienté acyclique (DAG), à réutiliser, adapter et étendre à la génération de microstructures
  • Interfaçage avec les codes de calcul aval pour récupérer les propriétés physiques calculées
  • Gestion des sorties : format binaire des microstructures, fichiers de métadonnées (JSON ou CSV)

3. IHM Python de test et de visualisation

  • Pilotage et définition du plex depuis l’application Python/PySide6 interne : génération des fichiers de configuration, lancement du plex, suivi de l'exécution, lecture des sorties (volumes .fda, métadonnées JSON/CSV)
  • Intégration dans l'architecture existante de cette application (arbre de contexte, processus, renderers) avec exécution asynchrone pour garder l'interface réactive
  • Contrôle visuel des microstructures générées pour un jeu de paramètres de la campagne plex

4. Tests et validation

  • Écriture de cas unitaires fonctionnels pour chaque brique du pipeline avec Google Test
  • Tests de non-régression et de reproductibilité (graine aléatoire fixée)
  • Intégration des tests dans la CI GitLab
  • Vérification du fonctionnement de l'IHM de test (lancement des exécutables, génération et affichage bout en bout)

5. Documentation

  • Documentation de l'API (Doxygen ou équivalent)
  • Guide d'utilisation du plex et des options de l'espace de paramètres
  • Notice d'installation et d'utilisation de l'IHM Python de test
  • Manuel de contribution (conventions de code, procédure de merge request)
Profil recherché

Compétences requises

  • Maîtrise du C++ (C++11/14/17) : templates, gestion mémoire, POO
  • Pratique de CMake pour la configuration de projets multi-plateformes
  • Connaissance de Git et de GitLab (branches, merge requests, CI/CD)
  • Capacité à lire et comprendre du code scientifique existant
  • Bonnes bases en Python (POO, environnement scientifique) et goût pour le développement d'interfaces

Compétences appréciées

  • Expérience avec Google Test ou un framework de test équivalent
  • Notions de simulation stochastique ou de traitement d'images 3D
  • Intérêt pour les applications scientifiques et les matériaux
  • Expérience Linux (compilation, scripting bash)
  • Expérience du développement d'interfaces graphiques avec Qt / PySide6 (ou PyQt)
  • Notions de visualisation scientifique 2D/3D et d'orchestration de tâches (DAG, sous-processus)
Livrables attendus
  • Code source versionné sur GitLab, documenté et testé
  • Suite de tests Google Test avec rapport de couverture
  • Pipeline plex fonctionnel capable de produire un dataset de N microstructures
  • Module IHM Python (PySide6) de test et de visualisation des microstructures, pilotant les exécutables du framework C++
  • Documentation technique (API + guide utilisateur)
  • Rapport de stage et soutenance
Ce que nous offrons
  • Immersion dans un projet de recherche appliquée en simulation de matériaux
  • Code existant non trivial : travail réel sur une base de code scientifique
  • Encadrement technique par des ingénieurs/chercheurs expérimentés
  • Développement « full-stack » scientifique : calcul C++ haute performance et interface Python/Qt
Get your free, confidential resume review.

or drag and drop your file here.

Similar jobs

Similar jobs worth comparing

Stage - Data Science : Développement d’un Simulateur d’Échantillonnage Avancé pour l’optimisation des mesures sur matières solides - H/F
Stage - Data Science : Développement d’un Simulateur d’Échantillonnage Avancé pour l’optimisation des mesures sur matières solides - H/F

Veolia • Saint-Denis

On-site
EUR 10,000 - 15,000
Stage de 6 mois
Entreprise inclusive Veolia
Stage M2 : Création d’une application de veille automatisée des appels d’offres en santé H/F
Stage M2 : Création d’une application de veille automatisée des appels d’offres en santé H/F

CESI • Quetigny

On-site
EUR 7,800 - 11,000
Gratification à 15% du plafond horaire
Stage Développement d'un code de calcul multiphysique en champ de phase appliqué à la corrosion F/H
Stage Développement d'un code de calcul multiphysique en champ de phase appliqué à la corrosion F/H

Framatome • Ugine

On-site
EUR 13,000 - 17,000
STAGE - IA pour la science des materiaux dans le contexte de la Sustainability (F/H)
STAGE - IA pour la science des materiaux dans le contexte de la Sustainability (F/H)

Dassault Systèmes • Valbonne

On-site
EUR 8,900 - 13,000
STAGE - Optimisation de la disposition basée sur l'IA (F/H)
STAGE - Optimisation de la disposition basée sur l'IA (F/H)

Groupe Talents Handicap • Aussac-Vadalle

On-site
EUR 10,000 - 17,000
Environnement collaboratif et innovant
Collaboration internationale
Diversité des technologies et produits
+1
Stage 6 mois : \"Décrypter les phénomènes de mise en ordre à courte distance à l'échelle atomique\" H/F
Stage 6 mois : \"Décrypter les phénomènes de mise en ordre à courte distance à l'échelle atomique\" H/F

CEA • Gif-sur-Yvette

Remote
EUR 10,000 - 15,000
Télétravail possible
Stage de fin d’études
Stage ingénieur — Service de planification industrielle sous contraintes
Stage ingénieur — Service de planification industrielle sous contraintes

Omundu • Lyon

On-site
EUR 6,696 - 13,392
STAGE - Ingenieur Logiciel - Migration Architecture Services (F/H)
STAGE - Ingenieur Logiciel - Migration Architecture Services (F/H)

Dassault Systèmes • Vélizy-Villacoublay

On-site
EUR 12,000 - 18,000
Environnement collaboratif
Collaboration internationale
Diversité et inclusion
Stage -Stage de Fin d’études / Ingénieur innovation en Systèmes Intelligents - Paris, France (H/F)
Stage -Stage de Fin d’études / Ingénieur innovation en Systèmes Intelligents - Paris, France (H/F)

Astek • Paris

On-site
EUR 12,000 - 17,000
Accélérateur d’expérience
Projets passionnants
Formation interne
+1
STAGE - Ingénieur Web Java & IA Support Technique (F/H)
STAGE - Ingénieur Web Java & IA Support Technique (F/H)

Groupe Talents Handicap • Vélizy-Villacoublay

On-site
EUR 11,000 - 16,000
Environnement multiculturel
Salles de sport & musique
Conciergerie
+1