Sollten wir immer erwarten, dass FEM-Fehlerdiagramme gerade Linien sind?

8

Die Fehlerschätzungen in FEM haben normalerweise die Form

||uhu||Ch.

Wenn wir den Logarithmus auf beiden Seiten nehmen, erhalten wir

log||uhu||logC+logh.

Diese Schätzung impliziert, dass der Fehler unter der geraden Linie liegt, die durch logy=logC+logh in der log-log-Skala gegeben ist. Diese Schätzung besagt nicht, dass die Fehlerkurve in Bezug auf h eine gerade Linie sein sollte, sondern nur, dass sie unter einer geraden Linie liegen sollte.

Warum zeigen dann die meisten Fehlerdiagramme, die in Zeitschriften veröffentlicht werden, eine sehr scharfe gerade Linie für den Fehler? Ich wäre dankbar für einen Einblick in diese Frage, da ich ein Anfänger im wissenschaftlichen Rechnen bin.

Insbesondere zeigten einige Berechnungen, die ich mit FEniCS durchgeführt habe, Fehlerdiagramme, die keine geraden Linien sind. Der Graph liegt jedoch unter einer geraden Linie. Beeinflusst ein bestimmter linearer Löser ein solches Verhalten? Ich benutze Mumps linearen Löser.

Bearbeiten: In der Abbildung unten zeigen theoretische Ergebnisse, dass der Fehler (auf der y-Achse aufgetragen) als 1/R abfallen sollte, wobei R auf der x-Achse aufgetragen ist. Die zweite Zahl befindet sich in der Log-Log-Skala.

Geben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung ein

Tanuj Dipshikha
quelle
Wenn Sie eine Methode implementieren, die in der Maschengröße mit der Polynomordnung N konvergiert (und diese korrekt implementiert), sollten Sie dies erwarten.
Paul
2
Den Plots nach zu urteilen, scheint es nicht so, als würden Sie das Netz verfeinern, sondern jedes Mal ein neues mit einer anderen Größe erstellen. Ist das richtig?
Nicoguaro
@nicoguaro Ja, das ist wahr. Ich erstelle jedes Mal ein neues Netz.
Tanuj Dipshikha
Haben Sie stattdessen versucht, das Netz zu verfeinern und jedes Element jedes Mal um 4 zu teilen, vorausgesetzt, es handelt sich um ein 2D-Problem?
Nicoguaro
1
103a(v,v)h

Antworten:

3

Obwohl ich Ihren speziellen Fall nicht kommentieren kann, da Sie nicht genügend Details angegeben haben, kann ich einige Hinweise zu diesem Thema geben, da ich mehrere Jahre meines Lebens damit verbracht habe, diese Konvergenzdiagramme so schön wie möglich aussehen zu lassen. Ich habe nur mit elliptischen und Sattelpunktproblemen gearbeitet und die Anleitung gilt wahrscheinlich überhaupt nicht für parabolische und hyperbolische Probleme.

Eines sollte bereits aus den Kommentaren ersichtlich sein: Es gibt keinen Grund dafür, dass die Diagramme immer wie gerade Linien aussehen, wenn Sie eine Obergrenze für den Fehler haben.

Eine andere zu realisierende Sache ist, dass solche Fehlerschätzungen normalerweise durch einige allgemeine Probleme erfüllt werden, bei denen die Grenz- und Ladedaten als Element eines Sobolev-Raums angegeben werden. Daher gibt es in der Realität viele Probleme mit unterschiedlichen Belastungen, Randbedingungen usw., die dieselbe Schätzung erfüllen - typischerweise mit einer unterschiedlichen Konstante. Bei einer numerischen Lösung für eine Folge von Maschen bleiben nur einige der Probleme nahe genug an der asymptotischen Grenze - wie durch die Schätzung definiert -, damit die Diagramme linear aussehen .

hh0

Es ist eher eine Kunst als eine Wissenschaft, den preasymptotischen Bereich künstlich so klein wie möglich zu machen und Probleme zu finden, die hauptsächlich nahe der asymptotischen Grenze bleiben. Hier sind einige Tipps:

  • sin(x)h<<π
  • Stellen Sie sicher, dass es keine anderen Singularitäten als die gibt, die Sie studieren möchten.
  • L2
  • Stellen Sie sicher, dass die Reihenfolge der Netze verschachtelt ist. Dies verbessert häufig die Monotonie des Diagramms: Das nächste Netz sollte immer besser sein als das vorherige.
  • Stellen Sie sicher, dass Sie bei der Bewertung des Fehlers eine ausreichend hohe Integrationsregel verwenden. Ich habe diesen Fehler mehr als einmal gemacht und es hat eine Weile gedauert, bis mir klar wurde, wo das Problem lag.
  • Verwenden Sie keine Integrationspunkte, die sich an Elementgrenzen befinden, wenn Sie diskontinuierliche Daten über der Elementgrenze haben. Ich habe diesen Fehler auch einmal gemacht und das Debuggen hat eine Weile gedauert.

Im Allgemeinen denke ich, dass die Fehlerschätzungen nützlicher sind, wenn Sie überprüfen, ob Ihr neu implementierter Finite-Elemente-Code ordnungsgemäß funktioniert, und nicht so nützlich für angewandte Probleme, bei denen die Daten und die Randbedingungen nicht unbedingt gut genug sind, um lineare Konvergenzdiagramme zu erhalten.

Wenn Sie mehr Details zu dem vorliegenden Problem angeben, könnte ich Ihnen möglicherweise spezifischere Tipps geben. Ich denke jedoch, dass diese Tipps Ihnen helfen werden, das Problem zu finden.

knl
quelle