TL; DR
Stellen Sie vor einer wissenschaftlichen Simulation sicher, dass das Netz geometrische Qualitätsprüfungen besteht, und stellen Sie dann nach, dass sich die Ergebnisse bei weiterer Verfeinerung nicht wesentlich ändern.
Eine Netzkonvergenzstudie, bei der mindestens drei Gitterebenen verwendet werden, kann Diskretisierungsfehler durch Richardson-Extrapolation und den Gitterkonvergenzindex quantifizieren. Dieser Leitfaden erklärt die wichtigsten Metriken, praktischen Schwellenwerte und Berechnungsschritte anhand von Python-Beispielen.
Schlüssel zum Mitnehmen
- Die Netzqualität bestimmt, ob ein Solver zuverlässig konvergieren kann. Schlechte Netzformen können numerische Diffusion, Instabilität und Divergenz verursachen, bevor die Genauigkeit sinnvoll wird.
- Die Netzkonvergenz zeigt, dass die Ergebnisse nicht stark von der Netzauflösung abhängen. Es ist einer der wichtigsten Lösungsüberprüfungsschritte im wissenschaftlichen Rechnen.
- Der Gitterkonvergenzindex ist eine Standardmetrik für die Meldung der netzinduzierten Unsicherheit in Simulationsergebnissen.
- Die Richardson-Extrapolation schätzt den Kontinuumswert bei Null-Rasterabstand und kann mit kompaktem Python-Code implementiert werden.
Warum die Netzqualität wichtig ist, bevor Sie überhaupt anfangen
Wenn ein CFD, eine Wärmeübertragung oder eine Struktursimulation unterschiedlich ist, ist das Netz häufig eines der ersten zu untersuchenden Dinge. Mesh-Qualität ist kein abstraktes Detail. Es bestimmt, ob das numerische Schema stabile und physikalisch aussagekräftige Ergebnisse liefern kann.
Sie können einen ausgeklügelten Solver, ein starkes Turbulenzmodell und sorgfältig ausgewählte Randbedingungen haben. Wenn das Netz jedoch schräg, gedehnte, invertierte oder schlecht abgestufte Zellen enthält, können numerische Fehler die Lösung dominieren.
Die Meshing-Community verwendet häufig sechs Kernmetriken, um zu beurteilen, ob ein Netz verwendbar ist.
| Metrisch | Was es misst | Gute Reichweite | kritischer Bereich zu vermeiden | Warum es wichtig ist |
|---|---|---|---|---|
| Orthogonale Qualität | Ausrichtung der Zellfläche mit Vektoren von Mitte zu Mitte | über 0,15, mit 1,0 ideal | unter 0,01 | Schlechte Orthogonalität verursacht Genauigkeitsverlust und Divergenz in Diffusionsbegriffen |
| Schiefe | Wie sehr weicht ein Element von seiner idealen Form ab? | unter 0,5 für FEA, unter 0,75 für viele CFD-Workflows | über 0,85 für FEA, über 0,95 für CFD | Hohe Schiefe führt numerische Diffusion und schlechte Interpolation ein |
| Seitenverhältnis | Verhältnis der längsten zur kürzesten Dimension in einer Zelle | 1–5 für viele FEA-Maschen; Höher kann in ausgerichteten CFD-Grenzschichten akzeptabel sein | über 10–20 für allgemeine FEA-Regionen; Sehr hohe Werte in nicht ausgerichteten CFD-Regionen | Hohe Seitenverhältnisse im falschen Bereich verringern die Genauigkeit der Gradienten |
| Jacobian-Verhältnis | Elementverzerrung aus seiner idealen Referenzform | Positiv und bequem über Null | Negativ oder nahe Null | Negative Jacobis weisen invertierte Elemente auf und verursachen normalerweise ein Ausfall der Solver |
| Volumetrisches Expansionsverhältnis | Volumenverhältnis zwischen benachbarten Zellen | unter 1,5–2,0 | über 3,0 | Scharfe Lautstärkesprünge erzeugen Kürzungsfehler |
| Maximaler und minimaler Winkel | Extreme Innenwinkel in den Elementen | ca. 20°–140° für Dreiecke und 30°–150° für Quads | unter 5° oder über 170° | Extreme Winkel erzeugen schlecht konditionierte Matrizen und schlechte Interpolation |
Die oben genannten guten Bereiche stellen praktische Basiswerte dar, die in vielen Simulationsworkflows verwendet werden. Die genauen Schwellenwerte variieren je nach Solver, Elementtyp, numerischer Methode und physikalischem Modell. Überprüfen Sie immer die Dokumentation des verwendeten Solvers.
Die sechs Metriken der Mesh-Qualität, erklärt
1. Orthogonale Qualität
Die orthogonale Qualität ist besonders wichtig bei endlichen Volumen- und CFD-Workflows. Es misst, wie gut eine Zellfläche normal mit dem Vektor ausrichtet, der benachbarte Zellzentren verbindet.
Wenn diese Ausrichtung schlecht ist, werden die Berechnungen des Gesichtsgradienten weniger genau. Dies kann Diffusionsbedingungen, Flussberechnungen und Druckgradientenrekonstruktionen beschädigen.
Für FIPY-Benutzer ist dies wichtig, da FIPY auf face-basierten Finite-Volumen-Operationen angewiesen ist. Wenn das Netz eine schlechte Orthogonalität aufweist, können Gesichtsgradientenberechnungen einen Kürzungsfehler verursachen, der über Iterationen hinweg wächst.
Ein praktischer Tipp: Wenn eine Simulation auf einem optisch akzeptablen Netz voneinander abweicht, überprüfen Sie die orthogonale Qualitätsverteilung. Selbst eine kleine Gruppe armer Zellen kann die globale Stabilität beeinträchtigen.
2. Schiefe
Die Schiefe misst, wie weit ein Element von seiner idealen Form entfernt ist. Für Dreiecke und Tetraeder ist die ideale Form nahe am gleichseitig. Bei Vierecken und Hexahedra ist die ideale Form näher an orthogonal und gleichmäßig proportioniert.
Hohe Schiefe macht die Interpolation zwischen Zellzentren weniger zuverlässig. Es kann künstliche Diffusion, ungenaue Gradienten und eine verringerte Genauigkeitsreihenfolge einführen.
Etwas Schiefe ist in der Nähe von Ecken, Filets und komplexer Geometrie üblich. Ziel ist es, stark verzerrte Zellen von den Regionen fernzuhalten, in denen Sie wichtige Ergebnisse extrahieren.
3. Seitenverhältnis
Das Seitenverhältnis ist das Verhältnis der längsten zur kürzesten Dimension in einer Zelle. Niedrige Seitenverhältnisse sind in der Regel sicherer für Allzwecknetze.
Es gibt eine wichtige Ausnahme: CFD-Grenzschichten. In der Nähe von Wänden können gestreckte Zellen nützlich und notwendig sein, da die physikalischen Gradienten stark gerichtet sind. In diesem Fall sind Zellen mit hohem Seitenverhältnis akzeptabel, wenn sie sich an der Physik ausrichten.
Das Seitenverhältnis wird schädlich, wenn die Dehnung nicht mit dem erwarteten Gradienten ausgerichtet ist. In Spannungskonzentrationszonen, Reaktionsfronten oder Mischbereichen können schlecht ausgerichtete gestreckte Zellen die Genauigkeit zerstören.
4. Jacobian-Verhältnis
Das Jacobi-Verhältnis misst, wie stark ein Element von seiner idealen Referenzform verzerrt wird. Ein negativer Jacobian bedeutet, dass ein Element invertiert ist.
Negative Jacobis sind schwere Netzfehler. Sie zeigen normalerweise eine ungültige Geometrie, eine falsche Knotenreihenfolge oder eine extreme Elementverzerrung an. Dies ist ein Vernetzungsproblem, keine Solver-Funktion.
Wenn Sie negative Jacobien sehen, korrigieren Sie die CAD-Geometrie, entfernen Sie Splitter, schließen Sie kleine Lücken oder passen Sie die Vernetzungsparameter an, bevor Sie die Simulation ausführen.
5. Volumetrisches Expansionsverhältnis
Das volumetrische Expansionsverhältnis misst, wie schnell sich das Zellvolumen von einer Zelle zur nächsten ändert. Glatte Übergänge sind normalerweise besser, da numerische Schemata davon ausgehen, dass die räumliche Variation im Gittermaßstab nicht abrupt ist.
Als Faustregel gilt, dass benachbarte Zellvolumenverhältnisse, wenn möglich, unter etwa 1,5–2,0 liegen. Scharfe Sprünge können zu Verkürzungsfehlern und lokalisierten Instabilität führen.
6. Maximaler und minimaler Winkel
Innenwinkel zeigen an, ob ein Element geometrisch gesund ist. Sehr kleine Winkel erzeugen dünne Splitterelemente. Sehr große Winkel korrelieren oft mit hoher Schiefe oder hohem Seitenverhältnis.
Beide Fälle können Matrizen schlecht konditioniert machen und die Interpolationsgenauigkeit verringern. In Finite-Elemente-Workflows können schlechte Winkel besonders schädlich für die Konditionierung der Steifheitsmatrix sein.
Mesh-Konvergenzstudien: Beweisergebnisse sind unabhängig
Nach der Überprüfung der Netzqualität ist der nächste Schritt eine Netzkonvergenzstudie, die auch als Gitterverfeinerungsstudie bezeichnet wird.
Das Ziel ist einfach: Beweisen Sie, dass sich das Ergebnis nicht wesentlich ändert, wenn das Netz verfeinert wird. Wenn sich das Ergebnis stark ändert, ist das Netz für die Menge, die Ihnen wichtig ist, nicht ausreichend.
Der Standard-Drei-Grid-Ansatz
Eine strenge Konvergenzstudie sollte mindestens drei Netzebenen verwenden:
- Grobes Gitter, normalerweise
h₃genannt. - Medium Grid, normalerweise
h₂genannt. - Feines Gitter, normalerweise
h₁genannt.
Das Verfeinerungsverhältnis sollte so konsistent wie möglich sein. Ein Verhältnis nahe 2,0 ist üblich, da jede Gitterebene die charakteristische Zellgröße halbiert.
Warum drei Gitter statt zwei?
Mit zwei Gittern können Sie eine Änderung des Ergebnisses abschätzen, aber Sie können nicht zuverlässig überprüfen, ob sich die Lösung im asymptotischen Konvergenzbereich befindet.
Der asymptotische Bereich ist das Regime, bei dem der numerische Fehler vorhersehbar abnimmt, wenn das Netz verfeinert wird. Mit drei Gittern können Sie die beobachtete Reihenfolge der Konvergenz abschätzen und feststellen, ob das Verfeinerungsverhalten konsistent ist.
Das schrittweise Vorgehen
Schritt 1: Wählen Sie eine interessierende Menge
Wählen Sie eine skalare Menge, die das Ergebnis darstellt, das Ihnen wichtig ist. Gemeinsame Entscheidungen sind:
- Luftwiderstandsbeiwert.
- Spitzenstress.
- Druckabfall.
- Temperatur an einem ausgewählten Punkt.
- Gesamtenergie, Massenstrom oder eine andere integrale Größe.
Diese Menge wird normalerweise als φ geschrieben. Sie extrahieren es aus jeder Netzebene.
Schritt 2: Führen Sie Simulationen auf allen drei Gittern aus
Führen Sie die gleiche Simulation auf den groben, mittleren und feinen Maschen aus. Halten Sie Randbedingungen, Solvereinstellungen, physikalische Parameter und Konvergenzkriterien konsistent.
Verlassen Sie sich nicht nur auf Residuen. Überwachen Sie auch die Menge des Interesses. Ein Rest kann akzeptabel aussehen, während sich die tatsächlichen technischen oder wissenschaftlichen Ergebnisse noch ändern.
Schritt 3: Berechnen Sie die beobachtete Näherungsreihenfolge
Die beobachtete Annäherungsreihenfolge, die normalerweise als p geschrieben wird, zeigt Ihnen, wie schnell der Fehler mit der Netzverfeinerung abnimmt.
Für drei Gitter mit konstantem Verfeinerungsverhältnis r ist eine praktische Schätzung:
p = ln(|(φ₃ - φ₂) / (φ₂ - φ₁)|) / ln(r)
Python-Implementierung:
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)
Wenn das Verfahren nominell zweiter Ordnung ist, könnte eine praktische beobachtete Reihenfolge nahe bei 2,0 liegen. Niedrigere Werte können Probleme mit der Netzqualität, Randeffekten, nichtlineares Verhalten oder darauf hinweisen, dass sich die Gitter noch nicht im asymptotischen Bereich befinden.
Schritt 4: Richardson-Extrapolation anwenden
Die Richardson-Extrapolation schätzt den Kontinuumswert bei Null-Gitterabstand. Es verbessert die Schätzung über das Feinrasterergebnis hinaus, indem die feinen und mittleren Ergebnisse plus der beobachteten Reihenfolge verwendet werden.
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
Dies ersetzt nicht die Validierung, liefert jedoch eine nützliche Schätzung des netzunabhängigen numerischen Wertes.
Schritt 5: Berechnen Sie den Gitterkonvergenzindex
Der Gitterkonvergenzindex quantifiziert die prozentuale Unsicherheit, die durch die Netzauflösung verursacht wird. Es wird häufig verwendet, um die Netzkonvergenz standardisiert zu melden.
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
Der Sicherheitsfaktor ist wichtig:
- Verwenden Sie
1.25, wenn Sie drei oder mehr Gitter verwenden. - Verwenden Sie einen konservativeren Wert, wenn nur zwei Gitter verfügbar sind, obwohl zwei Gitter für eine strenge Berichterstattung nicht empfohlen werden.
Schritt 6: Überprüfen Sie den asymptotischen Bereich
Um zu überprüfen, ob die Gitter im asymptotischen Bereich liegen, vergleichen Sie die GCI-Werte zwischen dem mittelfeinen Paar und dem Grobmediumpaar.
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)
Ein Wert nahe 1,0 deutet darauf hin, dass sich die Gittersequenz dem asymptotischen Bereich nähert. Große Abweichungen deuten darauf hin, dass eine weitere Verfeinerung erforderlich sein kann oder dass die ausgewählte interessierende Menge nicht reibungslos konvergiert.
Ein konkretes Beispiel
Angenommen, Sie simulieren den Fluss durch ein Rohr und extrahieren die Druckwiederherstellung aus drei Gittern.
| Gitter | Knoten | Druckwiederherstellung |
|---|---|---|
| Fein | 100.000 | 0,97050 |
| Mittel | 25.000 | 0,96854 |
| Grob | 6.250 | 0,96178 |
Angenommen, das Verfeinerungsverhältnis ist r = 2.0 .
Beobachtete Reihenfolge:
p = ln(|(0.96178 - 0.96854) / (0.96854 - 0.97050)|) / ln(2)
p = 1.786
Richardson-Extrapolation:
φ_ext = 0.97050 + (0.97050 - 0.96854) / (2^1.786 - 1)
φ_ext ≈ 0.97130
Feinraster-GCI:
GCI_21 = 1.25 × |0.97050 - 0.96854| / 0.97050 / (2^1.786 - 1)
GCI_21 ≈ 0.103%
Dies bedeutet, dass die Feinrasterdruckrückgewinnung nahe am geschätzten Kontinuumswert liegt, mit einer netzinduzierten Unsicherheit von etwa 0,1%. Dies ist die Art des Ergebnisses, das in einem strengen Simulationsworkflow gemeldet werden kann.
Netzkonvergenz vs. Code-Überprüfung
Die Netzkonvergenz und die Codeüberprüfung hängen zusammen, aber sie sind nicht gleich.
- Die Codeüberprüfung fragt, ob der Code die Gleichungen richtig löst.
- Die Netzkonvergenz fragt, ob diese spezifische Lösung unabhängig von der Netzauflösung ist.
Die Netzkonvergenz ist ein Schritt zur Lösungsüberprüfung. Es schätzt den numerischen Fehler für einen Simulationsaufbau. Es beweist nicht, dass der Code im Allgemeinen korrekt ist, und es beweist nicht, dass das Modell die Realität darstellt.
Ein praktischer Arbeitsablauf ist:
- Verwenden Sie die Codeüberprüfung, wie z. B. hergestellte Lösungen, um die Implementierung zu überprüfen.
- Verwenden Sie die Netzkonvergenz, um die numerische Unsicherheit von Produktionssimulationen zu überprüfen.
- Verwenden Sie die Validierung gegen Experimente oder Benchmark-Daten, um die physikalische Glaubwürdigkeit zu überprüfen.
Häufige Fehler in Netzkonvergenzstudien
- Verwenden Sie nur zwei Gitter. Dies verhindert eine zuverlässige Überprüfung des asymptotischen Bereichs und der beobachteten Reihenfolge.
- inkonsistente Verfeinerung verwenden. Wenn Sie nur eine Richtung verfeinern oder die Netztopologie ändern, können Sie die Annahme des Verfeinerungsverhältnisses beeinträchtigen.
- Mesh-Qualität ignorieren. Ein feineres Netz mit schlechten Zellen kann zur falschen Antwort konvergieren.
- Überwachung der falschen Menge. Die Menge des Interesses sollte die wissenschaftliche oder technische Schlussfolgerung darstellen, die Ihnen wichtig ist.
- Stoppen nur basierend auf Residuen. Residuen beweisen nicht immer, dass sich die interessierende Menge stabilisiert hat.
- Behandlung von GCI als Beweis für die körperliche Korrektheit. Ein niedriger GCI bedeutet nur, dass die Netz-induzierte Unsicherheit gering ist. Eine Validierung ist weiterhin erforderlich.
Netzanpassung und -automatisierung
Moderne Workflows nutzen zunehmend die Netzanpassung. Anstatt eine feste Sequenz von Netzen manuell zu erstellen, verfeinert oder vergröbert die Simulation Regionen basierend auf Fehlerindikatoren.
Häufige Anpassungsansätze sind:
- H-Anpassung, bei der die Zellen lokal verfeinert oder vergröbert werden.
- p-Anpassung, bei der die Polynomreihenfolge in Regionen mit hohen Gradienten zunimmt.
- Hybride Ansätze, die lokale Netzverfeinerung und Methoden höherer Ordnung kombinieren.
Python-Tooling für Konvergenzstudien zeichnet sich ebenfalls ab. Skripte können Richardson-Extrapolation, GCI-Berechnungen, Konvergenzdiagramme und Berichtstabellen automatisieren.
Wann sollte man aufhören zu verfeinern?
Sie verfeinern nicht für immer. Die Netzverfeinerung sollte aufhören, wenn zusätzliche Genauigkeit die Rechenkosten nicht mehr rechtfertigt.
Gemeinsame Stoppbedingungen sind:
- GCI liegt unter der für das Projekt erforderlichen Toleranz.
- Eine weitere Verfeinerung kostet viel mehr, ändert aber das Ergebnis nur geringfügig.
- Hardware-Grenzwerte machen die nächste Verfeinerungsstufe unpraktisch.
| Lage | Empfohlener Netzpegel |
|---|---|
| Vorläufige Erkundung des Entwurfs | Grobes Netz nur für qualitative Trends |
| Engineering-Analyse mit GCI-Ziel | Mittel- bis feines Netz, häufig unter 2 % auf GCI abzielen |
| Publikationssimulation | Feinnetz, häufig auf GCI unter 1% mit Dokumentation abzielen |
| sicherheitskritische oder behördliche Verwendung | Sehr feines Netz plus vollständiger Verifizierungs- und Validierungs-Workflow |
Eine praktische Checkliste für Ihre nächste Simulation
Überprüfen Sie vor dem Ausführen einer Produktionssimulation Folgendes:
- Netzqualitätsbericht: Jede Zelle sollte die Qualitätsschwellen für den Solver und den Elementtyp überschreiten.
- Orthogonale Qualität: Überprüfen Sie bei CFD- oder endlichen Volumen-Workflows, ob schlechte Zellen unter akzeptable Grenzen fallen.
- Schiefe: Überprüfen Sie den Maximalwert und die Verteilung, nicht nur den Durchschnitt.
- Jacobian: Bestätigen Sie, dass keine Elemente negative Jacobien haben.
- Drei-Gitter-Konvergenzstudie: Verwenden Sie grob-, mittel- und feine Maschen mit einem konsistenten Raffinessverhältnis.
- GCI-Berechnung: Den Wert in Prozent angeben und den Sicherheitsfaktor korrekt anwenden.
- Asymptotic Range Check: Vergleichen Sie das aufeinanderfolgende Konvergenzverhalten nach Möglichkeit.
- Interessante Menge: Überwachen Sie das gleiche skalare Ergebnis über alle Netzebenen hinweg konsistent.
- Volle Konvergenz: Überprüfen Sie die Residuen und Lösungsänderungen, bevor Sie die Ergebnisse extrahieren.
- Dokumentation: Speichern Sie Netzgrößen, Solver-Einstellungen, GCI-Werte und Konvergenzdiagramme.
Verwandte Anleitungen
- Validierung und Verifikation für PDE-Simulationen: Ein praktischer Rahmen – MMS, Codeverifizierung und Validierung.
- Finite Volume-Methode einfach erklärt – Die Grundlage für das endliche Volumen hinter netzabhängigen Berechnungen.
- Verstehen der Kernarchitektur von FIPY – Wie FIPY intern mit Netzen und Diskretisierung umgeht.
Zusammenfassung und nächste Schritte
Netzqualität und Konvergenzstudien sind keine optionalen Extras. Sie sind Teil glaubwürdiger wissenschaftlicher Simulation.
Ein strenger Workflow beginnt mit geometrischen Qualitätsprüfungen und geht dann zum quantitativen Konvergenznachweis über. Die wesentlichen Bestandteile sind Metriken der Netzqualität, drei Rasterebenen, die beobachtete Reihenfolge, die Richardson-Extrapolation und die GCI-Berichterstattung.
Prüfen Sie für Ihr nächstes Projekt den aktuellen Simulationsworkflow. Wenn Sie Einzelmesh-Berechnungen ohne Netzqualitätsbericht oder Konvergenzstudie durchführen, fügen Sie diese Schritte hinzu, bevor Sie das Ergebnis als endgültig behandeln.
Stellen Sie für FIPY-Benutzer sicher, dass die Netze die Qualitätsschwellen überschreiten, und führen Sie vor Produktionssimulationen eine dreistufige Konvergenzstudie zu einem repräsentativen Problem durch. Dokumentieren Sie die GCI-Werte und das Konvergenzverhalten. Diese Praxis trennt strenge Simulationsarbeiten von Rätselraten.
Dieser Leitfaden enthält etablierte Methoden aus der Netzkonvergenzforschung, Verifizierungsworkflows im NASA-Stil, der GCI-Berichterstattungspraxis und den praktischen Richtlinien für die Netzqualität, die in CFD-, FEA- und wissenschaftlichen Simulationsgemeinschaften verwendet werden.