Si votre solveur fonctionne pendant des heures et vous donne toujours des chiffres auxquels vous ne pouvez pas faire confiance, le contrôle des erreurs n’est pas un luxe – c’est la différence entre un résultat que vous pouvez publier et celui que vous devez rétracter.
Voici ce que vous devez savoir tout de suite :
- Estimation d’erreurs vous indique à quel point votre solution est erronée. contrôle des erreurs est ce que vous faites avec ces informations pour faire la bonne réponse.
- La boucle de raffinement de maillage adaptatif suit un cycle concret « Résolution → Estimation → Marquer → Affiner » – pas la théorie, un véritable algorithme que vous pouvez implémenter dans Fenics ou COMSOL.
- Le réglage des tolérances a des règles pratiques : ne définissez jamais
atolprès de l’epsilon de la machine (~ 10 ⁻¹ ⁵), mettez-le à l’échelle de votre plancher de bruit physique et serrez de manière incrémentale. - Le contrôle des erreurs orientés vers les objectifs via les méthodes Adjoint/DWR cible des quantités spécifiques d’intérêt (Drag, Max Température, Flux) plutôt que Global Error – une approche fondamentalement différente de l’estimation de la norme énergétique standard.
- H, P, et l’adaptabilité HP ne sont pas interchangeables. Les indicateurs de douceur et les contrôles de réalité techniques (objectifs de 1 à 5 % des normes énergétiques) fournissent des règles de décision concrètes que la plupart des manuels sautent.
La distinction est importante, car la plupart des chercheurs à qui je parle passent des mois à régler manuellement les maillages sans jamais exécuter de boucle automatisée, et encore plus de difficultés avec les paramètres de tolérance qui gaspillent le calcul ou cachent les erreurs réelles. Cet article couvre les stratégies pratiques de contrôle des erreurs – affinement de maillage adaptatif, réglage de la tolérance, critères de convergence et méthodes axées sur les objectifs – avec des exemples concrets et un cadre de décision clair pour savoir quand utiliser chaque approche.
Si vous n’avez pas lu notre guide sur Méthodes d’estimation et de vérification des erreurs, commencez par là. POST 520 Réponses « Est-ce qu’on résolve les équations correctement? » Cet article répond « Comment gérons-nous activement l’erreur pour atteindre une précision cible ? »
Estimation vs contrôle : la distinction fondamentale
La façon la plus simple d’y penser est par une simple analogie. L’estimation des erreurs est comme un témoin de tableau de bord. Le contrôle des erreurs, c’est quand vous vous arrêtez et résolvez le problème.
Mathématiquement, la distinction est propre :
- Estimation d’erreurs Calcule ou limite l’erreur (ou un proxy) sans connaître la solution exacte. C’est diagnostique.
- contrôle d’erreurs utilise ces estimations pour modifier la discrétisation – affiner le maillage, augmenter le degré polynomial ou ajuster les tolérances du solveur – pour ramener l’erreur dans des limites acceptables.
Vous pouvez estimer l’erreur sans jamais la contrôler. Mais vous ne pouvez pas le contrôler sans l’estimer au préalable.
Cette distinction devient critique lorsque vous êtes sous pression réelle. Un étudiant qui travaille sur une date limite de conférence n’a pas besoin d’une limite d’erreur mondiale certifiée – il a besoin d’une estimation pratique qui lui indique si son maillage est assez fin. Un réviseur de journal, d’autre part, s’attend à ce que la documentation du contrôle des erreurs montre que le comportement de convergence a été activement géré.
Je recommande de traiter l’estimation et le contrôle comme des étapes distinctes avec des objectifs différents. Estimez d’abord pour comprendre votre paysage d’erreurs. Contrôlez la seconde pour y naviguer. Les mélanger dans votre workflow conduit à des ajustements à l’aveugle – en modifiant les tolérances ou en remassant sans savoir ce qui cause réellement l’erreur.
La boucle adaptative : Résoudre → Estimation → Marquer → Affiner
Il s’agit du cheval de bataille d’un contrôle pratique des erreurs. La boucle « Solve → Estimation → Mark → Affiner » n’est pas théorique. Le comprendre vous donne le cadre de raisonner à propos de n’importe quel solveur adaptatif que vous rencontrez.
┌─────────┐ ┌────────────┐ ┌──────────┐ ┌──────────┐
│ │ │ │ │ │ │ │
│ Solve │───→│ Estimate │───→│ Mark │───→│ Refine │
│ (solve │ │ (compute │ │ (select │ │ (split/ │
│ the PDE)│ │ error) │ │ elements│ │ increase│
│ │ │ │ │ to refine)│ p-degree) │
└─────────┘ └────────────┘ └──────────┘ └──────────┘
│ │
│ │
└───────────────────────────────────┘
(repeat until tolerance met)
La boucle adaptative — les visuels seront ajoutés lors de la publication finale.
Voici comment chaque étape fonctionne réellement :
Étape 1 : Résolvez
Exécutez votre solveur sur la discrétisation actuelle. Dans Fenics, ce n’est que solve(formulation, solution) ou quelle que soit la forme que prend votre solveur. Le point clé : vous avez besoin de la solution sur le maillage Current avant de pouvoir estimer l’erreur.
Étape 2 : Estimation
Calculez un indicateur d’erreur local sur chaque élément de maillage. C’est là que les deux principales approches divergent :
- Estimation standard (norme énergétique) calcule un proxy d’erreur global. Il répond : « Comment ma solution est-elle globalement erronée ? »
- Estimation orientée vers les objectifs (adjoint/DWR) Calcule un proxy d’erreur pour une quantité spécifique d’intérêt. Il répond : » À quel point le coefficient de traînée qui m’intéresse est-il erroné ? »
L’estimation prend généralement la forme d’un indicateur d’erreur local η_k pour chaque élément K. De nombreuses implémentations utilisent un gradient reconstruit, une formule résiduelle ou une approche à double poids.
Étape 3 : Marquer
C’est l’étape que la plupart des didacticiels passent au-dessus, mais c’est là que la véritable ingénierie se produit. Vous n’affinez pas chaque élément avec une erreur importante, ce serait inutile. Au lieu de cela, vous sélectionnez les éléments à affiner à l’aide d’une stratégie de marquage.
La stratégie la plus utilisée est le marquage Dörfler, du nom de son inventeur. Voici comment ça marche :
- Calculez tous les indicateurs d’erreur locaux η_k pour chaque élément k.
- Trier les éléments par valeur d’indicateur d’erreur, décroissant.
- accumulez l’erreur totale η_total = σ η_k.
- Sélectionnez les éléments dans l’ordre trié jusqu’à ce que l’erreur accumulée dépasse un seuil : σ_{marqué} η_k ≥ θ · η_total
- Le paramètre θ varie généralement de 0,5 à 0,8.
Voici ce que je choisirais : Commencez par θ = 0,6 pour une approche équilibrée. Si votre simulation est limitée sur les ressources, utilisez θ = 0,5 pour affiner moins d’éléments par cycle. Si vous recherchez une précision certifiée pour un journal, poussez θ vers 0,8 pour attraper plus d’erreurs tôt.
Le saviez-vous ? De nombreux chercheurs ignorent entièrement le marquage Dörfler et utilisent la stratégie de «marquage maximum» plus simple (affinez chaque élément avec η_k > max(η_k)/10). C’est facile à coder, mais il s’affine souvent de manière trop agressive, ce qui entraîne un gaspillage de calcul et des performances potentiellement aggravées sur de gros maillages.
Si vous ne définissez pas du tout θ et que vous utilisez le marquage automatique (comportement par défaut dans certains solveurs), attendez-vous à des cycles de raffinement imprévisibles. Le paramètre contrôle votre budget de raffinement.
Étape 4 : Affiner
Divisez les éléments raffinés (adaptabilité H) ou augmentez le degré polynomial (adaptabilité p). En pratique, cela signifie :
- H-Adaptation : subdivisez les éléments sélectionnés en enfants plus petits. COMSOL le fait automatiquement lorsque vous activez son solveur adaptatif. Dans Fenics, vous appelez
mesh.resize()avec des décomptes de subdivision raffinés. - Adaptation de la p-p : Augmentez l’ordre polynomial sur les éléments avec une erreur élevée (utile pour des solutions fluides où le raffinement H coûte cher).
- Adaptation hp : faites les deux : affinez dans les régions avec des singularités, augmentez le degré polynôme dans les régions lisses.
Ensuite, bouclez pour résoudre. Répétez jusqu’à ce que votre tolérance d’erreur soit atteinte ou que vous atteigniez votre budget de calcul.
La boucle est itérative et non unique. Chaque cycle vous rapproche de la précision de la cible. La plupart des solveurs de production exécutent 5 à 15 cycles avant la convergence.
Tolérance : réglage RTOL et ATOL sans conjecture
Les tolérances des solveurs sont celles où de nombreux chercheurs perdent du temps à calculer, ou pire, cachent de véritables erreurs derrière les paramètres artificiellement lâches.
Dans FENICS (et la plupart des solveurs basés sur PETSC), vous configurez deux tolérances principales :
from fenics import *
# Typical setup
problem = Problem(F, u)
solver = problem.solver()
# The two critical settings
solver.set_absolute_tolerance(1e-12) # atol
solver.set_relative_tolerance(1e-6) # rtol
Voici ce que je souhaite que chaque chercheur comprenne à propos de la tolérance :
La règle de l’échelle
Atol doit être mis à l’échelle par rapport à votre plancher de bruit physique, et non à des nombres abstraits. Si vos processus de simulation modélisent des processus physiques avec une variabilité inhérente à 10 ⁻ ⁸, un atol de 10 ⁻¹ ⁵ n’a pas de sens. — Vous résolvez la précision au-delà de la physique que vous modélisez.
Le piège de la machine Epsilon
Ne fixez jamais de tolérances à proximité de la machine Epsilon (~10⁻¹⁵). Les PETSC et la plupart des solveurs utilisent une arithmétique à virgule flottante, une arithmétique non exacte. Pousser des tolérances aussi serrée ne vous donne pas de précision mathématique – cela vous donne du bruit, des divergences ou des itérations gaspillées. J’ai vu des articles rapporter atol=1e-15 et je me demande pourquoi leur solveur dure 10 × plus longtemps qu’il ne le devrait.
La règle de serrage incrémental
Les tolérances doivent être resserrées progressivement par ordre unique. Commencez par des réglages lâches (RTOL=1E-3, ATOL=1E-8) pour vérifier les exécutions de votre solveur. Puis serrez progressivement :
- RTOL=1E-3 → Vérifier la convergence
- RTOL=1E-6 → Vérifier la stabilité du nombre d’itérations
- RTOL=1E-8 → Vérifier que les résultats sont physiquement raisonnables
Si l’itération compte un pic ou une divergence à une tolérance particulière, vous avez trouvé un plafond pratique. Ne le dépassez pas.
Le signal de nombre d’itérations
Toujours surveiller les itérations à côté des paramètres de tolérance. Un solveur qui nécessite 100 itérations à RTOL=1E-3 et 500 itérations à RTOL=1E-6 vous indique que la convergence est de plus en plus difficile – pas forcément mieux. Si le nombre d’itérations explose sans gains de précision correspondants, la tolérance est trop serrée pour la structure du problème.
Règle pratique
rtol: 1e-6 is a reasonable default for most FEM problems
atol: 1e-10 to 1e-12, scaled to your problem magnitude
Pour les problèmes raides ou mal conditionnés (ce qui est la plupart d’entre eux), envisagez d’utiliser un préconditionneur ainsi que des tolérances plus strictes. Le didacticiel FENICS recommande solver.preconditioner('ilu') ou solver.preconditioner('ml') pour une meilleure mise à l’échelle.
Ce qu’il faut éviter : définir des tolérances une fois et ne jamais les revoir. Vos paramètres de tolérance doivent être documentés à côté de vos paramètres de maillage, tout comme vous le feriez pour documenter le schéma de discrétisation. Si les examinateurs demandent leur précision, vous devriez pouvoir dire « J’ai utilisé RTOL = 1E-6 et confirmé que le resserrement à 1E-8 a modifié le résultat de moins de 0,1 % ».
Contrôle des erreurs orientés vers les objectifs : méthodes associées et DWR
C’est là que le contrôle des erreurs s’écarte fondamentalement de l’approche standard.
L’estimation des erreurs standard demande : « Comment ma solution est-elle globalement erronée ? » L’estimation des erreurs axées sur les objectifs demande : » À quel point le nombre qui m’intéresse est-il réellement erroné ? »
La différence est énorme. Vous pouvez simuler un flux de fluide à travers une géométrie complexe. Une estimation globale d’erreurs énergétiques peut être minuscule – votre solution est globalement « fermée ». Mais le coefficient de traînée sur votre corps peut encore être de 10 % de réduction, car l’erreur est concentrée dans les régions qui comptent pour la traînée, mais pas pour la norme mondiale.
Voici ce que je choisirais : Si votre production dépend d’une quantité spécifique (force de traînée, température maximale, flux de chaleur à travers une limite, concentration à un point de surveillance), le contrôle des erreurs axé sur les objectifs est presque toujours la bonne approche.
Comment fonctionnent les méthodes annexes
La méthode Adjoint (également appelée le reste pondéré discret ou le reste pondéré – DWR –) fonctionne en deux étapes :
- Résoudre le problème primitif (votre PDE d’origine). Cela vous donne la solution u.
- Résoudre le problème adjoint (une PDE associée dérivée de votre quantité d’intérêt). Cela vous donne un champ de sensibilité z qui vous indique comment les modifications de U affectent votre cible.
L’erreur dans votre quantité d’intérêt Q est alors approximée comme suit :
Error(Q) ≈ z^T · R(u)
où r(u) est le résidu de la résolution primale et z est la solution adjointe. Cette formule est élégante car elle transforme l’erreur dans un seul scalaire (Q) en une quantité calculable sans connaître la solution exacte.
Le flux de travail pratique :
- Définissez votre quantité d’intérêt (QOI) comme un ℓ(u).
- résoudre le problème primordial pour vous obtenir.
- Résolvez le problème adjoint avec le terme source défini par ℓ.
- Calculez l’indicateur d’erreur du double poids η_k = z^t · r_k.
- Utilisez le marquage Dörfler (θ=0,5–0,8) pour sélectionner les éléments à raffiner.
- Affiner et boucler.
L’approche Adjoint est mise en œuvre dans Dolfin-Adjoint (FENICS), dans CART3D (Nemec &AftosMis, 2007) et dans plusieurs solveurs commerciaux. Les travaux de Hartmann sur l’estimation des erreurs multicibles montrent comment cela s’adapte à plusieurs QOI (soulevez et faites glisser simultanément, par exemple).
Quand utiliser les méthodes adjointes
Utilisez une estimation axée sur les objectifs lorsque :
- Votre question de recherche dépend d’une quantité mesurable spécifique (et non du champ complet)
- Vous publiez des résultats de simulation que les examinateurs examineront
- L’erreur globale est petite mais votre QOI ne l’est pas (ou vice versa)
- Vous devez justifier des allégations d’exactitude à un comité d’examen ou à un journal
Utilisez une estimation de la norme énergétique standard lorsque :
- Vous avez besoin de limites de précision globale certifiées
- Votre problème est intrinsèquement multi-cible (aucun QOI unique ne domine)
- Le problème annexe est trop coûteux ou impossible à formuler
Une note pratique : La méthode Adjoint double votre charge de travail de résolution (primal + joint). Pour les problèmes coûteux à grande échelle, cela peut être prohibitif. Dans ces cas, envisagez une estimation basée sur le substitut ou des approximations simplifiées.
H, P et HP adaptabilité : quelle stratégie quand ?
Toutes les adaptations de maillage ne sont pas égales. Le choix entre H, P et HP adaptative affecte les taux de convergence, le coût de calcul et même le type de problèmes que vous pouvez résoudre efficacement.
| Stratégie | ce qu’il fait | le mieux adapté pour | taux de convergence | Complexité de mise en œuvre |
|---|---|---|---|---|
| Adaptation des données | Affiner le maillage (éléments divisés) | Problèmes de singularités, discontinuités, gradients nets | Linéaire (O(N^(-1/3)) en 2D pour la norme énergétique) | Faible : la plupart des solveurs le prennent en charge nativement |
| Adaptation des P-P | Augmenter la commande polynomiale | Solutions fluides, flux bien résolus | Exponentiel (O(E^(-BN))) pour des problèmes fluides | Moyenne — Nécessite des bases hiérarchiques |
| Adaptation HP | faire les deux | Mélange de douceur, géométries complexes | Optimal (combiné exponentiel + résolution locale) | Élevé — Nécessite une détection de douceur |
La règle de décision pratique que j’utilise : Vérifiez d’abord la douceur de votre solution. Si la solution est lisse (pas de chocs, de discontinuités ou de couches limites), utilisez la p-adaptabilité – une convergence exponentielle signifie moins d’éléments pour la même précision. Si vous avez des singularités ou des discontinuités (ce qui est courant dans les problèmes d’ingénierie réels), utilisez l’adaptabilité H – le raffinement polynomial seul n’aidera pas. Si votre problème a des caractéristiques mitigées (lisses dans la plupart des régions mais singulières à quelques points), l’adaptabilité HP est optimale mais se fait au détriment de la complexité de la mise en œuvre.
Indicateurs de douceur
Les Šolín et al. (2004) La comparaison montre comment les indicateurs de douceur guident le choix. Un indicateur pratique est la décroissance géométrique des coefficients hiérarchiques – s’ils se décomposent rapidement, la solution est lisse et le raffinement du P sera efficace. S’ils plafonnent ou poussent, vous avez besoin d’un raffinement H.
Contrôle de la réalité technique : La plupart des problèmes pratiques se situent quelque part entre « lisse » et « singulier ». L’objectif de 1 à 5 % de la norme énergétique est une ligne directrice d’ingénierie courante : affiner jusqu’à ce que l’erreur estimée soit inférieure à 1 à 5 % de l’ampleur de la solution. Cela évite le piège théorique de la poursuite de la précision infinie lorsque votre modèle physique a déjà une incertitude inhérente.
Quand utiliser Estimation-First vs Control-First
Tous les flux de travail de contrôle d’erreur ne sont pas égaux. Votre choix entre l’estimation d’abord et le contrôle-première dépend de votre étape dans le processus de recherche.
Approche d’une première estimation
Utiliser quand :
- Explorer un nouveau problème ou une nouvelle géométrie
- Réglage des schémas de discrétisation
- Exécution des balayages de paramètres ou des études de sensibilité
- Préparation des délais de conférence (besoin d’estimations rapides et fiables)
Pourquoi : L’estimation est bon marché. Il ne modifie pas votre maillage ou votre solveur. Vous obtenez immédiatement des informations de diagnostic. C’est la bonne approche lorsque vous cherchez toujours ce que vous regardez.
Que faire : Exécutez un maillage grossier, estimez l’erreur, notez les modèles. Si la répartition des erreurs est logique (grandes limites proches, petites dans la masse), votre discrétisation fonctionne. Si l’erreur est concentrée là où vous ne vous y attendez pas, étudiez le schéma de discrétisation.
Approche de contrôle-première
Utiliser quand :
- Produire des résultats de qualité de publication
- Soumission à des revues ou comités d’examen qui nécessitent une documentation
- Exécution de simulations de production où la précision n’est pas négociable
- Communiquer les résultats aux parties prenantes qui ont besoin d’une précision certifiée
Pourquoi : Contrôle modifie vos paramètres de maillage et de solveur. C’est cher (plus de résolutions, plus de calcul). Mais cela garantit que votre erreur est limitée. C’est la bonne approche lorsque vous avez fini d’explorer et prêt à publier.
Que faire : Exécutez la boucle adaptative complète. Documentez les cycles de raffinement, les paramètres de tolérance et l’estimation finale des erreurs. Cette documentation est ce que les examinateurs demandent lorsqu’ils souhaitent savoir « à quel point votre résultat est-il précis ? »
Je recommande de définir cela comme un arbre de décision : explorez-vous (d’abord d’estimation) ou produisez-vous (contrôle d’abord) ? Votre réponse détermine votre flux de travail. N’exécutez pas une boucle adaptative pour l’exploration – cela gaspille le calcul. N’utilisez pas les estimations brutes pour la publication — Les examinateurs attendent de la documentation.
Ce qu’il faut éviter
Voici les erreurs les plus courantes que je vois que les chercheurs commettent lors de la mise en œuvre du contrôle des erreurs :
1. Définir des tolérances une fois et ne jamais les revoir. Vos paramètres de tolérance doivent faire partie de votre méthodologie documentée. Si vous modifiez des maillages, des discrétisations ou des solveurs, vérifiez à nouveau les tolérances.
2. confondre la convergence du solveur avec la précision de la discrétisation. Un solveur qui converge vers rtol=1e-6 n’est pas nécessairement exact – c’est juste cohérent. La précision dépend de la résolution du maillage, de l’ordre de discrétisation et de la fidélité du modèle physique. Toujours exécuter une étude de convergence (le poste 520 couvre ceci) ainsi que le réglage de la tolérance.
3. en utilisant le même θ pour chaque problème. Le paramètre θ du marquage Dörfler doit être réglé par type de problème. A θ de 0,5 pour l’exploration, 0,6 pour la production, 0,8 pour la certification – et non une taille unique.
4. Exécution de la boucle adaptative trop peu de fois. La plupart des solveurs ont besoin de 5 à 15 cycles avant que l’estimation d’erreur ne se stabilise. Trois cycles ne suffisent presque jamais.
5. Ignorer le nombre d’itérations lors du réglage des tolérances. Si le resserrement de RTOL de 1E-3 à 1E-6 double votre nombre d’itérations, demandez si la précision supplémentaire de 0,1 % vaut le coût de calcul de 100 %.
6. En utilisant des méthodes adjointes sans comprendre le QOI. L’approche adjointe est puissante, mais si votre quantité d’intérêt n’est pas bien définie (ou si le problème adjoint n’existe pas), cela n’aidera pas. Vérifiez la formulation adjointe avant d’investir le double coût de résolution.
Résumé + Étapes suivantes
Le contrôle des erreurs est le pont entre « J’ai résolu les équations » et « J’ai résolu les équations correctement ». Voici comment y penser pratiquement :
Estimation d’abord. Comprenez votre paysage d’erreurs avec des estimations de diagnostic. Exécutez un maillage grossier, calculez des indicateurs d’erreur et recherchez des modèles.
Contrôle en second. Utilisez la boucle « Résoudre → Estimation → Marquer → Affiner » pour réduire activement l’erreur. Définissez θ=0,6 pour le marquage Dörfler comme point de départ. Serrer les tolérances de manière incrémentielle.
Choisissez H, P ou HP en fonction de la douceur. Solutions lisses → P-adaptabilité. Singularités → H-adaptabilité. Mixte → HP-Adaptation (si vous pouvez gérer la complexité).
Ciblez des quantités spécifiques avec des méthodes conjuguées. Lorsque votre QOI est plus important que le champ global, l’approche Adjoint/DWR vous donne une précision ciblée sans affinement.
Documentez tout. Les paramètres de tolérance, les valeurs θ, les cycles de convergence et les estimations finales des erreurs doivent faire partie de votre méthodologie publiée, et non des réflexions après coup.
Si vous souhaitez approfondir, explorez notre article complémentaire sur Méthodes d’estimation et de vérification des erreurs pour la fondation, et lisez notre guide sur pas de temps adaptatif pour le contrôle des erreurs temporelles ainsi que l’adaptation spatiale.
Guides connexes
- Méthodes d’estimation et de vérification des erreurs : de l’erreur de troncature à la vérification du code : la pièce d’accompagnement qui couvre l’erreur de troncature, le MMS et Etudes de convergence. Lisez ceci en premier si vous ne l’avez pas encore fait.
- Modalage adaptatif pour les solveurs PDE : estimation des erreurs et CFL — contrôle d’erreur temporelle qui complète l’AMR spatiale. Essentiel pour les PDE dépendant du temps.
- Adaptation anisotrope de maillage pour les flux dominés par l’advection – des stratégies d’adaptation de maillage spécialisées lorsque la direction du flux domine la distribution des erreurs.
Références externes utilisées dans cet article :
- Becker, R. & Rannacher, R. (2001) — « Une approche de contrôle optimal de l’estimation des erreurs a posteriori dans les méthodes des éléments finis » – Guide pratique fondamental pour le cycle « solve-estimation-marque-raffiner ». Acta Numerica Vol. 10.
- Nemec, M. & Aftosmis, M.J. (2007) — « Estimation d’erreurs adjointes et raffinement adaptatif pour les mailles cartésiennes de limites intégrées » – source principale pour le contrôle des erreurs orientés sur les objectifs basés sur Adjoint/DWR.
- Comsol 6.4 Algorithmes de solveur adaptatif et estimation des erreurs : flux de travail de contrôle des erreurs de niveau technique avec des formules explicites.
- Didacticiel Fenics (LangtanGen 2011) – Résolution des PDE en minutes – Mise en œuvre de Python de l’accord de tolérance, des études de convergence et de l’AMR.