tl;dr
Avant d’exécuter une simulation scientifique, vérifiez que le maillage passe des contrôles de qualité géométriques, puis prouvez que les résultats ne changent pas de manière significative avec un raffinement supplémentaire.
Une étude de convergence de maillage utilisant au moins trois niveaux de grille peut quantifier l’erreur de discrétisation via l’extrapolation de Richardson et l’indice de convergence de la grille. Ce guide explique les mesures clés, les seuils pratiques et les étapes de calcul avec des exemples Python.
Points à retenir clés
- La qualité du maillage détermine si un solveur peut converger de manière fiable. De mauvaises formes de maillage peuvent entraîner une diffusion numérique, une instabilité et une divergence avant que la précision ne devienne significative.
- La convergence du maillage prouve que les résultats ne dépendent pas fortement de la résolution du maillage. C’est l’une des étapes les plus importantes de la vérification de la solution dans le calcul scientifique.
- L’indice de convergence de la grille est une mesure standard pour signaler l’incertitude induite par le maillage dans les résultats de la simulation.
- L’extrapolation de Richardson estime la valeur du continu à l’espacement des grilles nulles et peut être implémentée avec un code Python compact.
Pourquoi la qualité du maillage est importante avant même de commencer
Si un CFD, un transfert de chaleur ou une simulation structurelle divergent, le maillage est souvent l’une des premières choses à inspecter. La qualité du maillage n’est pas un détail abstrait. Il détermine si le schéma numérique peut produire des résultats stables et physiquement significatifs.
Vous pouvez disposer d’un solveur sophistiqué, d’un modèle de turbulence puissante et de conditions aux limites soigneusement sélectionnées. Mais si le maillage contient des cellules biaisées, étirées, inversées ou mal notées, les erreurs numériques peuvent dominer la solution.
La communauté de maillage utilise généralement six mesures de base pour juger si un maillage est utilisable.
| Métrique | Ce qu’il mesure | bonne portée | Gamme critique à éviter | Pourquoi c’est important |
|---|---|---|---|---|
| Qualité orthogonale | Alignement des faces des cellules avec des vecteurs de centre à centre | Au-dessus de 0,15, avec 1,0 idéal | en dessous de 0,01 | Une mauvaise orthogonalité entraîne une perte de précision et une divergence en termes de diffusion |
| asymétrie | Dans quelle mesure un élément s’écarte de sa forme idéale | En dessous de 0,5 pour FEA, en dessous de 0,75 pour de nombreux flux de travail CFD | Au-dessus de 0,85 pour FEA, au-dessus de 0,95 pour CFD | Une asymétrie élevée introduit la diffusion numérique et une mauvaise interpolation |
| rapport d’aspect | Rapport entre la dimension la plus longue et la plus courte dans une cellule | 1 à 5 pour de nombreux maillages FEA ; Plus élevé peut être acceptable dans les couches limites CFD alignées | au-dessus de 10 à 20 pour les régions FEA générales ; Valeurs très élevées dans les régions CFD non alignées | Les rapports d’aspect élevés dans la mauvaise région réduisent la précision du gradient |
| ratio jacobien | Distorsion d’éléments à partir de sa forme de référence idéale | Positif et confortablement au-dessus de zéro | Négatif ou proche de zéro | Les Jacobiens négatifs indiquent des éléments inversés et provoquent généralement une défaillance du solveur |
| Taux d’expansion volumétrique | Rapport de volume entre les cellules adjacentes | en dessous de 1,5–2,0 | au-dessus de 3,0 | Les sauts de volume nets créent des erreurs de troncature |
| Angle maximum et minimum | Angles intérieurs extrêmes à l’intérieur | environ 20°–140° pour les triangles et 30°–150° pour les quads | moins de 5° ou plus 170° | Des angles extrêmes créent des matrices mal conditionnées et une mauvaise interpolation |
Les bonnes plages ci-dessus représentent des valeurs de base pratiques utilisées dans de nombreux flux de travail de simulation. Les seuils exacts varient selon le solveur, le type d’élément, la méthode numérique et le modèle physique. Vérifiez toujours la documentation du solveur que vous utilisez.
Les six mesures de qualité du maillage, expliquées
1. Qualité orthogonale
La qualité orthogonale est particulièrement importante dans les flux de travail à volume fini et CFD. Il mesure dans quelle mesure une face de cellule normale s’aligne avec le vecteur reliant les centres de cellules voisins.
Si cet alignement est médiocre, les calculs de gradient de face deviennent moins précis. Cela peut endommager les termes de diffusion, les calculs de flux et la reconstruction du gradient de pression.
Pour les utilisateurs de Fipy, cela compte car Fipy repose sur des opérations de volume fini basée sur le visage. Si le maillage a une orthogonalité médiocre, les calculs de gradient de visage peuvent introduire une erreur de troncature qui se développe à travers les itérations.
Un conseil pratique : si une simulation diverge sur un maillage qui semble visuellement acceptable, inspectez la distribution de la qualité orthogonale. Même un petit groupe de cellules pauvres peut affecter la stabilité globale.
2. Objectif
L’asymétrie mesure la distance entre un élément et sa forme idéale. Pour les triangles et les tétraèdres, la forme idéale est proche de l’équilatéral. Pour les quadrilatères et les hexaèdres, la forme idéale est plus proche de la proportion orthogonale et uniformément proportionnée.
Une asymétrie élevée rend l’interpolation entre les centres cellulaires moins fiable. Il peut introduire une diffusion artificielle, des gradients inexacts et une réduction de l’ordre de précision.
Une certaine asymétrie est courante à proximité des coins, des filets et de la géométrie complexe. L’objectif est de garder les cellules hautement asymétriques à l’écart des régions où vous extrayez des résultats importants.
3. Rapport d’aspect
Le rapport d’aspect est le rapport entre la dimension la plus longue et la plus courte dans une cellule. Les faibles rapports d’aspect sont généralement plus sûrs pour les mailles à usage général.
Il existe une exception importante : les couches limites CFD. Près des murs, les cellules étirées peuvent être utiles et nécessaires car les gradients physiques sont fortement directionnels. Dans ce cas, les cellules à rapport d’aspect élevé sont acceptables lorsqu’elles s’alignent sur la physique.
Le rapport d’aspect devient nocif lorsque l’étirement n’est pas aligné avec le gradient attendu. Dans les zones de concentration de contraintes, les fronts de réaction ou les régions de mélange, des cellules étirées mal alignées peuvent détruire la précision.
4. Ratio jacobien
Le rapport jacobien mesure la mesure dans laquelle un élément est déformé à partir de sa forme de référence idéale. Un Jacobien négatif signifie qu’un élément est inversé.
Les Jacobiens négatifs sont de graves erreurs de maillage. Ils indiquent généralement une géométrie invalide, un ordre de nœud incorrect ou une distorsion d’éléments extrêmes. Il s’agit d’un problème de maillage, et non d’une fonction de solveur.
Si vous voyez des Jacobiens négatifs, corrigez la géométrie CAO, supprimez les éclats, comblez de petits écarts ou ajustez les paramètres de maillage avant d’exécuter la simulation.
5. Taux d’expansion volumique
Le taux d’expansion volumique mesure la rapidité avec laquelle le volume cellulaire passe d’une cellule à l’autre. Les transitions douces sont généralement meilleures car les schémas numériques supposent que la variation spatiale n’est pas brutale à l’échelle de la grille.
En règle générale, gardez les rapports de volume des cellules adjacentes en dessous d’environ 1,5 à 2,0 lorsque cela est possible. Les sauts pointus peuvent créer des erreurs de troncature et une instabilité localisée.
6. Angle maximum et minimum
Les angles intérieurs montrent si un élément est géométriquement sain. Les très petits angles créent des éléments minces. Les très grands angles sont souvent corrélés à une asymétrie élevée ou à un rapport d’aspect élevé.
Les deux cas peuvent rendre les matrices mal conditionnées et réduire la précision de l’interpolation. Dans les flux de travail par éléments finis, les angles médiocres peuvent être particulièrement dommageables pour le conditionnement de la matrice de rigidité.
Études de convergence de maillage : la preuve des résultats est indépendante
Après avoir vérifié la qualité du maillage, l’étape suivante est une étude de convergence de maillage, également appelée étude de raffinement de la grille.
L’objectif est simple : prouver que le résultat ne change pas de manière significative lorsque le maillage est raffiné. Si le résultat change fortement, le maillage n’est pas assez fin pour la quantité qui vous intéresse.
L’approche standard à trois grilles
Une étude de convergence rigoureuse devrait utiliser au moins trois niveaux de maillage :
- Grille grossière, généralement appelée
h₃. - Grille moyenne, généralement appelée
h₂. - Grille fine, généralement appelée
h₁.
Le rapport de raffinement doit être aussi cohérent que possible. Un rapport proche de 2,0 est courant car chaque niveau de grille réduit la taille de la cellule caractéristique.
Pourquoi trois grilles au lieu de deux ?
Avec deux grilles, vous pouvez estimer une modification du résultat, mais vous ne pouvez pas vérifier de manière fiable si la solution est dans la plage de convergence asymptotique.
La plage asymptotique est le régime où l’erreur numérique diminue de manière prévisible à mesure que le maillage est raffiné. Trois grilles vous permettent d’estimer l’ordre de convergence observé et de détecter si le comportement de raffinement est cohérent.
La procédure étape par étape
Étape 1 : Choisissez une quantité d’intérêt
Choisissez une quantité scalaire qui représente le résultat qui vous intéresse. Les choix courants comprennent :
- coefficient de traînée
- pic de contrainte.
- Perte de pression.
- température à un point sélectionné.
- Énergie totale, débit massique ou une autre quantité intégrale.
Cette quantité est généralement écrite comme φ. Vous allez l’extraire de chaque niveau de maillage.
Étape 2 : Exécutez des simulations sur les trois grilles
Exécutez la même simulation sur les maillages grossiers, moyens et fins. Gardez les conditions aux limites, les paramètres du solveur, les paramètres physiques et les critères de convergence.
Ne comptez pas uniquement sur les résidus. Surveillez également la quantité d’intérêt. Un résidu peut sembler acceptable alors que la production réelle ou scientifique est encore en évolution.
Étape 3 : Calculez l’ordre d’approximation observé
L’ordre d’approximation observé, généralement écrit comme p, vous indique à quelle vitesse l’erreur diminue avec le raffinement du maillage.
Pour trois grilles avec un rapport de raffinement constant r, une estimation pratique est :
p = ln(|(φ₃ - φ₂) / (φ₂ - φ₁)|) / ln(r)
Implémentation de Python :
import numpy as np
def compute_observed_order(phi_coarse, phi_medium, phi_fine, r):
"""Compute observed order of approximation for three grid levels."""
eps_32 = phi_coarse - phi_medium
eps_21 = phi_medium - phi_fine
if eps_21 == 0:
raise ValueError("Medium-fine difference is zero; cannot compute observed order.")
ratio = abs(eps_32 / eps_21)
if ratio <= 0:
raise ValueError("Invalid error ratio; check grid results.")
return np.log(ratio) / np.log(r)
Si la méthode est nominalement de second ordre, un ordre pratique observé pourrait être proche de 2,0. Des valeurs inférieures peuvent indiquer des problèmes de qualité de maillage, des effets aux limites, un comportement non linéaire ou que les grilles ne sont pas encore dans la plage asymptotique.
Étape 4 : Appliquer l’extrapolation de Richardson
L’extrapolation de Richardson estime la valeur du continuum à l’espacement des grilles nulles. Il améliore l’estimation au-delà du résultat de la grille fine en utilisant les résultats fins et moyens ainsi que l’ordre observé.
def richardson_extrapolation(phi_medium, phi_fine, r, p):
"""Estimate the continuum value using Richardson extrapolation."""
denominator = r**p - 1
if denominator == 0:
raise ValueError("Invalid denominator; check refinement ratio and observed order.")
return phi_fine + (phi_fine - phi_medium) / denominator
Cela ne remplace pas la validation, mais donne une estimation utile de la valeur numérique indépendante du maillage.
Étape 5 : Calculez l’indice de convergence de la grille
L’indice de convergence de la grille quantifie le pourcentage d’incertitude causée par la résolution de maillage. Il est couramment utilisé pour signaler la convergence de maillage de manière standardisée.
def calculate_gci(phi_medium, phi_fine, r, p, safety_factor=1.25):
"""Calculate fine-grid Grid Convergence Index as a percentage."""
if phi_fine == 0:
raise ValueError("Fine-grid value is zero; relative GCI is undefined.")
denominator = r**p - 1
if denominator == 0:
raise ValueError("Invalid denominator; check refinement ratio and observed order.")
apparent_relative_error = abs((phi_fine - phi_medium) / phi_fine)
gci = safety_factor * apparent_relative_error / denominator
return gci * 100
Le facteur de sécurité est important :
- Utilisez
1.25lorsque vous utilisez trois ou plusieurs grilles. - Utilisez une valeur plus prudente lorsque seules deux grilles sont disponibles, bien que deux grilles ne soient pas recommandées pour les rapports rigoureux.
Étape 6 : Vérifiez la plage asymptotique
Pour vérifier si les grilles sont dans la plage asymptotique, comparez les valeurs GCI entre la paire moyenne-fine et la paire moyenne-moyenne.
def asymptotic_range_ratio(gci_32, gci_21, r, p):
"""Check whether grid convergence is close to the asymptotic range."""
if gci_21 == 0:
raise ValueError("Fine-grid GCI is zero; asymptotic ratio is undefined.")
return gci_32 / (gci_21 * r**p)
Une valeur proche de 1,0 suggère que la séquence de la grille approche de la plage asymptotique. De grands écarts suggèrent que plus de raffinement peut être nécessaire ou que la quantité sélectionnée d’intérêt ne converge pas en douceur.
Un exemple concret
Supposons que vous simulez le flux à travers un tuyau et que vous extrayez la récupération de pression à partir de trois grilles.
| La grille | nœuds | Récupération de pression |
|---|---|---|
| Bien | 100 000 | 0.97050 |
| MOYEN | 25 000 | 0.96854 |
| Grossier | 6 250 | 0,96178 |
Supposons que le rapport de raffinement est r = 2.0.
Ordre observé :
p = ln(|(0.96178 - 0.96854) / (0.96854 - 0.97050)|) / ln(2)
p = 1.786
Extrapolation de Richardson :
φ_ext = 0.97050 + (0.97050 - 0.96854) / (2^1.786 - 1)
φ_ext ≈ 0.97130
Grille fine GCI :
GCI_21 = 1.25 × |0.97050 - 0.96854| / 0.97050 / (2^1.786 - 1)
GCI_21 ≈ 0.103%
Cela signifie que la récupération de la pression de la grille fine est proche de la valeur du continuum estimé, avec une incertitude induite par le maillage d’environ 0,1 %. C’est le type de résultat qui peut être signalé dans un flux de travail de simulation rigoureux.
Vérification de la convergence du maillage ou du code
La convergence du maillage et la vérification du code sont liées, mais elles ne sont pas les mêmes.
- La vérification du code demande si le code résout correctement les équations.
- La convergence du maillage demande si cette solution spécifique est indépendante de la résolution du maillage.
La convergence de maillage est une étape de vérification de la solution. Il estime l’erreur numérique pour une configuration de simulation. Cela ne prouve pas que le code est correct en général et ne prouve pas que le modèle représente la réalité.
Un flux de travail pratique est :
- Utilisez la vérification de code, comme les solutions fabriquées, pour vérifier la mise en œuvre.
- Utilisez la convergence de maillage pour vérifier l’incertitude numérique des simulations de production.
- Utilisez la validation par rapport à des expériences ou des données de référence pour vérifier la crédibilité physique.
Erreurs courantes dans les études de convergence de maillage
- en utilisant seulement deux grilles. Cela empêche un contrôle fiable de la plage asymptotique et de l’ordre observé.
- en utilisant un raffinement incohérent. L’affinage d’une seule direction ou la modification de la topologie de maillage trop peut briser l’hypothèse du rapport de raffinement.
- Ignorer la qualité du maillage. Un maillage plus fin avec des cellules pauvres peut converger vers la mauvaise réponse.
- Surveillance de la mauvaise quantité. La quantité d’intérêt devrait représenter la conclusion scientifique ou technique qui vous intéresse.
- Arrêt basé uniquement sur les résidus. Les résidus ne prouvent pas toujours que la quantité d’intérêt s’est stabilisée.
- Traiter GCI comme une preuve d’exactitude physique. Un faible GCI signifie uniquement que l’incertitude induite par le maillage est faible. La validation est toujours requise.
Adaptation et automatisation du maillage
Les flux de travail modernes utilisent de plus en plus l’adaptation de maillage. Au lieu de construire manuellement une séquence fixe de maillages, la simulation affine ou grossit les régions en fonction d’indicateurs d’erreur.
Les approches d’adaptation courantes comprennent :
- Adaptation H, où les cellules sont raffinées ou grossières localement.
- Adaptation p, où l’ordre polynomial augmente dans les régions avec des gradients élevés.
- Approches hybrides qui combinent le raffinement local du maillage et les méthodes d’ordre supérieur.
L’outillage Python pour les études de convergence est également en train d’émerger. Les scripts peuvent automatiser l’extrapolation de Richardson, les calculs GCI, les tracés de convergence et les tableaux de rapports.
Quand arrêter de raffiner
Vous n’affinez pas pour toujours. Le raffinement du maillage doit cesser lorsque la précision supplémentaire ne justifie plus le coût de calcul.
Les conditions d’arrêt courantes comprennent :
- GCI est inférieur à la tolérance requise pour le projet.
- Le raffinement supplémentaire coûte beaucoup plus cher, mais ne modifie que légèrement le résultat.
- Les limites matérielles rendent le prochain niveau de raffinement impraticable.
| Situation | Niveau de maillage recommandé |
|---|---|
| Exploration préliminaire de la conception | Un maillage grossier pour les tendances qualitatives |
| Analyse technique avec un objectif GCI | Mesh moyen à fin, ciblant souvent GCI en dessous de 2 % |
| Simulation de niveau de publication | Maille fine, ciblant souvent GCI en dessous de 1 % avec la documentation |
| Utilisation critique ou réglementaire | Mesh très fin plus workflow de vérification et de validation complet |
Une liste de contrôle pratique pour votre prochaine simulation
Avant d’exécuter une simulation de production, vérifiez les points suivants :
- Rapport sur la qualité du maillage : chaque cellule doit passer les seuils de qualité pour le solveur et le type d’élément.
- Qualité orthogonale : pour les flux de travail CFD ou volumes finis, vérifiez si les cellules médiocres tombent en dessous des limites acceptables.
- Objectif : Inspectez la valeur maximale et la distribution, pas seulement la moyenne.
- Jacobien : Confirmez qu’aucun élément n’a de Jacobiens négatifs.
- Étude de convergence à trois grilles : utilisez des mailles grossières, moyennes et fines avec un rapport de raffinement cohérent.
- Calcul GCI : signalez la valeur en pourcentage et appliquez correctement le facteur de sécurité.
- Vérification de la plage asymptotique : comparez si possible le comportement de convergence successif.
- Quantité d’intérêt : Surveillez de manière cohérente le même résultat scalaire à tous les niveaux de la grille.
- Convergence complète : vérifiez les résidus et les changements de solution avant d’extraire les résultats.
- Documentation : enregistrez les tailles de maillage, les paramètres du solveur, les valeurs GCI et les tracés de convergence.
Guides connexes
- validation et vérification des simulations PDE : un cadre pratique – MMS, vérification de code et validation.
- méthode de volume fini expliquée simplement — la base de volume fini derrière les calculs dépendant du maillage.
- Comprendre l’architecture de base de Fipy — Comment Fipy gère les maillages et la discrétisation en interne.
Résumé et étapes suivantes
Les études de qualité et de convergence de maillage ne sont pas des extras optionnels. Ils font partie de la simulation scientifique crédible.
Un flux de travail rigoureux commence par des contrôles de qualité géométriques, puis passe à une preuve de convergence quantitative. Les ingrédients essentiels sont les mesures de qualité du maillage, trois niveaux de grille, l’ordre observé, l’extrapolation de Richardson et la génération de rapports GCI.
Pour votre prochain projet, vérifiez le flux de travail de simulation actuel. Si vous exécutez des calculs à maillage unique sans rapport de qualité de maillage ni étude de convergence, ajoutez ces étapes avant de traiter le résultat comme final.
Pour les utilisateurs de FIPY, vérifiez que les maillages dépassent les seuils de qualité et exécutent une étude de convergence à trois niveaux sur un problème représentatif avant les simulations de production. Documentez les valeurs GCI et le comportement de convergence. Cette pratique sépare les travaux de simulation rigoureux des conjectures.
Ce guide synthétise une méthodologie établie à partir de la recherche sur la convergence de grille, des flux de travail de vérification de style NASA, des pratiques de rapport GCI et des conseils pratiques sur la qualité des mailles utilisés dans les communautés de CFD, FEA et de simulation scientifique.