Endliche Unterschiede bei Domänen mit unregelmäßigen Grenzen

11

Kann mir jemand helfen, die Bücher über numerische Lösungen (Finite Differenzen und Crank-Nicolson-Methoden) von Poisson- und Diffusionsgleichungen zu finden, einschließlich Beispiele für unregelmäßige Geometrie, wie z. B. eine Domäne, die aus dem Bereich zwischen einem Rechteck und einem Kreis besteht (insbesondere Bücher oder Links) in diesem Fall zu MATLAB-Codebeispielen)?

Liona
quelle
4
Zu welchem ​​Zweck? Einführung für Studierende ganz am Anfang? Und was ist in Ihrem Fall eine unregelmäßige Geometrie? Domänen mit wiedereintretenden Ecken?
Shuhalo
@ Martin: Ich bin ein Biginner auf diesem Gebiet. Ich brauche es, um die Poisson-Gleichung mit itterativen Methoden auf unregelmäßig geformten Domänen zu lösen, insbesondere auf solchen mit gekrümmten Bündeln (z. B. 2-D-
Kreisdomäne
2
@last Bitte bearbeiten Sie den Titel und den Text der Frage, um zu verdeutlichen, was Sie fragen. Geben Sie die Arten von Gleichungen an, die Sie interessieren. Interessieren Sie sich für Diskretisierungen, algebraische Löser oder beides? Interessieren Sie sich für endliche Unterschiede gegenüber finiten Elementen ( scicomp.stackexchange.com/questions/290/… )? Ihre aktuelle Frage ist äußerst weit gefasst und bei der Suche schwer zu finden.
Jed Brown
@JedBrown: Ich möchte die Poisson-Gleichung mit endlichen Differenzen für eine bestimmte Domäne und Randbedingung lösen.
Liona
Zuletzt bearbeiten Sie bitte den Text Ihrer Frage, um die Informationen in Ihre beiden bisherigen Kommentare aufzunehmen. Wie JedBrown sagte, bearbeiten Sie bitte auch den Titel Ihrer Frage, damit die Leute leichter nach Ihrer Frage suchen und leichter beurteilen können, ob die Frage für sie interessant oder anwendbar ist.
Geoff Oxberry

Antworten:

3

Der Schlüssel, damit ein Finite-Differenzen-Schema auf einer unregelmäßigen Geometrie funktioniert, besteht darin, eine 'Form'-Matrix mit Werten zu haben, die Punkte außerhalb, innerhalb und an der Grenze der Domäne bezeichnen. Angenommen, wir hatten eine Form wie diese:

000000000000011111111110001222222100000122221000000012210000000001100000000000000000

Die wahre Domäne (in der sich alle Einträge ungleich Null der Matrix befinden) bildet ein nach unten gerichtetes Dreieck. Die Einsen stellen Punkte an der Grenze dar, während die Zweigen innere Punkte darstellen (normalerweise Unbekannte). Wir können Knotennummern wie folgt zuweisen:

000000000000011111111110001123456100000178910100000001111210000000001100000000000000000

Hier repräsentieren -1 die Grenzorte. Anschließend können Sie ein Finite-Differenzen-Schema für alle Einträge in der Matrix ausführen. Verwenden Sie jedoch eine if-Anweisung, um Ihr Schema nur auf den inneren Knoten (von 1 bis 12) auszuführen. Dieser Ansatz ist nicht der effizienteste Weg, aber er erledigt den Job ... Wenn Sie sich den Speicher leisten können, ist es möglicherweise sinnvoll, die (i, j) -Einträge aller inneren Knoten zu speichern und auszuführen eine for-Schleife nur auf diesen Knoten.

Um die Geometrie direkt zu erstellen, haben Sie zwei Möglichkeiten:
1. Erstellen Sie manuell ein Schwarzweißbild und importieren Sie es in Ihr Programm (am einfachsten zu implementieren, aber unmöglich, Ihre räumliche Auflösung dx oder dy zu verfeinern).
2. Schreiben Sie Code, der diskrete Darstellungen der gewünschten Grundformen für jede von Ihnen gewählte räumliche Auflösung erstellt (schwieriger zu implementieren, aber robuster für allgemeine Finite-Differenzen-Schemata mit räumlicher Auflösung dx oder dy).

Wenn Sie mehr darüber erfahren möchten, sollten Sie sich diese Videos
ansehen : NPTEL-Computergrafikkurs, Video 2 (Rastergrafiken)
NPTEL-Computergrafikkurs, Video 3 (Rastergrafiken, Fortsetzung)
Schauen Sie sich diese an und Lassen Sie mich wissen, ob dies Ihre Frage beantwortet.

Paul
quelle
Gibt es eine Möglichkeit, das Format der von mir geposteten Matrixwerte zu verbessern? Es sieht nicht so aus, wie ich es gerne hätte
Paul
Ja, Sie können MathJax verwenden und in eine Array-Umgebung stellen.
David Ketcheson
Du hast recht ... mit MathJax sieht es viel besser aus. Danke für den Vorschlag :)
Paul
@ Paul: Danke für deine einfache Lösung! Wie kann ich jedoch Grenzpunkte berechnen, um Innenpunkte für den umschlossenen Bereich zwischen Rechteck und Dreieck oder (umschlossener Bereich zwischen Rechteck und Kreis) zu erhalten?
Liona
Haben Sie ein Bild von der Form der Domain, die Sie modellieren möchten? Es ist immer einfacher, es zu sehen, als es nur in Worten zu beschreiben :)
Paul
2

