An efficient way to perform the assembly of finite element matrices in Matlab and Octave
Résumé
We describe different optimization techniques to perform the assembly of finite element matrices in Matlab and Octave, from the standard approach to recent vectorized ones, without any low level language used. We finally obtain a simple and efficient vectorized algorithm able to compete in performance with dedicated software such as FreeFEM++. The principle of this assembly algorithm is general, we present it for different matrices in the P1 finite elements case and in linear elasticity. We present numerical results which illustrate the computational costs of the different approaches
L'objectif est de décrire différentes techniques d'optimisation, sous Matlab/Octave, de routines d'assemblage de matrices éléments finis, en partant de l'approche classique jusqu'aux plus récentes vectorisées, sans utiliser de langage de bas niveau. On aboutit au final à une version vectorisée rivalisant, en terme de performance, avec des logiciels dédiés tels que FreeFEM++. Les descriptions des différentes méthodes d'assemblage étant génériques, on les présente pour différentes matrices dans le cadre des éléments finis P1-Lagrange en dimension 2 et en élasticité linéaire. Des résultats numériques sont donnés pour illustrer les temps calculs des méthodes proposées.
Origine | Fichiers produits par l'(les) auteur(s) |
---|
Loading...