Fast MATLAB assembly of FEM matrices in 2D and 3D using cell-array approach
We propose a MATLAB implementation of the [Formula: see text] finite element method for the numerical solutions of the Poisson problem and the linear elasticity problem in two-dimensional (2D) and three-dimensional (3D). The code consists of vectorized (and short) assembling functions for the matrices (mass and stiffness) and the right-hand sides. Since for the [Formula: see text] finite element, the element mass matrix and right-hand side are simple, the implementation uses only the MATLAB function sparse on the elements volume. For the stiffness matrix, to obtain a MATLAB implementation close to the standard form, cell-arrays are used to store the gradients of the element basis functions. The assembling procedure can then use matrix/vector products on small size cell-arrays. Numerical experiments show that our implementation is fast, scalable with respect to time, and outperforms existing vectorized MATLAB FEM codes.