Comment formuler une matrice de masse localisée dans FEM

11

Lors de la résolution d'EDP dépendant du temps en utilisant la méthode des éléments finis, par exemple, l'équation de la chaleur, si nous utilisons un pas de temps explicite, nous devons résoudre un système linéaire en raison de la matrice de masse. Par exemple, si nous nous en tenons à l'exemple de l'équation de chaleur,

ut=c2u

puis en utilisant Euler avant, nous obtenons

M(un+1-unt)=-cKun

et donc même si nous utilisons un schéma de pas de temps explicite, nous devons encore résoudre un système linéaire. C'est évidemment un problème majeur car le principal avantage de l'utilisation de schémas explicites est de NE PAS avoir à résoudre un système linéaire. J'ai lu qu'une manière courante de contourner ce problème est d'utiliser à la place une matrice de masse "localisée" qui transforme la matrice de masse régulière (cohérente?) En une matrice diagonale et rend ainsi l'inversion triviale. Après avoir effectué une recherche sur Google, je ne sais toujours pas exactement comment cette matrice de masse groupée est créée. Par exemple, en regardant le document EXPÉRIENCES NUMÉRIQUES SUR L'ALLUMAGE DE MASSE POUR L'ÉQUATION D'AVANCE-DIFFUSIONpar Edson Wendland Harry et Edmar Schulz, ils créent leur matrice de masse groupée en additionnant simplement tous les coefficients sur la diagonale. Ainsi, par exemple, si notre matrice de masse cohérente d'origine était:

(4212242112422124)

alors la matrice de masse localisée serait:

(9000090000900009)

Ma question est alors: est-ce la bonne façon de former la matrice de masse groupée? Quels sont les inconvénients lors de l'utilisation de la matrice de masse groupée au lieu de la matrice de masse cohérente complète en termes de précision? Les auteurs de l'article que j'ai mentionné ont en fait suggéré de ne pas utiliser la matrice de masse groupée, même s'il semblait qu'ils n'utilisaient qu'un schéma de temps implicite que je pensais étrange étant donné que la principale raison d'utiliser de telles matrices est pour des méthodes explicites.

Remarque: je n'utiliserais jamais Euler pour résoudre l'équation de la chaleur, ce n'était qu'un exemple. Aussi, si cela importe, mon problème est de résoudre les équations de Navier Stokes où le terme non linéaire est traité explicitement et le terme de diffusion est traité implicitement.

Merci

James
la source
1
O(n2)
Oui, je pourrais le faire si j'utilisais un solveur direct, mais si j'utilise PCG ou un autre solveur itératif, je ne pense pas que cela aiderait
James
2
Personnellement, je ne fais pas confiance aux calculs de masse. Sur le plan informatique, cela ne vous donne aucun avantage, sauf si vous visez un pas de temps explicite, auquel cas la matrice de masse diagonale est beaucoup plus facile à résoudre. Si vous utilisez une méthode de pas de temps implicite, vous ne gagnez aucune parcimonie dans la matrice. Je pense que vous ne gagnez l'erreur qu'à ce stade en n'utilisant pas une matrice cohérente.
Paul
Je suis surpris que personne n'ait mentionné la méthode de Fried et Markus (1975) pour les quadrilatères, qui utilise des nœuds aux points de Lobatto pour éviter une perte d'erreur de troncature. Pas un problème jusqu'à ce que vous arriviez à cubics, mais exclut les éléments de sérendipité. L'idée a été étendue aux triangles, mais nécessite une base et une quadrature spéciales.
L. Young

Réponses:

12

Je ne pense pas qu'il y ait une réponse définitive à cela, car cela pourrait changer d'un sujet à l'autre (et dépend également du type d'éléments que vous utilisez). Certains articles récents en parlent également [2]. Ce n'est donc pas une discussion fermée. De plus, vous pouvez avoir différents composants inertiels (au moins en mécanique), lorsque vous avez des éléments avec des contraintes cinématiques comme des poutres ou des coques.

Zienkiewicz (voir [1], section 16.2.4) discutent de trois méthodes pour regrouper la matrice de masse

  1. Mjeje(forfaitaire)=jMjej
  2. Mjeje(forfaitaire)=cMjeje
    cjMjj(forfaitaire)=ΩρΩ
  3. MNje=0X=Xjjej

Toutes les méthodes ne fonctionnent pas dans tous les cas, par exemple, la méthode de somme de lignes ne fonctionne pas pour les éléments de sérendipité à 8 nœuds car elle conduirait à des masses négatives.

MtotTr(M)

Mjeje(forfaitaire)=MtotTr(M)Mjeje(pas de sommation sur je).

J'ai également utilisé la méthode 3 avec les méthodes dites d'éléments spectraux avec des nœuds Lobatto (en utilisant ces emplacements comme nœuds et points d'intégration), qui conduisent automatiquement à des matrices diagonales.

Dans [1], vous pouvez voir cette figure décrivant certaines des méthodes pour certains types d'éléments Agrégation de masse pour certains éléments finis bidimensionnels

Références

[1] Zhu, J., ZRL Taylor et OC Zienkiewicz. "La méthode des éléments finis: sa base et ses fondamentaux." (2005): 54-102.

[2] Felippa, Carlos A., Qiong Guo et KC Park. "Modèles de matrice de masse: description générale et exemples 1d." Archives of Computational Methods in Engineering 22.1 (2015): 1-65.

nicoguaro
la source