Ich interessiere mich für die Implementierung eines sich bewegenden Netzes für ein Advektions-Diffusions-Problem. Adaptive Moving Mesh Methods gibt ein gutes Beispiel dafür, wie dies für die Burger-Gleichung in 1D unter Verwendung von Finite-Differenzen durchgeführt wird. Wäre jemand in der Lage, ein Beispiel zur Lösung der 1D-Advektions-Diffusions-Gleichung unter Verwendung der endlichen Differenz mit einem sich bewegenden Netz anzubieten?
In konservativer Form lautet die Gleichung beispielsweise:
Dabei ist die Geschwindigkeit (eine Funktion des Raums). Die Anfangsbedingungen könnten (zum Beispiel) eine Strömungsart spezifizieren, die sich von links nach rechts bewegt (z. B. entlang eines Rohrs), wobei die Anfangsbedingung einen scharfen Gradienten aufweist.u ( 0 , x )
Wie soll das Gleichverteilungsproblem für das sich bewegende Netz gelöst werden (möglicherweise mit dem Algorithmus von De Boor oder einem anderen Ansatz)? Ich möchte dies selbst in Python implementieren, damit Ihre Antwort umso besser in Code übersetzt werden kann!
Alte Frage vor dem Kopfgeld
- Was sind die grundlegenden Ansätze zum Generieren eines adaptiven Netzes basierend auf den Eigenschaften des Systems? Soll ich das Flussmittel als Maß für die großen Farbverläufe verwenden?
- Weil ich eine iterative Lösung (Time Sweep) suche. Ich stelle mir vor, es ist wichtig, vom alten zum neuen Raster zu interpolieren. Wie ist der übliche Ansatz?
- Es würde mich sehr interessieren, ein Beispiel für ein einfaches Problem (wie die Advektionsgleichung) zu sehen.
Ein bisschen Hintergrundwissen über die Besonderheiten des Problems. Ich simuliere ein 1D-gekoppeltes Gleichungssystem,
Der Gleichungssystemsatz beschreibt ein Advektions-Diffusions-Problem mit zwei Spezies, bei dem die dritte Gleichung mit den beiden anderen gekoppelt ist. Die Lösung ändert sich schnell in der Nähe der Mitte meines Gitters, siehe unten (dies sind keine Berechnungen).
Beachten Sie, dass der logarithmische Maßstab im unteren Diagramm und die Lösungen für und über Größenordnungen variieren. In der oberen Grafik ( ) befindet sich eine Diskontinuität in der Mitte. Ich löse das obige System mit einem adaptiven Aufwind, bei dem sich die Diskretisierung je nach lokalem Wert der Péclet-Zahl von zentral nach Aufwind anpassen kann . Ich löse das System implizit mit trapezförmiger Integration in der Zeit ("Crank-Nicolson").
Ich bin daran interessiert, ein adaptives Gitter auf dieses Problem anzuwenden. Ich denke, es ist wichtig, weil sonst Details des Formspitzenparameters ( ) verloren gehen könnten. Im Gegensatz zu dieser Frage möchte ich einen hoffentlich einfachen Algorithmus zur Netzgenerierung anwenden.
Da dies ein Advektions-Diffusions-Problem ist, könnte man sich ein adaptives Maschenschema vorstellen, das auf den Flüssen von und an den Zellgrenzen basiert . Da dies anzeigen würde, wo sich der Wert schnell ändert. Die Spitze von entspricht auch der Stelle, an der der Fluss am größten ist.
Antworten:
Ein adaptives Gitter ist ein Gitternetz, das automatisch Gitterpunkte in Regionen mit hohen Strömungsfeldgradienten gruppiert. Es verwendet die Lösung der Strömungsfelderigenschaften, um die Gitterpunkte in der physikalischen Ebene zu lokalisieren. Das adaptive Gitter entwickelt sich in Zeitschritten in Verbindung mit einer zeitabhängigen Lösung der maßgeblichen Strömungsfeldgleichungen, die die Strömungsfeldvariablen in Zeitschritten berechnet. Im Verlauf der Lösung bewegen sich die Gitterpunkte in der physikalischen Ebene so, dass sie sich an Bereiche mit großen Strömungsfeldgradienten anpassen. Daher sind die tatsächlichen Gitterpunkte in der physikalischen Ebene während der Lösung des Strömungsfeldes ständig in Bewegung und werden erst dann stationär, wenn sich die Strömungslösung einem stationären Zustand nähert.
Die Gitteranpassung wird sowohl für stetige als auch für instationäre Probleme verwendet. Bei Problemen mit stetiger Strömung wird das Gitter nach einer festgelegten Anzahl von Iterationen angepasst und die Gitteranpassung wird an dem Punkt gestoppt, an dem die Lösung konvergiert. Bei zeitgenauen Lösungen werden die Rasterpunktbewegung und -verfeinerung in Verbindung mit der zeitgenauen Lösung des physikalischen Problems durchgeführt. Dies erfordert eine zeitgenaue Kopplung der PDEs des physikalischen Problems und derjenigen, die die Gitterbewegung oder die Gitteranpassung beschreiben.
Für die Berechnung neuerer Konfigurationen ist die Abhängigkeit von Best-Practice-Richtlinien für die Netzgenerierung und früheren Erfahrungen mit großen Zahlenfehlern ein Problem. Gitteranpassungsmethoden können zu erheblichen Verbesserungen der Lösungsqualität führen und versprechen bessere Ergebnisse, da es keine Einschränkungen gibt, die die erreichbare Grenze der Gitterauflösung definieren.
Anstatt lokale topologische Änderungen am Netz und seiner Konnektivität vorzunehmen, nehmen r-adaptive Methoden lokale Änderungen an der Auflösung vor, indem die Positionen einer festen Gesamtanzahl von Netzpunkten verschoben werden.
Sehr beliebte Methode zur Gitteranpassung im Finite-Elemente-Ansatz anstelle der Finite-Volumen- oder Finite-Elemente-Methode. Es verringert den Fehler in der Lösung durch Anreicherung des Polynoms von Interpolationsfunktionen mit der gleichen geometrischen Elementreihenfolge. Es müssen keine neuen Netze, Geometrien berechnet werden, und ein weiterer Vorteil dieser Methode besteht darin, dass sie unregelmäßige oder gekrümmte Grenzen mit geringerer Empfindlichkeit besser approximieren können zu Seitenverhältnis und Versatz. Aus diesem Grund ist es in der strukturellen Anwendung sehr bekannt.
Alles Gute!
[1] Fidkowski Krzysztof J. und Darmofal David L. Übersicht über die ausgangsbasierte Fehlerabschätzung und Netzanpassung in der Dynamik von Computerfluiden. AIAA Journal, 49: 673–694, 2011.
John Tannehill Richard Pletcher und Dale Anderson. Computer fl üssigkeitsmechanik und Wärmeübertragung. Taylor & Francis, 1997.
[3] JD Jr. Anderson. Computational Fluid Dyanamics: Die Grundlagen mit Anwendungen. McGraw Hill Inc., 1995.
[4] Roy Christopher J. Strategien zur Anpassung der Maschen in cfd. In 47. AIAA Aerospace Sciences Meeting einschließlich des New Horizons Forum und Aerospace Exposition, 2009.
[5] McRae Scott D. verfeinert Algorithmen und Probleme der Gitteranpassung. Computatioanal Methods in Applied Mechanics and Engineering, 189: 1161–1182, 2000.
[6] Ivanenko Sergey A. Azarenok Boris N. und Tang Tao. Adapative Netzumverteilungsmethode nach Godunovs Schema. Comm. Mathematik. sci. 1: 152–179.
[7] Ahmadi Majid und Ghaly Wahid S. Simulation eines nichtviskosen Flusses in Kaskaden unter Verwendung einer Methode mit endlichem Volumen und Lösungsanpassung. In CASI 6. Aerodynamik-Symposium, 1997.
[8] Jasak H. und Gosman AD Automatische Auflösungssteuerung für die Methode mit endlichem Volumen, Teil 1: a-posteriori-Fehlerschätzungen. Numerical Heat Transfer, Taylor & Francis, 38: 237–256, 2000.
[9] Jasak H. und Gosman AD Automatische Auflösungssteuerung für die Methode des endlichen Volumens, Teil 2: Adaptive Netzverfeinerung und Vergröberung. Numerical Heat Transfer, Taylor & Francis, 38: 257–271, 2000.
[10] Thompson David S. Soni Bharat K., Koomullil Roy und Thornburg Hugh. Lösungsadaptive Gitterstrategien basierend auf Punktumverteilung. Computatioanal Methods in Applied Mechanics and Engineering, 189: 1183–1204, 2000.
[11] Venditti David A. und Darmofal David L. Adjunkte Fehlerschätzung und Gitteranpassung für funktionale Ausgänge: Anwendung auf quasi eindimensionale Strömung. Journal of Computational Physics, 164: 204–227, 2000.
[12] Balasubramanian R. und Newman JC Vergleich von adjunktbasierter und merkmalsbasierter Gitteranpassung für funktionale Ausgänge. Internationale Zeitschrift für numerische Methoden in Fluids, 53: 1541–1569, 2007.
[13] Hartmann Ralf. Fehlerschätzung und adjunktbasierte Anpassung in der Aerodynamik. In European Conference on Computational Fluid Dynamics, 2006.
quelle
Ich habe (bin) immer noch auf der Suche nach guten Antworten dafür. Ich arbeite mit mehrstufigen adaptiven Gittern, bei denen ich ein Kriterium zur Verfeinerung verwende. Leute, die FEM machen, genießen ziemlich billige (rechnerisch) rigorose Fehlerschätzungen, die sie als Verfeinerungskriterium verwenden. Für uns als FDM / FVM hatte ich kein Glück, solche Schätzungen zu finden.
In diesem Zusammenhang ist Richardson Extrapolation (fast) die einzige Wahl , wenn Sie bei der Verfeinerung streng sein möchten, dh basierend auf einer Schätzung des tatsächlichen Fehlers verfeinern möchten . Dies wurde beispielsweise von Berger und Oliger (1984) für ihren blockstrukturierten hyperbolischen AMR-Solver verwendet. Die Methode ist allgemein in dem Sinne, dass Sie die Richardson-Extrapolation für praktisch jedes Problem verwenden können. Das einzige Problem dabei ist, dass es teuer ist, insbesondere bei vorübergehenden Problemen.
Abgesehen von der Richardson-Extrapolation sind alle anderen Kriterien (meiner bescheidenen Meinung nach) nur ad hoc. Ja, Sie können einen bestimmten Schwellenwert für eine "Menge von Interesse" festlegen und darauf basierend verfeinern. Sie können Flussmittel oder Derivate einer bestimmten Menge verwenden, um einen großen Gradienten zu melden und diesen zu verwenden. Wenn Sie eine Schnittstelle nachverfolgen, können Sie diese basierend darauf verfeinern, wie nah Sie an der Schnittstelle sind. All dies ist natürlich sehr billig, aber es gibt nichts Strenges an ihnen.
Für die Interpolation zwischen Gittern benötigen Sie im Allgemeinen etwas, das mindestens so genau ist, wie Sie es lösen. Manchmal ist es möglich, Interpolationen zu erstellen, die bestimmte Eigenschaften erfüllen, z. B. Masse sparen oder konvex sind, sodass keine neuen Extrema eingeführt werden. Ich habe bemerkt, dass diese letzte Eigenschaft manchmal sehr wichtig für die Stabilität des Gesamtsystems ist.
quelle
Wenn es tatsächlich 1D ist, brauchen Sie hier wahrscheinlich kein adaptives Netz. Für ein so einfaches Problem können Sie wahrscheinlich alles, was Sie brauchen, mit einem statischen Gitter und der Rechenleistung einer modernen Workstation lösen. Es ist jedoch eine durchaus vernünftige Strategie, im Rahmen der Zeitintegration periodisch Bereiche zu identifizieren, in denen die numerische Auflösung hervorgehoben wird, Rasterpunkte hinzuzufügen (und Rasterpunkte aus überaufgelösten Bereichen zu entfernen) und in das neue Raster zu interpolieren. Dies sollte jedoch nicht zu häufig erfolgen, da die Interpolation kostspielig sein kann und numerische Fehler in die Gesamtberechnung einfließen würden.
quelle