Wie man eine konzentrierte Massenmatrix in FEM formuliert

11

Wenn wir zeitabhängige PDEs mit der Finite-Elemente-Methode lösen, beispielsweise mit der Wärmegleichung, müssen wir aufgrund der Massenmatrix ein lineares System lösen, wenn wir explizite Zeitschritte verwenden. Wenn wir uns zum Beispiel an das Beispiel der Wärmegleichung halten,

ut=c2u

dann bekommen wir mit Forward Euler

M(un+1undt)=cKun

und obwohl wir ein explizites Zeitschrittschema verwenden, müssen wir dennoch ein lineares System lösen. Dies ist offensichtlich ein Hauptproblem, da der Hauptvorteil der Verwendung expliziter Schemata darin besteht, dass ein lineares System NICHT gelöst werden muss. Ich habe gelesen, dass ein üblicher Weg, um dieses Problem zu umgehen, darin besteht, stattdessen eine "konzentrierte" Massenmatrix zu verwenden, die die reguläre (konsistente?) Massenmatrix in eine diagonale Matrix umwandelt und somit die Inversion trivial macht. Bei einer Google-Suche bin ich mir jedoch immer noch nicht ganz sicher, wie diese konzentrierte Massenmatrix erstellt wird. Schauen Sie sich zum Beispiel das Papier NUMERICAL EXPERIMENTS ON MASS LUMPING für die ADVECTION-DIFFUSION EQUATION anvon Edson Wendland Harry und Edmar Schulz erstellen sie ihre konzentrierte Massenmatrix, indem sie einfach alle Koeffizienten auf die Diagonale summieren. Zum Beispiel, wenn unsere ursprüngliche konsistente Massenmatrix war:

(4212242112422124)

dann wäre die konzentrierte Massenmatrix:

(9000090000900009)

Meine Frage ist dann: Ist dies der richtige Weg, um die konzentrierte Massenmatrix zu bilden? Welche Nachteile bestehen bei der Verwendung der konzentrierten Massenmatrix anstelle der vollständig konsistenten Massenmatrix hinsichtlich der Genauigkeit? Die Autoren des von mir erwähnten Papiers schlugen tatsächlich vor, die konzentrierte Massenmatrix nicht zu verwenden, obwohl es den Anschein hatte, als würden sie nur ein implizites Zeitschrittschema verwenden, das ich für seltsam hielt, da der Hauptgrund für die Verwendung solcher Matrizen explizite Methoden sind.

Hinweis: Ich würde niemals Forward Euler verwenden, um die Wärmegleichung zu lösen, das war nur ein Beispiel. Auch wenn es darauf ankommt, ist mein Problem die Lösung der Navier-Stokes-Gleichungen, bei denen der nichtlineare Term explizit und der Diffusionsterm implizit behandelt wird.

Vielen Dank

James
quelle
1
O(n2)
Ja, ich könnte das tun, wenn ich einen direkten Löser verwenden würde, aber wenn ich PCG oder einen anderen iterativen Löser verwende, denke ich nicht, dass das helfen würde
James
2
Ich persönlich vertraue mathematisch nicht auf Massenklumpen. Computergestützt bietet es Ihnen keinen Vorteil, es sei denn, Sie streben einen expliziten Zeitschritt an. In diesem Fall ist die Lösung der diagonalen Massenmatrix viel einfacher. Wenn Sie eine implizite Zeitschrittmethode verwenden, erhalten Sie keine Sparsity in der Matrix. Ich denke, Sie erhalten an diesem Punkt nur Fehler, wenn Sie keine konsistente Matrix verwenden.
Paul
Ich bin überrascht, dass niemand die Methode von Fried und Markus (1975) für Vierecke erwähnt hat, bei der Knoten an Lobatto-Punkten verwendet werden, um einen Verlust des Kürzungsfehlers zu vermeiden. Kein Problem, bis Sie zu Cubics kommen, schließt aber Serendipity-Elemente aus. Die Idee wurde auf Dreiecke erweitert, erfordert jedoch eine spezielle Basis und Quadratur.
L. Young

Antworten:

12

Ich glaube nicht, dass es eine eindeutige Antwort darauf gibt, da sie sich von einem Thema zum anderen ändern kann (und auch von der Art der von Ihnen verwendeten Elemente abhängt). Es gibt auch einige neuere Veröffentlichungen, die darüber sprechen [2]. Es ist also keine geschlossene Diskussion. Darüber hinaus können Sie unterschiedliche Trägheitskomponenten haben (zumindest in der Mechanik), wenn Sie Elemente mit kinematischen Einschränkungen als Balken oder Schalen haben.

Zienkiewicz (siehe [1], Abschnitt 16.2.4) diskutiert drei Methoden zum Zusammenfassen der Massenmatrix

  1. Mii(lumped)=jMij
  2. Mii(lumped)=cMii
    cjMjj(lumped)=ΩρdΩ
  3. MNi=0x=xjij

Nicht alle Methoden funktionieren in allen Fällen. Beispielsweise funktioniert die Zeilensummenmethode nicht für Serendipity-Elemente mit 8 Knoten, da dies zu negativen Massen führen würde.

MtotTr(M)

Mii(lumped)=MtotTr(M)Mii(no summation on i).

Ich habe auch Methode 3 mit den sogenannten Spektralelementmethoden mit Lobatto-Knoten verwendet (wobei diese Positionen als Knoten und Integrationspunkte verwendet werden), die automatisch zu diagonalen Matrizen führen.

In [1] sehen Sie diese Abbildung, in der einige Methoden für einige Elementtypen beschrieben werden Massenklumpen für einige zweidimensionale finite Elemente

Verweise

[1] Zhu, J., ZRL Taylor und OC Zienkiewicz. "Die Finite-Elemente-Methode: ihre Basis und Grundlagen." (2005): 54 & ndash; 102.

[2] Felippa, Carlos A., Qiong Guo und KC Park. "Massenmatrixvorlagen: Allgemeine Beschreibung und 1d Beispiele." Archiv für Computational Methods in Engineering 22.1 (2015): 1-65.

nicoguaro
quelle