FLUOCALC Simulation de Coloration – Documentation

Cet outil calcule une dose théorique de fluorescéine à injecter dans un système karstique, et génère une courbe de restitution théorique à la résurgence. Il s’agit d’un modèle simplifié, paramétrable, destiné à la préparation de traçages et à la simulation pédagogique.
(c) ARIS (Association de Recherche et d'Inventaire Spéléologique).
Développeur : Pascal MOUNEYRAT


1. Vue d’ensemble du calcul

L’application réalise trois blocs de calcul :
  1. Calcul de la dose théorique de fluorescéine (en kg) à partir : altitude, débits, durée de transit, concentration cible, type de roche, correction avancée optionnelle.
  2. Comparaison avec la dose réellement injectée (en kg), saisie par l’utilisateur, et calcul du ratio injectée / recommandée.
  3. Calcul des paramètres de propagation : vitesse moyenne, pente, facteur roche, étalement temporel (σ) et construction d’une courbe de restitution théorique en fonction du temps, selon un des trois modèles : gaussien, log-normal ou gamma.
Important : le modèle est volontairement simplifié et empirique. Il ne remplace pas un calage rigoureux sur des données de traçage réelles. Les coefficients sont à ajuster selon le contexte local.

2. Paramètres saisis par l’utilisateur

2.1. Données géométriques et hydrauliques

À partir de ces données :
Durée de transit : si la valeur de duree est obtenue via le bouton « Calcul », il s'agit d'une approximation pédagogique d'ordre de grandeur basée sur la distance, le dénivelé, les débits et le type de roche. Dès que des traçages réels sont disponibles, ils doivent systématiquement remplacer cette estimation.

2.2. Paramètres de coloration

Dans la version actuelle, facteur_roche est calibré à partir de classes de référence : Les libellés assez fins proposés dans la liste déroulante (zones de faille, calcaire conduit-dominant, épikarst, etc.) sont pensés comme des spécialisations de ces grandes familles pour la vitesse et la dispersion. Ils sont associés en interne à un facteur_roche et à un vBase cohérents avec leur comportement attendu (milieu très drainant, fracturé, plus diffus, marneux…).

L’indice de vitesse vBase (0,05 à 0,85) sert uniquement au calcul automatique d’une durée de transit typique par le bouton « Calcul ». Plus vBase est élevé, plus le milieu est considéré comme rapide. À titre indicatif, les valeurs internes sont par exemple :

"Calcaire conduit-dominant (karst très mature)"         → vBase = 0.85
"Zone de faille (drainante)"                             → vBase = 0.70
"Calcaire pur (karst actif)"                             → vBase = 0.60
"Calcaire dolomitique / dolomie karstifiée"              → vBase = 0.50
"Calcaire fracturé"                                      → vBase = 0.40
"Calcaire massif peu karstifié"                          → vBase = 0.30
"Calcaire stratifié à niveaux marneux fréquents"         → vBase = 0.30
"Épikarst / zone superficielle karstifiée"               → vBase = 0.25
"Marno-calcaire"                                         → vBase = 0.20
"Calcaire crayeux / craie karstifiée"                    → vBase = 0.18
"Calcaire marneux complexe"                              → vBase = 0.10
"Zone de faille (barrante)"                              → vBase = 0.05

Ce tableau ne joue que sur la proposition automatique de duree. Dès qu’un temps de transit est connu par traçage réel, c’est cette valeur qui doit être saisie et utilisée.


3. Calcul de la dose de fluorescéine

3.1. Débits utilisés

Dans le code :

3.2. Dose de base sur le débit de PERTE

Lorsque le débit à la perte est connu (Qp > 0) :
dose_mg_base = concentration × Qp × (duree × 3600) × facteur_roche
où : On obtient une masse théorique en mg de colorant.

3.3. Correction avancée (rapport des débits)

Si l’option Correction avancée est cochée et que le débit à la résurgence est saisi (Qr > 0) :
correction = Qr / Qp
dose_mg    = dose_mg_base × correction
On revient ainsi à une masse théorique cohérente avec le débit réel à la résurgence :
dose_mg ≈ concentration × Qr × (duree × 3600) × facteur_roche
Si Qp est nul mais Qr est renseigné, l’outil utilise directement Qr sans correction (mode de repli) :
dose_mg = concentration × Qr × (duree × 3600) × facteur_roche

3.4. Passage en kilogrammes : dose théorique recommandée

La dose théorique recommandée (pour atteindre la concentration cible) est :
doseKg = dose_mg / 1 000 000
- division par 1 000 000 : conversion mg → kg.

3.5. Dose injectée utilisée pour la simulation

L’utilisateur saisit la dose réellement injectée en kg :
doseInjecteeKg (champ "Dose injectée utilisée pour la simulation (kg)")
Dans le code : La simulation de courbe est donc toujours basée sur une dose injectée explicite :
doseInjecteeKg = (dose saisie) ou, par défaut, (dose théorique recommandée)
Dans les résultats, l’outil affiche :

4. Paramètres de propagation et étalement temporel

La courbe de restitution est centrée autour du temps caractéristique t0 :
t0 = max(duree, 0.1)   // en heures
La valeur duree provient soit :
Attention : le temps de transit calculé par le bouton « Calcul » n’est pas une prédiction physique, mais une approximation pédagogique d’ordre de grandeur. Il doit être utilisé pour cadrer un scénario ou tester des doses, jamais comme substitut à des traçages calibrés ou à une expertise hydrogéologique.
Pour représenter la dispersion / traîne, un écart-type temporel σ est construit comme :
distance_km = max(distance, 0.1)

baseSigma     = 0.20 × t0
effetDistance = 1 + 0.1 × sqrt(distance_km)
effetDose     = 1 + 0.05 × log(1 + doseInjecteeKg × 1000)    // dose injectée en g
effetRoche    = facteur_roche

sigmaBrut = baseSigma × effetDistance × effetDose × effetRoche

// bornes de sécurité :
sigmaMax = 0.60 × t0
sigma    = min(sigmaBrut, sigmaMax)
sigma    = max(0.1, sigma)
Interprétation :
Remarque : les coefficients numériques (0,20 ; 0,1 ; 0,05 ; borne à 0,6 × t0) sont empiriques. Ils sont là pour donner un comportement réaliste et doivent être ajustés à partir de courbes réelles si nécessaire.

5. Mise à l’échelle de la courbe et profil normalisé

L’outil distingue deux niveaux :

5.1. Forme de base (profil sans dimension)

Pour un temps donné t, on calcule d’abord une valeur de forme S(t) en utilisant les lois présentées à la section 6, avec un facteur global fixé à 1 :
S(t) = C(t; t0, σ, C0 = 1)
On obtient ainsi une courbe de type “densité de probabilité” : sa position et son étalement dépendent de t0 et σ, mais pas encore de l’échelle en concentration. On note :
maxShape = max_t S(t)

5.2. Pic cible et mise à l’échelle en mg/L

On définit une concentration de pic théorique en mg/L, Cpic_injectee_mgL, à partir de la concentration cible et du rapport des doses :
Cpic_injectee_mgL = concentration × (doseInjecteeKg / doseKg)
Si ce calcul n’est pas possible (par exemple doseKg = 0), l’outil prend comme valeur de repli : On pose alors :
targetPeakMgL = (si possible) Cpic_injectee_mgL
                 sinon        concentration
                 sinon        0,001

scale = targetPeakMgL / maxShape
La concentration théorique en mg/L est alors :
C(t) = scale × S(t)
Dans le graphique principal, c’est cette courbe verte lissée qui est tracée, avec l’axe vertical gauche en mg/L.

5.3. Profil normalisé (0–1)

Pour comparer les formes quelles que soient les échelles de concentration, l’outil calcule également un profil normalisé :
Cmax = max_t C(t)
C_rel(t) = C(t) / Cmax
Ce profil est tracé en orange, en mode “paliers” sur un axe vertical droit allant de 0 à 1. Il permet de visualiser la forme relative de la courbe (montée, pic, traîne) indépendamment de l’amplitude en mg/L.
Important : dans cette version de l’outil, la masse totale sous la courbe n’est plus contrainte de façon stricte par la dose injectée. L’accent est mis sur un pic cohérent avec la concentration cible et le rapport de doses, plutôt que sur l’intégrale exacte de la courbe.

6. Construction de la courbe de restitution

Les valeurs sont calculées sur un intervalle temporel :
t = 0 à tMax = t0 + 5 × sigma, avec un pas dt ≈ 1 h (échantillonnage affiné en interne)
Pour chaque point t, on évalue d’abord une concentration théorique S(t) (forme de base, avec C0 = 1) en utilisant l’un des trois modèles suivants, puis on applique la mise à l’échelle décrite en section 5 pour obtenir C(t) en mg/L et C_rel(t).

6.1. Courbe gaussienne

Forme de base :
C(t) = C0 × exp( − (t − t0)² / (2 × σ²) )
Caractéristiques : Utilisation : milieu “simple”, conduit principal bien marqué.

6.2. Courbe log-normale

On veut une courbe asymétrique avec montée rapide et traîne longue. La log-normale est caractérisée par deux paramètres : μ_log et σ_log, mais on préfère manipuler une moyenne m et un écart-type s (lié à t0 et σ). Conversion utilisée dans le code :
m  = max(0.1, t0)
s  = max(0.01, sigma)
s2 = s × s

muLog    = ln( (m × m) / sqrt(s2 + m × m) )
sigmaLog = sqrt( ln(1 + s2 / (m × m)) )
Puis pour chaque t > 0 :
C(t) = C0 × 1 / (t × sigmaLog × sqrt(2π))
       × exp( − (ln(t) − muLog)² / (2 × sigmaLog²) )
Caractéristiques :

6.3. Courbe gamma

La loi gamma est définie par un paramètre de forme k et un paramètre d’échelle θ. On les exprime à partir de la moyenne m = t0 et d’un écart-type cible s = σ :
m  = max(0.1, t0)
s  = max(0.01, sigma)
s2 = s × s

k     = (m × m) / s2      // shape théorique
Pour éviter des valeurs numériques extrêmes (pics très aigus ou très plats), le code borne ce paramètre de forme :
k_borne = min( max(k, 2.0), 10.0 )   // 2 ≤ k ≤ 10
theta   = m / k_borne                // la moyenne reste centrée ≈ t0
Concentration non normalisée (la normalisation exacte est absorbée dans C0) :
C(t) = C0 × t^(k_borne − 1) × exp( − t / theta ),  pour t > 0
Caractéristiques :

7. Choix du type de courbe selon le cas

Résumé opérationnel :

8. Limites du modèle et calibration

Responsabilité : l’outil fournit une estimation de travail. L’utilisateur reste responsable de la validation des doses, des autorisations, et de l’interprétation des résultats sur le terrain.

8.1. Lien avec l’équation d’advection–dispersion

Sur le plan théorique, la propagation d’un traceur dans un aquifère peut s’écrire, de façon simplifiée, par l’équation d’advection–dispersion 1D :
∂C/∂t + v ∂C/∂x = D ∂²C/∂x² − λ C + S(x, t)
où : Les solutions exactes de cette équation, pour un pulse de traceur dans un milieu homogène simple, conduisent naturellement à des profils de type gaussien. Dans des systèmes plus complexes (vitesses multiples, réservoirs en série, volumes morts, etc.), les réponses observées sont souvent bien approchées par des lois asymétriques (log-normale, gamma). Le modèle ARIS FLUO COLORATION ne résout pas explicitement l’équation d’advection–dispersion dans l’espace. Il travaille directement sur l’axe des temps à la résurgence, en utilisant : L’outil doit donc être vu comme une approximation paramétrique des réponses de traçage, cohérente avec le cadre de l’advection–dispersion, mais sans résolution explicite des équations aux dérivées partielles.

9. Domaine d’utilisation recommandé du modèle

Le modèle est conçu comme un outil de pré-dimensionnement pour des traçages karstiques “classiques”. À titre indicatif, on peut considérer qu’il est particulièrement adapté aux situations suivantes : En dehors de ces domaines (distances très longues, systèmes fortement multi-résurgences, hydrodynamique fortement transitoire), le modèle peut encore fournir une indication d’ordre de grandeur, mais l’incertitude augmente fortement et un calage spécifique sur données réelles devient indispensable.

10. Utilisation pratique de l’interface

  1. Saisir les altitudes, les débits et la distance (perte ↔ résurgence).
  2. Renseigner la durée de transit estimée (duree, en h) : Dans tous les cas, la valeur utilisée est affichée dans les résultats.
  3. Choisir la concentration cible à la résurgence. Dans l’interface, une valeur par défaut est proposée automatiquement en fonction du mode de détection sélectionné (voir ci-dessous).
  4. Saisir la dose injectée utilisée (kg). Si le champ est laissé à 0, l’outil prendra automatiquement la dose théorique recommandée.
  5. Sélectionner le type de roche le plus représentatif du système étudié parmi les différents libellés proposés (calcaire conduit-dominant, calcaire fracturé, marno-calcaire, zones de faille, etc.).
  6. Choisir le mode de détection : capteurs électroniques, charbons actifs, ou mode mixte. Lorsque ce choix change, la concentration cible est recadrée automatiquement sur une valeur typique pour ce mode (par exemple ~20 µg/L pour les capteurs).
  7. Activer (ou non) la Correction avancée pour prendre en compte l’écart entre débit à la perte et débit à la résurgence dans le calcul de la dose théorique.
  8. Choisir le type de courbe de restitution (gaussienne, log-normale, gamma).
  9. Lancer le calcul et analyser : dose théorique recommandée (kg), dose injectée utilisée (kg), ratio injectée / recommandée, durée de transit utilisée, vitesse moyenne, pente, forme de la courbe (vert, en mg/L) et profil normalisé (orange, 0–1).

En répétant la simulation en modifiant les paramètres (distance, durée, débit, type de roche, type de courbe, dose injectée, mode de détection), l’utilisateur peut explorer différents scénarios de traçage et préparer une stratégie de coloration adaptée au contexte karstique étudié.


11. Ordres de grandeur pour la détection de la fluorescéine

Colorant utilisé : dans l’outil, sauf mention contraire, on suppose l’usage de l’Uranine® (fluorescéine) comme traceur principal. Il s’agit d’une poudre de couleur orange donnant une coloration vert fluorescent avec un fort impact visuel. C’est le colorant le plus utilisé en traçage karstique en raison de sa très grande sensibilité de détection (visible à l’œil autour de 10 ppb suivant le volume d’eau), de sa faible tendance à l’adsorption et de son prix relativement bas.
Cette section donne des repères pour relier la simulation à la réalité des mesures : Ce ne sont pas des normes juridiques, mais des ordres de grandeur issus de la pratique (tracages karstiques, guides de terrain, notices d’instruments).

11.1. Rappels : LOD, seuil de décision, bruit de fond

Dans les protocoles labo type OUL, ces critères (≥ 3 × LOD et ≥ 10 × le fond) sont explicitement utilisés pour considérer une détection de fluorescéine comme “positive”, que ce soit sur eau ou sur élutant de charbon.

11.2. Capteurs électroniques et fluorimètres (eau brute)

On distingue : Conséquence pour le simulateur :

11.3. Charbons actifs : principe et sensibilité

Les sachets de charbon actif (bugs) ne mesurent pas une concentration instantanée, mais intègrent la fluorescence sur la durée de pose. Principe :
  1. Le charbon (granulé ou poudre) est placé dans un sachet perméable et exposé à l’eau pendant plusieurs heures à plusieurs jours.
  2. La fluorescéine est adsorbée sur le charbon.
  3. En labo, on élue le colorant (alcool + base) et on mesure l’élutant au fluorimètre.
Sur l’élutant de charbon, des protocoles de laboratoire karst classiques donnent, pour la fluorescéine : La vraie force du charbon, c’est la pré-concentration : Points pratiques : Dans l’outil, la fenêtre indicative retenue pour le mode “charbons actifs” est de l’ordre de 0,1 à 5 µg/L pour le pic moyen simulé.

11.4. Comment utiliser ces repères dans le simulateur

On peut interpréter les résultats du simulateur en fonction du mode de détection envisagé :

En résumé, la concentration cible dans l’interface sert surtout à dimensionner la dose pour se placer dans une fenêtre de détection réaliste : quelques dizaines de µg/L pour les fluorimètres, et bien au-dessus des seuils ultra-sensibles permis par les charbons actifs. La même simulation peut donc être lue différemment selon que l’on s’appuie principalement sur des capteurs électroniques, sur des charbons, ou sur une combinaison des deux.


12. Références et ressources complémentaires

Les références ci-dessous peuvent servir de base pour approfondir la théorie des traçages et la pratique de la fluorescéine en hydrogéologie karstique :
L’outil ARIS FLUO COLORATION (FLUOCALC) est volontairement positionné comme un simulateur paramétrique : il s’appuie sur ces concepts, mais reste simple à utiliser pour le dimensionnement pratique et l’exploration de scénarios. Responsabilité : l’outil fournit une estimation de travail. L’utilisateur reste responsable de la validation des doses, des autorisations, et de l’interprétation des résultats sur le terrain et la responsabilité de l'ARIS ou du développeur de ce simulateur, ne peux être invoqué...