MILAMIN: MATLAB‐based finite element method solver for large problems
Open Access
- 23 April 2008
- journal article
- Published by American Geophysical Union (AGU) in Geochemistry, Geophysics, Geosystems
- Vol. 9 (4)
- https://doi.org/10.1029/2007gc001719
Abstract
The finite element method (FEM) combined with unstructured meshes forms an elegant and versatile approach capable of dealing with the complexities of problems in Earth science. Practical applications often require high‐resolution models that necessitate advanced computational strategies. We therefore developed “Million a Minute” (MILAMIN), an efficient MATLAB implementation of FEM that is capable of setting up, solving, and postprocessing two‐dimensional problems with one million unknowns in one minute on a modern desktop computer. MILAMIN allows the user to achieve numerical resolutions that are necessary to resolve the heterogeneous nature of geological materials. In this paper we provide the technical knowledge required to develop such models without the need to buy a commercial FEM package, programming compiler‐language code, or hiring a computer specialist. It has been our special aim that all the components of MILAMIN perform efficiently, individually and as a package. While some of the components rely on readily available routines, we develop others from scratch and make sure that all of them work together efficiently. One of the main technical focuses of this paper is the optimization of the global matrix computations. The performance bottlenecks of the standard FEM algorithm are analyzed. An alternative approach is developed that sustains high performance for any system size. Applied optimizations eliminate Basic Linear Algebra Subprograms (BLAS) drawbacks when multiplying small matrices, reduce operation count and memory requirements when dealing with symmetric matrices, and increase data transfer efficiency by maximizing cache reuse. Applying loop interchange allows us to use BLAS on large matrices. In order to avoid unnecessary data transfers between RAM and CPU cache we introduce loop blocking. The optimization techniques are useful in many areas as demonstrated with our MILAMIN applications for thermal and incompressible flow (Stokes) problems. We use these to provide performance comparisons to other open source as well as commercial packages and find that MILAMIN is among the best performing solutions, in terms of both speed and memory usage. The corresponding MATLAB source code for the entire MILAMIN, including input generation, FEM solver, and postprocessing, is available from the authors (http://www.milamin.org) and can be downloaded as auxiliary material.Keywords
This publication has 19 references indexed in Scilit:
- A numerical evaluation of sparse direct solvers for the solution of large sparse symmetric linear systems of equationsACM Transactions on Mathematical Software, 2007
- Investigations into the applicability of adaptive finite element methods to two-dimensional infinite Prandtl number thermal and thermochemical convectionGeochemistry, Geophysics, Geosystems, 2007
- The violation of objectivity in Laplace formulations of the Navier–Stokes equationsInternational Journal for Numerical Methods in Fluids, 2007
- Row Modifications of a Sparse Cholesky FactorizationSIAM Journal on Matrix Analysis and Applications, 2005
- Achievements and some unsolved problems of the finite element methodInternational Journal for Numerical Methods in Engineering, 2000
- A set of level 3 basic linear algebra subprogramsACM Transactions on Mathematical Software, 1990
- Are fem solutions of incompressible flows really incompressible? (or how simple flows can cause headaches!)International Journal for Numerical Methods in Fluids, 1989
- Optimising finite element matrix calculations using the general technique of element vectorisationParallel Computing, 1988
- Large-scale vectorized implicit calculations in solid mechanics on a Cray X-MP/48 utilizing EBE preconditioned conjugate gradientsComputer Methods in Applied Mechanics and Engineering, 1987
- High degree efficient symmetrical Gaussian quadrature rules for the triangleInternational Journal for Numerical Methods in Engineering, 1985