vendredi, 24 avril, 2026
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.
- Principe du moteur : équations résolues, schéma numérique, conditions de stabilité.
- Paramètres hydrogéologiques : gradient, piézométrie, conditions aux limites, sources.
- Spéciation et propagation : comment les réactions sont couplées au transport.
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
- Cas d'études : exemples concrets de simulations sur panaches réels.
- Comparaison multi-hypothèses : confronter plusieurs scénarios sur la même scène.
- Interpréter les résultats : lire ce que produit le moteur.