Simulation

Le module Simulation est la couche qui fait passer la scène 3D d'une représentation statique à un outil prédictif. À partir d'un sous-sol construit, d'un ou plusieurs points sources et d'hypothèses de propagation, le moteur calcule l'évolution spatiale et temporelle des contaminants. Cette page présente les grandes lignes du module, ses entrées, ses sorties et la manière dont les sous-pages plus techniques s'articulent entre elles.

Ce que simule le moteur

Le moteur de simulation couvre les trois grands types de processus qui déterminent le devenir d'un contaminant dans le sous-sol : le transport (advection, dispersion), la réaction (dégradation, transformation) et l'interaction avec la matrice (adsorption, désorption). Chacun de ces processus peut être activé ou désactivé indépendamment selon ce que l'utilisateur cherche à modéliser.

Processus Phénomène modélisé Paramètres clés
Advection Déplacement du contaminant avec l'écoulement d'eau Vitesse de Darcy, porosité effective
Dispersion Étalement longitudinal et transversal du panache Dispersivité longitudinale et transversale
Diffusion moléculaire Étalement par agitation thermique dans les zones peu mobiles Coefficient de diffusion
Adsorption Rétention réversible sur la matrice solide Kd, Koc, teneur en matière organique
Dégradation Transformation chimique ou biologique du composé Constante cinétique k, voies de dégradation
Spéciation redox Changement de forme selon pH et Eh locaux Diagrammes Eh-pH, équilibres
Fractionnement isotopique Enrichissement de la molécule résiduelle Epsilon par voie

Entrées du moteur

Une simulation prend trois familles d'entrées, qui existent toutes ailleurs dans IsoFind et sont simplement consommées par le moteur.

Entrée Origine Rôle
Sous-sol Couches stratigraphiques définies dans la scène Porosité, perméabilité, adsorption locales
Sources Points ou zones déclarés dans l'onglet Simulation Masse, débit, signature isotopique, durée
Conditions aux limites Gradient hydraulique, flux entrants, zones fixées Force motrice de l'écoulement
Composé cible Base de référence moléculaire ou élément Détermine Kd, k, voies applicables
Conditions géochimiques Échantillons mesurés ou valeurs imposées par couche Ajuste cinétiques et spéciation localement
Une simulation n'a pas besoin d'être calée sur des mesures pour être utile : elle peut tourner en mode exploratoire pour prendre la mesure d'une situation avant d'avoir des données de terrain. C'est même un usage fréquent, en phase de diagnostic initial, pour orienter la stratégie d'échantillonnage.

Sorties du moteur

Le moteur produit à chaque pas de temps un ensemble de champs 3D interpolés sur la grille de calcul. Ces champs sont visualisables dans la scène avec tous les modes de rendu disponibles (isosurfaces, coupes, volumes, points).

Sortie Unité Interprétation
Concentration du composé mg/L, µg/L, ng/L selon cas Emprise et intensité du panache
Concentration des métabolites idem composé parent Avancement de la dégradation
Signature isotopique résiduelle Enrichissement lié au fractionnement
Masse accumulée kg Bilan de matière par zone
Temps de séjour années Âge apparent en chaque point
Flux aux sorties kg/an Contamination sortante au niveau des frontières

Pas de temps et durée simulée

Le moteur fonctionne par pas de temps explicites. La durée totale simulée et le pas de temps sont réglés par l'utilisateur, avec des valeurs par défaut cohérentes avec la vitesse d'écoulement et la résolution de la grille. Un pas de temps trop grand peut conduire à des instabilités numériques signalées automatiquement ; un pas trop petit rallonge inutilement le calcul.

Durée simulée typique Pas de temps recommandé Usage
Quelques jours 1 à 6 heures Fuite récente, transport rapide
Quelques mois à quelques années 1 à 10 jours Suivi de panache actif, remédiation
Décennies 1 mois à 1 an Migration historique, PFAS, solvants chlorés anciens
Siècles à millénaires 1 à 10 ans Contextes miniers, stockages géologiques

Accéder au module Simulation

Visualisation 3D > Simulation > Nouveau scénario > Composé cible > Source et conditions aux limites > Durée > Lancer

Un scénario est un objet persistant : il garde en mémoire son jeu de paramètres d'entrée et son résultat. Les derniers résultats de simulation sont stockés côté front dans sessionStorage['isofind_sim_result'], ce qui permet aux blocs de rapport et à la comparaison d'hypothèses de les consommer sans re-calcul. Plusieurs scénarios peuvent coexister sur une même scène, et être comparés côte à côte dans la page dédiée aux hypothèses multiples.

Couplage ML résiduel

En parallèle du moteur de simulation, IsoFind propose un apprentissage supervisé local qui corrige l'écart entre le prior géochimique (calculé par le bridge Nexus) et les observations. Ce ML résiduel est un MLP léger entraîné sur les résidus δ_observé − δ_prior de chaque point d'échantillonnage.

Étape Endpoint Description
1. Calcul du prior POST /api/predict/prior Pour chaque point, retourne δ_prior, f_reduced, f_mix, delta_mix et résidu
2. Entraînement POST /api/predict/train MLP sklearn (sortie ONNX) sur les résidus, minimum 6 points valides
3. Inférence POST /api/predict/infer Applique le modèle à la grille 3D entière pour produire le champ ML corrigé
4. État du modèle GET /api/predict/model-status Vérifie la disponibilité et les métriques (MAE, RMSE, R², CV-MAE)

L'architecture du MLP s'adapte au volume de données : (32, 16) pour moins de 20 points, (64, 32) jusqu'à 50 points, (128, 64, 32) au-delà. Le vecteur de features compte onze entrées : coordonnées normalisées x, y, profondeur/depth_max, pH, Eh/500, DO/10, log10(Cr+1), fraction réduite, fraction mélange, delta_mix et prior. Le modèle est exporté en ONNX quand la dépendance skl2onnx est disponible, ce qui permet l'inférence hors ligne sans sklearn.

Le ML résiduel n'est pas un substitut au bridge Nexus : il vient après, pour capturer les signaux locaux que le modèle géochimique générique ne capte pas. Un prior bien calculé limite la correction nécessaire, ce qui est un bon signe de cohérence. Un résidu élevé et structuré spatialement suggère au contraire un processus non modélisé dans le bridge, qui mérite investigation.

Sous-pages du module

Le détail du fonctionnement du moteur est découpé en trois sous-pages qui répondent chacune à une question précise.

Limites à connaître

Le moteur d'IsoFind est conçu pour des simulations exploratoires et d'aide à la décision, pas pour des modélisations réglementaires certifiées. Pour ces usages, des codes spécialisés (MODFLOW, FEFLOW, COMSOL) restent la référence.

Les simulations rendues par IsoFind reposent sur des paramètres dont l'incertitude est souvent plus grande que l'écart entre deux scénarios plausibles. Présenter un résultat de simulation comme une prédiction chiffrée précise est trompeur ; le présenter comme une aide à la compréhension qualitative est juste. Le module de comparaison d'hypothèses est là pour matérialiser cette nuance.

Pour aller plus loin