Ich würde folgende Papiere vorschlagen:

Die Finite-Differenzen-Methode bei beliebigen unregelmäßigen Gittern und ihre Anwendung in der angewandten Mechanik - Liszka Orkisz

http://www.sciencedirect.com/science/article/pii/0045794980901492

Finite-Differenzen-Techniken für variable Gitter - Jensen

http://www.mendeley.com/research/finite-difference-techniques-variable-grids-7/

Lösen parabolischer und hyperbolischer Gleichungen mit der verallgemeinerten Finite-Differenzen-Methode - Benito Urena Gavete

http://www.sciencedirect.com/science/article/pii/S037704270600687X

Grundsätzlich beschreiben sie, wie Finite-Differenzen-Stencial für nicht strukturierte / unregelmäßige Netze erzeugt werden können. Ich kenne kein Buch, das sich eingehend mit diesem speziellen Thema befasst, aber Randall LeVeques Buch könnte etwas darüber enthalten. Hier ist der Link zur Webseite des Autors, die einige Matlab-M-Dateien für endliche Unterschiede enthält.

http://faculty.washington.edu/rjl/booksnotes.html

Bernardo MR
quelle
1

Ich denke, dass es wahrscheinlich eine Lösung ist, das Netz an die Grenze anzupassen und damit vom Standardquadratnetz des fdm abzuweichen, aber dennoch schwerwiegende Auswirkungen auf die Verwendung von Algorithmen hoher Ordnung hat - schwierig, wenn nicht unmöglich. Ich habe einen anderen Ansatz gewählt, nämlich das rechteckige Gitter über der gekrümmten Grenzgeometrie zu halten, Algorithmen hoher Ordnung zu erstellen, von der Grenze aus zu interpolieren, um die Werte "außerhalb" der Geometrie festzulegen, und das ist alles, was es gibt. Mit dieser Methode haben wir mit einem Algorithmus der Ordnung 8 Präzisionen in Testgeometrien konzentrischer Kugeln von ~ 1e-12 erreicht. Wenn Sie "Edwards, FDM Curved Boundary" googeln, finden Sie Verweise auf meine Arbeit.

David
quelle
0

Wäre es Ihnen möglich, eine adaptive Netzverfeinerung zu verwenden? Bei einer schnellen Google-Suche werden viele Links angezeigt. AMR wird beispielsweise in der Fluiddynamik verwendet, um den Fluss an komplizierten Formen vorbei zu modellieren. sowie viele andere Anwendungen. Hier ist ein Beispiel für die Lösung von Systemen hyperbolischer Erhaltungsgesetze, die bei der Sternentstehung auftreten. Die Geometrien sind sehr komplex. Der erste Teil des Papiers ist ein schönes Tutorial. http://www.mpa-garching.mpg.de/lectures/ADSEM/SS05_Homann.pdf

JohnS
quelle
0

Diese Frage öffnet eine Dose Würmer, wie die Vielfalt der Antworten zeigt. Viele davon machen nützliche Punkte, aber eine wirklich hilfreiche Antwort würde Überlegungen berücksichtigen, die nicht angesprochen wurden. Abgesehen davon, dass die genaue Art der Geometrie genau festgelegt wird, wäre es wertvoll zu wissen, a) welche Genauigkeit benötigen Sie? b) Möchten Sie bei normalen quadratischen Maschen bleiben? c) Wie viel sind Sie bereit, in das Erlernen neuer Technologien zu investieren?

Regelmäßige quadratische Maschen machen es schwierig, die Grenze genau zu definieren, so dass viele Menschen zu konformen Maschen wechseln. Konforme Netze mit rechteckiger Konnektivität haben Schwierigkeiten, sich an sehr unregelmäßige Formen anzupassen, so dass viele Menschen unstrukturierte Netze (Dreiecke / Tetraheda oder allgemeiner) verwenden.

Für Daten ohne reguläre kartesische Struktur ist es schwierig, Derivate zu bewerten. Daher formulieren viele Menschen ihre Probleme in integraler Form neu, was zu Finite-Elemente / Finite-Volumen-Methoden führt (die eine hohe Ordnung erreichen können). Es gibt netzfreie Methoden. Es gibt Grenzelementmethoden. Es gibt eingetauchte Grenzmethoden. Es gibt Cut-Cell-Methoden. Oft gibt es eine Methode, die in einigen Anwendungen beliebt ist, in anderen jedoch aus meist historischen Gründen nicht.

Ich wünsche Ihnen viel Glück beim Navigieren in diesem Labyrinth, aber Sie müssen sich darüber im Klaren sein, dass es für Ihre Frage keine einheitliche Lösung gibt.

Philip Roe
quelle