Related papers: An efficient way to assemble finite element matric…
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…
We propose an effective and flexible way to assemble finite element stiffness and mass matrices in MATLAB. We apply this for problems discretized by edge finite elements. Typical edge finite elements are Raviart-Thomas elements used in…
When writing high-performance code for numerical computation in a scripting language like MATLAB, it is crucial to have the operations in a large for-loop vectorized. If not, the code becomes too slow to use, even for a moderately large…
Vectorization is increasingly important to achieve high performance on modern hardware with SIMD instructions. Assembly of matrices and vectors in the finite element method, which is characterized by iterating a local assembly kernel over…
Rahman and Valdman (2013) introduced a vectorized way to assemble finite element stiffness and mass matrices in MATLAB. Local element matrices are computed all at once by array operations and stored in multi-dimentional arrays (matrices).…
The $\ell$FEM MATLAB package provides a simple, efficient, and flexible implementation of isoparametric finite elements in bulk domains and on surfaces. The finite element matrix assemblies are based on MATLAB's paged operators and…
Rahman and Valdman (2013) introduced a new vectorized way to assemble finite element matrices. We utilize underlying vectorization concepts and extend MATLAB codes to implementation of Bogner-Fox-Schmit C1 rectangular elements in 2D. Our…
We present efficient MATLAB implementations of the lowest-order primal hybrid finite element method (FEM) for linear second-order elliptic and parabolic problems with mixed boundary conditions in two spatial dimensions. We employ the…
We examine aspects of the computation of finite element matrices and vectors which are made possible by automated code generation. Given a variational form in a syntax which resembles standard mathematical notation, the low-level computer…
Vectorization is a powerful optimization technique that significantly boosts the performance of high performance computing applications operating on large data arrays. Despite decades of research on auto-vectorization, compilers frequently…
The finite element method is a well-established method for the numerical solution of partial differential equations (PDEs), both linear and nonlinear. However, the repeated reassemblage of finite element matrices for nonlinear PDEs is…
Nonlinear energy functionals appearing in the calculus of variations can be discretized by the finite element (FE) method and formulated as a sum of energy contributions from local elements. A fast evaluation of energy functionals…
The Finite Element Method (FEM) is a powerful computational tool for solving partial differential equations (PDEs). Although commercial and open-source FEM software packages are widely available, an independent implementation of FEM…
MFEM is an open-source, lightweight, flexible and scalable C++ library for modular finite element methods that features arbitrary high-order finite element meshes and spaces, support for a wide variety of discretization approaches and…
We present an easily accessible, object oriented code (written exclusively in Matlab) for adaptive finite element simulations in 2D. It features various refinement routines for triangular meshes as well as fully vectorized FEM ansatz spaces…
In this article, we introduce a Face-to-Tetrahedron connectivity in MATLAB together with a vectorized 3D uniform mesh refinement technique. We introduce a MATLAB vectorized assembly of 3D lowest-order primal hybrid finite element matrices…
Vectorization via Single Instruction, Multiple Data (SIMD) architectures is a cornerstone of high-performance computing. To fully exploit hardware potential, developers often resort to explicit vectorization using intrinsics, as…
We present a technique for automatically transforming kernel-based computations in disparate, nested loops into a fused, vectorized form that can reduce intermediate storage needs and lead to improved performance on contemporary hardware.…
In calculating integral or discrete transforms, use has been made of fast algorithms for multiplying vectors by matrices whose elements are specified as values of special (Chebyshev, Legendre, Laguerre, etc.) functions. The currently…
This paper summarizes the development of varFEM, which provides a realization of the programming style in FreeFEM by using the Matlab language.