MILAMIN: MATLAB-based finite element method solver for large problems

被引:166
作者
Dabrowski, M. [1 ]
Krotkiewski, M. [1 ]
Schmid, D. W. [1 ]
机构
[1] Univ Oslo, N-0316 Oslo, Norway
关键词
numerical models; FEM; earth science; diffusion; incompressible Stokes; MATLAB;
D O I
10.1029/2007GC001719
中图分类号
P3 [地球物理学]; P59 [地球化学];
学科分类号
0708 ; 070902 ;
摘要
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.
引用
收藏
页数:24
相关论文
共 25 条
[11]  
FERENCZ RM, 1998, HDB NUMERICAL ANAL, P39
[12]  
FLETCHER CAJ, 1997, COMPUTATIONAL TECHNI
[13]   A numerical evaluation of sparse direct solvers for the solution of large sparse symmetric linear systems of equations [J].
Gould, Nicholas I. M. ;
Scott, Jennifer A. ;
Hu, Yifan .
ACM TRANSACTIONS ON MATHEMATICAL SOFTWARE, 2007, 33 (02)
[14]   LARGE-SCALE VECTORIZED IMPLICIT CALCULATIONS IN SOLID MECHANICS ON A CRAY X-MP/48 UTILIZING EBE PRECONDITIONED CONJUGATE GRADIENTS [J].
HUGHES, TJR ;
FERENCZ, RM ;
HALLQUIST, JO .
COMPUTER METHODS IN APPLIED MECHANICS AND ENGINEERING, 1987, 61 (02) :215-248
[15]  
HUGHES TJR, 2000, FINITE ELEMENT METHO, V22, P682
[16]  
Kwon Y.W., 2000, The Finite Element Method Using Matlab, V2nd
[17]   The violation of objectivity in Laplace formulations of the Navier-Stokes equations [J].
Limache, A. ;
Idelsohn, S. ;
Rossi, R. ;
Onate, E. .
INTERNATIONAL JOURNAL FOR NUMERICAL METHODS IN FLUIDS, 2007, 54 (6-8) :639-664
[18]   ARE FEM SOLUTIONS OF INCOMPRESSIBLE FLOWS REALLY INCOMPRESSIBLE - (OR HOW SIMPLE FLOWS CAN CAUSE HEADACHES) [J].
PELLETIER, D ;
FORTIN, A ;
CAMARERO, R .
INTERNATIONAL JOURNAL FOR NUMERICAL METHODS IN FLUIDS, 1989, 9 (01) :99-112
[19]   A simple mesh generator in MATLAB [J].
Persson, PO ;
Strang, G .
SIAM REVIEW, 2004, 46 (02) :329-345
[20]  
Pozrikidis C., 2005, INTRO FINITE SPECTRA