Quelles nouvelles structures de données sont utilisées dans le FEM adaptatif?

9

De nombreuses bibliothèques FEM adaptatives utilisent des structures de données de maillage plus avancées pour gérer l'ajout / la suppression de nœuds, d'arêtes, de triangles, de tétraèdres, etc. Par exemple, la bibliothèque p4est utilise des structures de données octree pour affiner le maillage adaptatif; vous ne trouverez pas souvent d'octrees utilisés pour les calculs sur un maillage statique.

Qu'est-ce qui change du côté de l'algèbre linéaire pour le FEM adaptatif?

La manière la plus directe que je puisse concevoir serait de reconstruire complètement toutes les matrices du système chaque fois que le maillage est raffiné ou grossier. Si l'adaptation du maillage est une opération suffisamment peu fréquente, le coût de cette opération est finalement amorti sur le reste du calcul. On pourrait facilement tirer parti des logiciels d'algèbre linéaire clairsemée existants (PETSc, Trilinos, etc.) avec cette approche.

Cette méthode contondante est-elle la plus couramment utilisée ou existe-t-il des bibliothèques qui parviennent à réutiliser ou à modifier l'ancienne matrice lors du raffinement? Après tout, la majeure partie du maillage et les matrices correspondantes sont inchangées lors d'une adaptation du maillage.

Daniel Shapero
la source

Réponses:

6

Oui, l'approche la plus courante consiste à reconstruire. Les structures de données qui sont modifiables en place ont tendance à être moins efficaces une fois configurées, et la réallocation est en fait assez bon marché par rapport au réassemblage (par exemple, en raison de la non-linéarité), c'est donc vraiment une bonne solution. En dehors de niches relativement rares avec des résolutions très faciles, les tentatives d'utilisation de structures de données dynamiques dans les solveurs ne feront que ralentir votre application. C'est une perception courante chez ceux qui oublient de mesurer ou de modéliser les performances.

Jed Brown
la source
3

Comme Jed l'a déjà dit, la réutilisation de composants d'algèbre linéaire tels que les matrices et les vecteurs n'est pas courante. Ce n'est pas non plus nécessaire: la mise en place de ces composants est comparativement très bon marché par rapport au coût de résolution de systèmes linéaires.

Si vous recherchez des choses qui changent lorsque vous passez de maillages statiques à des maillages raffinés de manière adaptative, le plus gros obstacle est de gérer les nœuds suspendus. Dans deal.II , cela est géré par la classe ConstraintMatrix , qui prend plusieurs 1000 lignes de code. Vous pouvez trouver une partie de la description de ce que fait cette classe dans le document par moi-même et Oliver Kayser-Herold (lié à ma page de publications ). Aucun autre composant (autre que la manipulation du maillage, bien sûr) n'a nécessité autant d'adaptation lors du passage de maillages fixes à adaptatifs.

Wolfgang Bangerth
la source