CMM-2003 Computer Methods in Mechanics June 3-6, 2003, Gliwice, Poland A sparse direct multifrontal solver in SCAD software Sergiy Yu. Fialko, Edward Z.Kriksunov and Viktor S.Karpilovskyy Software company SCAD Soft 13, Chokolovsky bld., room 508 Kiev, 252680 GSP, Ukraine e-mail: fialko@erriu.ukrtel.net Abstract A sparse direct multi-frontal method (MFM) for solving large-scale finite element linear algebraic equations is presented. Both the minimum degree algorithm (MDA) and the nested dissection method (NDM) are applied to obtain a proper ordering of equations for reduction of fill-ins during the factorization. An automatic selection of a more efficient reordering method is based on a fast symbolic factorization. This method allows to essentially reduce the computing time comparing to the prevailing skyline solver based on a reverse Cuthill-McKee algorithm (RCM). The efficiency of the proposed approach is illustrated by numerous large-scale finite element models of real buildings. This method is implemented in the SCAD commercial software (http://www.scadgroup.com/eng/). Keywords: sparse, multi-frontal, ordering, frontal tree 1. Introduction Sparse direct methods [4] make a powerful tool for solution of large-scale finite element problems, especially when ill- conditioned problems need to be solved. In such case iterative methods show a slow convergence. An efficient direct method based on sparse reordering MDA (minimum degrees algorithm) or NDM (nested dissection method) approaches and the multi- frontal technique is presented here. The principal effort of the authors is aimed at a reduction of fillings in the course of the Gauss elimination procedure [4]. The attention is focused on the proposed solver implementations with commonly popular PCs to extend the capabilities of analysing real large-scale engineering problems and to reduce the cost of the finite element analysis. A properly chosen reordering method ensures the reduction of fillings during Gauss elimination or Choletsky factorization. The more fillings are reduced, the less the computational effort. The reverse Cuthill-McKee algorithm (RCM) is a prevailing reordering method which has been implemented in commercial finite element software until recently. The development of fast problem-oriented graphic pre-processors and automatic mesh generators causes the dimensions of finite element (FE) models to grow. For example, the usual size of SCAD client FE problems is about 90 000 - 300 000 degrees of freedom for today. Such large-scale problems require the implementation of advanced solution techniques because skyline solvers are still too much time-consuming. An alternative approach is to use sparse direct solvers which appear to be more efficient even than the profile reduction techniques based on Sloan or spectral reordering methods [ 3]. The multi-frontal solution technique [1],[2],[3],[5] proves to be convenient for implementing in commercial and research FE software. 2. Sparse multifrontal method MFM The MFM method is based on a combination of advantages of sparse ordering methods – the minimum degree algorithm MDA and the nested dissection method NDM [4] with the frontal [9] and multi-frontal techniques. Key features of the proposed method follow: The solution of a FEM equation system consists of node- by-node elimination of equations referred to a particular node (a nodal equation set). So, the elimination process includes a number of steps equal to the number of nodes in the finite element model. Constrained degrees of freedom do not contribute their corresponding equations to the nodal equation set. The term “elimination of node” means the elimination of a nodal equation set. As opposed to the element reordering in conventional frontal or multi-frontal solution techniques, the proposed method uses a nodal reordering. It allows us to apply well- known reordering algorithms, like the minimum degrees algorithm or nested dissection method [4]. A fast symbolic factorization [4] is applied to choose a proper reordering method for a problem: MDA or NDM. A front is a C++ class object which encapsulates all data related to a particular node of a FE model. The number of fronts is the same as the number of nodes and the number of elimination steps. Each front contains the elimination node number, the list of frontal nodes, the list of previous fronts (that is, the number of fronts which comprise the given front) and the list of assembled finite elements. A Process Descriptor data structure is created to establish the sequence of FE assembling according to the specified node reordering, sequences of fronts, lists of nodes and equations for each front. The set of fronts makes a frontal tree. The elimination process is a movement along the frontal tree. The current front is a start one if it has no predecessors (previous fronts). It is a nodal front if it has more than one predecessor, and it is a successive one if it has only one predecessor.