Erhöhen der V-Zyklen für eine konstante gröbste Gittergröße und Erhöhen der Größe des feinen Gitters

8

Problemstellung

Ich habe ein geometrisches Multigrid für implementiert, wobei f = 3 π 2 ist- -2=f aufΩ[0,1]auf einemEinheitswürfel. Die Dirichlet-Grenzen auf der linken Seite, der Unterseite und der Vorderseite sind0. Neumann-Grenzen oben, rechts und hinten sinduf=3π24sichnπx2sichnπy2sichnπz2Ω[0,1]]un=0 .

Methode

Eine Multigrid-Methode wird verwendet, um die Gleichung zu lösen. Ich approximiere die Geisterpunkte an der Neumann-Grenze anhand des zentralen Unterschieds .

Methodenübersicht (aus Kommentaren, vom Autor bestätigt): Beginnen Sie mit dem feinen Netz (dem endgültigen Netz, mit dem die Gleichung gelöst werden soll), fahren Sie mit dem gröberen Netz fort, um die Korrektur zu berechnen, geben Sie es zurück und glätten Sie es am Ende des Multigrids Verfahren.

Beobachtungen

Das Problem ist, wenn ich mein gröbstes Gitter (etwa zu 16x16x16) fixiere und V-Zyklen zur Erhöhung der feinen Gittergrößen messe , sind meine V-Zyklen nicht konstant . Ich habe in dem Buch MULTIGRID von Trottenberg et. al . dass wir einen modifizierten vollgewichteten Restriktionsoperator verwenden müssen , um eine falsche Skalierung an den Neumann-Grenzen zu verhindern. Außerdem kann ich diesen im Buch erwähnten modifizierten Operator für vollständige Einschränkungen nicht verstehen .

- -2=0u=1+x+y+z

Frage

Könnte die "modifizierte Einschränkung mit vollem Gewicht" zu einer Verschlechterung der Konvergenzrate führen?

Bitte vorschlagen / erklären.

Gaurav Saxena
quelle
1
Können Sie das von Ihnen verwendete Multigrid-Verfahren erklären? Ich bin damit vertraut, von einem feinen Netz auszugehen (dem endgültigen Netz, das Sie lösen möchten), dann grob zu gehen, um die Korrektur zu berechnen, und dann zurück zu prolpnieren (und am Ende ein paar Mal zu glätten). Ist dies Ihr Verfahren? ? Es kann auch hilfreich sein, wenn Sie eine Konvergenz vs. Iteration für einige Netze (Kurs und Fein) einfügen.
Charles
1
@ Charlie: Entschuldigung für die verspätete Antwort. Mein Verfahren ist genau so, wie Sie es beschrieben haben. Das Problem war, dass wir im Beispiel "Sinus" die Schablone in der Nähe der Grenzen modifizieren müssen, wie in Trottenberg beschrieben. Ich hatte einfach das Glück, das zweite Beispiel ohne eine modifizierte Schablone an der Grenze richtig zu machen. Tatsächlich besteht eine andere Möglichkeit darin, den Rest nahe der Grenze zu verdoppeln und einen nicht modifizierten Schablonenoperator zu verwenden, um eine Einschränkung durchzuführen. In einiger Zeit werde ich mein Bestes geben, um die vollständige Erklärung als Antwort zu schreiben!
Gaurav Saxena

Antworten:

0

Ihre anfängliche Vermutung kann einen großen Rest nahe der Neumann-Grenze erzeugen. Abhängig von der Restriktionsmethode nimmt dieser Rest möglicherweise nicht wie gewünscht ab.

Ich würde versuchen, anstelle eines V-Zyklus einen FMG-Zyklus zu verwenden. Da der FMG-Zyklus am gröbsten Gitter beginnt, haben Sie eine vernünftige Schätzung in der Nähe Ihrer Neumann-Randbedingung auf feineren Ebenen. Nach meiner Erfahrung funktioniert FMG gut mit Neumann-Randbedingungen.

Jannis Teunissen
quelle