Mathématiquement, pourquoi l'agrégation de matrice de masse / vecteur de charge fonctionne-t-elle?

13

Je sais que les gens remplacent souvent des matrices de masse cohérentes par des matrices diagonales groupées. Dans le passé, j'ai également implémenté un code dans lequel le vecteur de charge est assemblé de manière groupée plutôt que de manière cohérente FEM. Mais je n'ai jamais cherché à savoir pourquoi nous sommes autorisés à le faire en premier lieu.

Quelle est l'intuition derrière l'agrégation qui permet de l'appliquer aux vecteurs de masse et de charge? Quelle en est la justification mathématique? Dans quelles situations l'agrégation n'est-elle pas autorisée / n'est-elle pas une bonne approximation pour les vecteurs de masse et de charge?

Paul
la source

Réponses:

16

Dans la méthode des éléments finis, les entrées de matrice et les entrées de droite sont définies comme intégrales. Nous ne pouvons, en général, pas les calculer exactement et appliquer la quadrature. Mais il existe de nombreuses formules de quadrature que l'on pourrait choisir, et on les choisit souvent de manière à ce que (i) l'erreur introduite par la quadrature soit du même ordre que celle due à la discrétisation, ou du moins pas sensiblement pire, et (ii) la matrice possède certaines propriétés qui s'avèrent pratiques.

Le regroupement des masses en est un exemple: si l'on choisit une formule de quadrature particulière (à savoir celle avec des points de quadrature situés aux points d'interpolation de l'élément fini), alors la matrice de masse résultante se trouve être diagonale. C'est assez pratique pour l'implémentation informatique, et la raison pour laquelle les gens utilisent ces formules en quadrature. C'est aussi la raison pour laquelle cela "fonctionne": ce choix particulier de formule en quadrature a toujours un ordre relativement élevé.

Wolfgang Bangerth
la source
Réponse géniale, comme toujours. Je serais également très intéressé par votre avis sur la deuxième partie de la question, lorsque l'agrégation n'est pas autorisée / mauvaise approximation , si quelque chose vous vient à l'esprit.
Anton Menshov
2
@AntonMenshov: Il semblerait qu'il serait difficile (voire impossible?) D'obtenir une bonne approximation via le lump pour les éléments d'ordre supérieur, car (par exemple, en diagonale) lumping dans ce cas serait équivalent à une quadrature d'ordre inférieur appliquée à un ordre supérieur polynômes.
Paul
@WolfgangBangerth: Je pense que je comprends maintenant. Donc, c'est comme utiliser des règles newton-cotes pour l'intégration au lieu de la quadrature gaussienne. Étant donné que chaque fonction d'interpolation lagrange a des valeurs unitaires à un nœud spécifique, la migration des points de quadrature vers les nœuds fait que seuls les termes diagonaux deviennent non nuls (au moins pour les éléments linéaires).
Paul
1
@Paul, j'ai utilisé l'agrégation de masse pour les éléments d'ordre supérieur (jusqu'à 14) et cela fonctionne très bien. Il est habituel pour la méthode des éléments spectraux, où vous utilisez les nœuds comme points de quadrature. Dans ce cas, l'ordre d'approximation de . 2n3
nicoguaro
1
Le point important est que pour les éléments d'ordre supérieur, il faut définir la matrice de masse "localisée" via des formules de quadrature particulières. La forme originale - d'où provient le terme «grumelé» - a ajouté les entrées hors diagonale à la diagonale, mais cela ne fonctionne que si elles sont toutes positives. Si vous appliquez la quadrature gaussienne, cela est vrai pour les éléments d'ordre inférieur, mais pas pour les éléments d'ordre supérieur.
Wolfgang Bangerth
5

Les matrices diagonales ont des avantages évidents pour accélérer les calculs numériques, et la réponse de Wolfgang Bangerth est une bonne explication sur la façon de calculer une matrice de masse diagonale, mais elle ne répond pas à la question du PO "pourquoi ça marche " au sens de "pourquoi c'est une bonne approximation de la physique que vous modélisez ".

Conceptuellement, vous pouvez séparer la réponse d'un élément en trois parties: le mouvement de translation d'un corps rigide, la rotation rigide autour du centre de masse de l'élément et la déformation de l'élément.

La fonction de base de la matrice de masse de l'élément est de représenter l'élément KE sous une forme quadratique (c'est-à-dire où sont les vitesses nodales).12vTMvv

À mesure que la taille de l'élément diminue, la contribution à la KE de la rotation du corps rigide diminue plus rapidement que la contribution de la translation (pour un élément solide avec une taille linéaire typique de , la masse est proportionnelle à mais les moments d'inertie sont proportionnelle à ) et la contribution de la déformation de l'élément est négligeable (au moins pour les problèmes de petites déformations élastiques).aa3a5

Par conséquent, vous n'avez vraiment besoin que d'une "bonne" approximation des parties du corps rigides du mouvement, c'est-à-dire 6 DOF, et en fait une bonne approximation uniquement du KE de la translation du corps rigide , c'est-à-dire 3 DOF, convergera lorsque la taille de l'élément est réduit.

Les termes diagonaux de la matrice d'éléments contiennent plus qu'assez de paramètres indépendants pour représenter ces 3 ou 6 termes KE avec une précision suffisante. En fait, pour les éléments d'ordre supérieur, vous pouvez utiliser des matrices de masse de masse diagonale où les termes diagonaux pour les nœuds médians sont nuls.

Notez qu'il s'agit d'une situation complètement différente de l'énergie potentielle de l'élément, où les contributions de la translation et de la rotation du corps rigide sont nulles, et la seule chose qui compte est de représenter l'énergie de déformation correspondant à la déformation de l'élément . Une matrice de rigidité diagonale ne serait donc pas une idée réalisable!

alephzero
la source
5

En plus des autres réponses, il existe des scénarios dans lesquels les erreurs dans la matrice de masse n'ont aucune influence sur le résultat souhaité.

Étant donné un problème de déformation non linéaire de la forme qui a une solution unique , on pourrait envisager de résoudre ce problème comme le problème dynamique avec la matrice de masse et la matrice d'amortissement grâce à une discrétisation temporelle appropriée. Il est facile de voir que le problème d'origine est résolu lorsqu'un état de repos a été atteint ( ). Surtout, n'a aucune influence sur ce résultat (tant que la convergence vers le résultat unique est atteinte).K(u) u=f(u)u^K(u) u+C(u) u˙+M u¨=f(u)MCu˙=u¨=0M

La justification de l'agrégation de masse a alors plus à voir avec la vitesse de convergence plutôt qu'avec, par exemple, l'erreur de quadrature 1 : la facilité d'inverser une diagonale traduit par des itérations de pas de temps rapides avec un schéma d'intégration de temps approprié (où est le seul matrice inverse).MM1

1 Bien que le raisonnement sur le comportement physique dynamique soit bien sûr plus facile avec une matrice de masse «correcte» - par exemple, le moment angulaire peut être incorrectement conservé par des matrices de masse groupées.

Max Langhof
la source
1
L'idée est correcte en principe, mais l'utilisation d'une formulation de second ordre dans le temps est un mauvais choix car elle conduit à un comportement oscillant du système qui n'est amorti que par le terme . Un meilleur choix consiste à utiliser uniquement et à renoncer complètement au terme . Mais le même argument s'applique au terme , et en fait, dans de nombreux cas, peut également conduire à une matrice de masse. C ˙ u M ¨ u C ˙ u CCu˙Cu˙Mu¨Cu˙C
Wolfgang Bangerth
u¨