Was sind die Grundprinzipien für das Erzeugen eines sich bewegenden Netzes?


13

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:

ut=(ein(x)u+dux)x

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 )ein(x)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

  1. 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?
  2. 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?
  3. 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,

ut=einu2ux2+buux+fu(x,u,v,w)vt=einv2vx2+bvvx+fv(x,u,v,w)wt=einuux+einvvx+fw(x,u,v,w)

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).

Beispiellösungen

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").uvw

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.w

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.uvw


Soweit ich weiß, ist Ihre Diskontinuität ein ziemlich stabiles Merkmal des Systems, da sie sich möglicherweise bewegt, aber immer irgendwo vorhanden ist (korrigieren Sie mich, wenn ich mich irre). Aus diesem Grund möchten Sie möglicherweise ein sich bewegendes Netz anstelle einer Netzverfeinerung verwenden. Es ist viel einfacher, sich selbst zu programmieren. [Dieses Buch] (books.google.com/books?isbn=1441979166) ist eine gute Referenz.
Daniel Shapero

Ja, es sollte ein ziemlich stabiles Merkmal sein (die Diskontinuität), es kann sich während des Zeitdurchlaufs leicht bewegen und möglicherweise leicht asymmetrisch werden, wenn es sich dem stabilen Zustand nähert. Ich stelle mir vor, ich könnte ein ungleichmäßiges (nicht adaptives) Gitter mit in der Mitte gebündelten Punkten verwenden, anstatt etwas Komplexeres. Die verschiedenen Netzanpassungstechniken waren mir nicht bekannt. Das Buch scheint gut zu sein, obwohl es noch einiges an Arbeit gibt, um ein bewegliches Gitter konsequent umzusetzen. Ich hatte auf eine "schnelle Lösung" gehofft!
Boyfarrell

Antworten:


4

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.

hrprphprh

h

h

r

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.

p

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.

DrichvichnG-sÖurces-Öf-Grichd-eindeinpteintichÖn

1.Feeinture-beinsed-eindeinpteintichÖn Der auf Merkmalen basierende, in etwa weitgehend genutzte Ansatz der Netzanpassung nutzt Lösungsmerkmale als Triebkraft für die Netzanpassung. Diese verwenden häufig Merkmale der Lösung wie Lösungsgradienten und Lösungskrümmung. Strömungsregionen mit großen Lösungsgradienten werden mit mehr Punkten aufgelöst und Regionen mit minimaler Signifikanz werden vergröbert. Dies führt zu einer Verfeinerung des Bereichs, der physikalisch spezifisch ist, wie z. B. Grenzschicht, Stöße, Trennlinien, Stagnationspunkte usw. In einigen Fällen kann eine gradientenbasierte Verfeinerung den Lösungsfehler tatsächlich erhöhen, so dass es einige Probleme hinsichtlich merkmalsbasierter Anpassung gibt, wie z Robustheit und andere.

2.TrunceintichÖn-errÖr-beinsed-eindeinptichÖn Der Kürzungsfehler ist die Differenz zwischen der partiellen Differentialgleichung und ihrer diskretisierten Gleichung. Ein Abschneidefehler ist geeigneter, um herauszufinden, wo eine Anpassung erfolgen sollte. Allgemeines Konzept hinter der Anpassung auf der Basis von Trunkierungsfehlern ist die Gleichverteilung des Fehlers über den Simulationsbereich, um den Gesamtdiskretisierungsfehler zu verringern. Für einfache Gleichungen ist die Bewertung von Trunkierungsfehlern am einfachsten, für komplexe Schemata ist dies jedoch schwierig, sodass zu diesem Zweck ein anderer Ansatz erforderlich ist. Für einfache Diskretisierungsschemata kann der Abschneidefehler direkt berechnet werden. Für komplexere Schemata, bei denen eine direkte Bewertung der Kürzung schwierig ist, ist ein Ansatz zum Schätzen des Kürzungsfehlers erforderlich.

3.EINdjÖichnt-beinsed-eindeinpteintichÖn

Alles Gute!

References:-

[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.


Dieser erste Absatz stammt aus Computational Fluid Dynamics: Eine Einführung. Sollte wohl darauf verweisen. Aber das ist eine Übersicht, danke. Haben Sie schon einmal eine Anpassung an ein Advektionsproblem vorgenommen, das ist im Grunde das, was ich zu lösen versuche?
Boyfarrell

@boyfarrell, ja es ist wahr, eigentlich habe ich das alles aus meinem Bericht über "Grid Adaption" als Teil meiner Kursarbeit genommen, in dem ich Referenzen richtig zitiert habe. Hier ist es schwierig, so viele Referenzen hinzuzufügen, also habe ich es weggelassen. Wenn Sie möchten, teile ich alle Referenzen mit Ihnen. Ja, ich habe vor, die Netzanpassung im Rahmen meiner Forschungsarbeiten einzusetzen, habe aber noch nicht begonnen. Alles Gute!
Shainath

Eine Literaturübersicht ist ein guter Einstieg, danke fürs Teilen!
Boyfarrell

@boyfarrell, ich habe Verweise auf meine Antwort hinzugefügt, die ich für die obige Beschreibung verwendet habe. Alles Gute
Shainath

3

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.


Vielen Dank für den Austausch Ihrer Erfahrungen. Ja, es scheint so, als wäre es ziemlich kompliziert, dies konsequent zu tun. Da mein Problem relativ einfach ist (nur 1D etc). Ich werde zuerst einen festen (uneinheitlichen) Gurt versuchen. Obwohl ich sehr versucht bin, einen weichen Ansatz für sich bewegende Gitter zu implementieren . Wenn Sie bereits zuvor das Verschieben von Gittern durchgeführt haben, wie einfach lässt sich dies beispielsweise für eine Advektionsgleichung implementieren?
Boyfarrell

@boyfarrell Ich bin mir nicht sicher, was ein bewegliches Gitter ist. Ist es wie ein 1D-Gitter, bei dem sich der Abstand zwischen Punkten zeitlich ändern kann?
GradGuy

Schauen wir uns nur den Link an, der von Daniel Shapero (oben) vorgeschlagen wurde. Adaptive Moving Mesh Methods . Scheint interessant.
Boyfarrell

2

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.


Vielen Dank für Ihre Erfahrung. Ich glaube, Du hast recht; Ich könnte in diesem Fall wahrscheinlich nur ein nicht konstantes Gitter verwenden, da die Diskontinuität mehr oder weniger an derselben Stelle bleibt. Würdest du zustimmen?
Boyfarrell
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.