Wie genau läuft der * vollständige * Multigrid-Algorithmus ab?

12

Ich verstehe (oder glaube zumindest), wie ein V-Zyklus abläuft. Ich habe in Matlab die 1-D, rekursive Version eines V-Zyklus geschrieben. Als ich jedoch meinen Code für FMG ausführte, konvergierte meine Lösung nicht. Ich glaube, mein Problem liegt in meinem Verständnis des tatsächlichen Teils der FMG. Was ich derzeit weiß, ist Folgendes:

  1. Kurz vor der FMG-Interpolation habe ich meine Lösung entspannt u
  2. Interpoliere sowohl den Fehler als auch u (?)
  3. Führe einen 2-Gitter-V-Zyklus aus und übergebe den Fehler in den V-Zyklus (?)
  4. Entspannen Sie den Fehler (im 2. gröbsten Raster)
  5. Interpoliere u und den Fehler
  6. Aktualisieren Sie indem Sie den Fehler hinzufügen.u
  7. Führen Sie einen V-Zyklus durch und wiederholen Sie den Vorgang ab Schritt 4.

Ich bin mir bei der Reihenfolge nicht sicher, aber ich könnte mich auch irren, was genau ich interpoliere und in meinen V-Zyklus übergebe. Wenn ich etwas im Algorithmus vermisse, lass es mich bitte wissen.

AlanH
quelle

Antworten:

11

Woher kamst du mit der Interpolation des "Fehlers"? (Und wie misst du den Fehler?)

Beim ersten Besuch in einem feineren Raster muss die gesamte Lösung interpoliert werden, idealerweise unter Verwendung eines Operators höherer Ordnung (z. B. nachbearbeitete / rekonstruierte Lösung für FEM). Diese Interpolation ist FMG u hI H H U H . (Es ist in Ordnung, eine normale Interpolation I H h = I H h zu verwenden , aber dies führt normalerweise zu einer gewissen Effizienz, zumindest bei reibungslosen Problemen.)uuhIHhuHichhH=ichhH

Nach der FMG-Interpolation wenden Sie nur einen oder mehrere V-Zyklen (oder W-Zyklen usw.) an. (Achten Sie darauf , mindestens eine glatten laufen , bevor zu beschränken.) Die am häufigsten verwendeten Optionen sind lineare Defektkorrektur , bei dem nur der Rest beschränkt ist und die Voll Approximationsschema (FAS) , die ein natürliche für nichtlineare Probleme, da die globale Linearisierung vermieden wird (z. B. Newton oder Picard).rh=EINhuh-bh

In FAS, der feinen Gitter Zustand wird unter Verwendung des eingeschränkten Zustands - Restriktions Operator . Bei der linearen Fehlerkorrektur mit mehreren Gittern ist keine Zustandsbeschränkung erforderlich (ein bequemes Attribut). Die häufigsten staatlichen Einschränkungen sind die Knoteninjektion (für FD und FE) und grobe Zellmittelwerte (für FV und gemischte FE). Nun können wir die FAS-Grobgittergleichung (gilt auch für nichtlineares A ) schreiben alsu~Hich^hHu~hEIN

AHuH=IhHbhbH+AHI^hHu~hIhHAhu~hτhH

wo wir die grobe Darstellung der rechten Seite, , und die zusätzliche Korrektur τ H h identifiziert haben, die den Einfluss des feinen Gitters auf die Grobgittergleichung darstellt. Man beachte die Eigenschaft , dass die Beschränkung der Feinraster Lösung u h * erfüllt die Grobgittergleichung: A H I H h u h * = b H + τ H * h . Nach dem Lösen der Grobgittergleichung interpoliert FAS die Änderung und führt zu einer aktualisierten Feinlösung ubHτhHuhAHI^hHuh=bH+τhH .uhu~h+IHh(uHI^hHu~h)

Jed Brown
quelle
Der Fehler wurde berechnet, als ich die Residuen beim Übergang vom feinsten zum gröbsten Gitter berechnet habe. Die anfängliche Annäherung pro Gitter ist nur Null, wo sie dann durch eine iterative Methode gelockert wird.
AlanH
Wie spielt der Fehler (der anfänglichen Vermutung der Lösung) dabei eine Rolle?
AlanH
1
uhIHhuH
In Briggs 'Zwei-Gitter-Korrekturschema wird speziell der Interpolationsfehler vom Grob- zum Feingitter erwähnt. Nicht hartnäckig zu klingen, aber unterscheidet sich das irgendwie von dem, was Sie erklärt haben?
AlanH
1
T=IP1Aen+1=Ten