Download as pdf or txt
Download as pdf or txt
You are on page 1of 17

Version

Code_Aster default
Titre : Solveur linéaire par la méthode multifrontale MULT[...] Date : 04/02/2011 Page : 1/17
Responsable : ROSE Christian Clé : R6.02.02 Révision :
7ed8caba068b

Linear Solvor by the method multifrontale


MULT_FRONT

Summary:

The method multifrontale MULT_FRONT is a direct method particularly adapted to the resolution of the linear
systems whose matrix is hollow. This method includes a preliminary phase of renumerotation intended to
minimize the filling of the matrix during factorization.

This phase also makes it possible to gather the variables in “super-variables” or “super-nodes”. Factorization,
as for it, is carried out in the form of a continuation of elimination super - nodes, in full matrices. These full
matrices allow the use of routines optimized like the BLAS, which obtain the best performances on vectorial or
scalar machines.

Having the factorized matrix, each resolution of system will require nothing any more but one “gone up
descent/” inexpensive.

Warning : The translation process used on this website is a "Machine Translation". It may be imprecise and inaccurate in whole or in part and is
provided as a convenience.
Copyright 2020 EDF R&D - Licensed under the terms of the GNU FDL (http://www.gnu.org/copyleft/fdl.html)
Version
Code_Aster default
Titre : Solveur linéaire par la méthode multifrontale MULT[...] Date : 04/02/2011 Page : 2/17
Responsable : ROSE Christian Clé : R6.02.02 Révision :
7ed8caba068b

Contents

Contents
1 Description of the method..................................................................................................... 3
1.1 Method LDLT for the full matrices..................................................................................3
1.2 Hollow matrix and filling.................................................................................................6
1.3 Method multifrontale...................................................................................................... 7
1.4 Descent - Increase......................................................................................................... 13
2 Establishment and use in Code_Aster..................................................................................14
3 Bibliography.......................................................................................................................... 15
4 Description of the versions of the document........................................................................15
Annexe 1 Reference material of the method “Minimum Approximate dismantles”.................17
Annexe 2 Reference material MONGREL...............................................................................17

Warning : The translation process used on this website is a "Machine Translation". It may be imprecise and inaccurate in whole or in part and is
provided as a convenience.
Copyright 2020 EDF R&D - Licensed under the terms of the GNU FDL (http://www.gnu.org/copyleft/fdl.html)
Version
Code_Aster default
Titre : Solveur linéaire par la méthode multifrontale MULT[...] Date : 04/02/2011 Page : 3/17
Responsable : ROSE Christian Clé : R6.02.02 Révision :
7ed8caba068b

1 Description of the method


The method multifrontale is a method direct of resolution of linear systems, which is particularly
adapted to the systems having a hollow matrix. It or not factorizes symmetrical matrices, not
necessarily definite positive. In the case more the general, the method multifrontale calls on the
method of Gauss with search for pivots.

Method established in Code_Aster factorize real or complex, symmetrical matrices or not (a


nonsymmetrical matrix is accepted insofar as its structure remains symmetrical), and uses the
algorithm known as LDL T or L.U , without search for pivot.

The resolution of a linear system is carried out in three stages:


• renumerotation of the unknown factors,
• factorization of the matrix,
• gone up descent/.

If several linear systems, of the same matrix, are to be solved, only the gone up descents/are to be
carried out. In the same way if several of the same matrices structure are to be factorized, the
renumerotation of the unknown factors will not be to remake. This preliminary phase, which will ensure
the performance of factorization, has a considerable cost, however its relative weight (in computing
times), decreases with the size of the matrices to factorize.

We will follow the following plan:


[1] presentation of the method LDL T classic adapted to the full symmetrical matrices. Concept
of elimination,
[2] extension of the method to the hollow matrices, concept of filling,
[3] presentation of the multi-frontal method.

1.1 Method LDLT for the full matrices


That is to say A , an invertible matrix, one knows that there exists a lower triangular matrix L with
diagonal unit and a higher triangular matrix U , such as A=L⋅U .
The order of these matrices will be n .

If A is symmetrical, this decomposition can be written:


T
A=LDL éq 1.1-1
T
where A is a diagonal matrix and L the matrix transposed of L , with diagonal unit.

Are i , j ∈[1, n] 2 ; from [éq 1.1-1] one deduces the expression from the coefficients from L and
D . Indeed one can write:
n n
A ij =∑ ∑ Lik Dkl LTlj éq 1.1-2
k=1 l=1

L being triangular lower than diagonal unit, and D diagonal, [éq 1.1-2] becomes:
min i , j 
Aij = ∑ Lik L jk Dkk éq 1.1-3
k =1

There is to calculate the coefficients in many ways of L and D from [éq 1.1-3]. We will see the
method called “by line” used usually in Code_Aster, and method “by column” used in the method
multifrontale.

Method by line

Warning : The translation process used on this website is a "Machine Translation". It may be imprecise and inaccurate in whole or in part and is
provided as a convenience.
Copyright 2020 EDF R&D - Licensed under the terms of the GNU FDL (http://www.gnu.org/copyleft/fdl.html)
Version
Code_Aster default
Titre : Solveur linéaire par la méthode multifrontale MULT[...] Date : 04/02/2011 Page : 4/17
Responsable : ROSE Christian Clé : R6.02.02 Révision :
7ed8caba068b

Lines of L and D the ones after the others are calculated jointly. Let us suppose these lines known
until the order i−1 , and also let us suppose that the coefficients of the line i are known until the
order j−1 ; [éq 1.1-3] is written, with ji :
j −1
A ij =∑ Lik L jk D kk Lij D jj L jj éq 1.1-4
k =1
One has as follows:

 
j −1
A ij −∑ Lik L jk D kk
k=1 éq 1.1-5
Lij =
D jj
and in a similar way:
j −1
Dii =Aii −∑ Lik Lik D kk éq 1.1-6
k=1

With this method, each coefficient is calculated in one only time (operation [éq 1.1-5]), while going to
seek the coefficients previously calculated, and by making the scalar product of L jk , k =1, j−1  
and  Tk , k =1, j−1  , with T k =Lik . Dkk

This algorithm is illustrated by [Figure 1.1-a].

d jj
(En gris et hachuré, les termes nécessaires 
j au calcul de Lij)

i Lij

j i

Figure 1.1-a

Warning : The translation process used on this website is a "Machine Translation". It may be imprecise and inaccurate in whole or in part and is
provided as a convenience.
Copyright 2020 EDF R&D - Licensed under the terms of the GNU FDL (http://www.gnu.org/copyleft/fdl.html)
Version
Code_Aster default
Titre : Solveur linéaire par la méthode multifrontale MULT[...] Date : 04/02/2011 Page : 5/17
Responsable : ROSE Christian Clé : R6.02.02 Révision :
7ed8caba068b

Method by columns
Let us examine the figure [Figure 1.1-b] following:

On ajoute à la colonne en  la colonne
j
en , multipliée par le produit des termes
en
i

j i

Figure 1.1-b

One will see further this in details (cf Appears 1.3-g).


Let us suppose that the column j , i.e. terms D jj and  Lij ,i= j1, n  , is known and carry out the
following algorithm:

∣∣
pour i= j1 à n ,faire éq 1.1-7
2
Dii =Dii −Lij D jj
pour k =i1 à n ,faire éq 1.1-8
L ki =Lki −L kj Lij L jj (saxpy)
Let us pass three note:
1) the operations [éq 1.1-7] are called elimination unknown factor j . Indeed, after [éq 1.1-7],
one will make never again call under the column j in the continuation of the algorithm.
The method by column is sometimes described as “looking forward method”; as soon as they
are calculated, the terms of the matrix act on the following terms. On the other hand, the
methods by line are called “looking backward methods”; one will seek the terms previously
calculated with each new calculation,
2) the operation [éq 1.1-7] is an operation of the type “saxpy”, one withdraws from the vector
 
L ki , k =i1, n , the product of the constant Lij⋅D jj and of the vector L kj , k =i1, n , 
3) having carried out [éq 1.1-7] for j fixed, let us see what it remains to do to know the column
 j1 ,
• D j+1,j+1 is known (it easily is checked),
• it is enough to divide the column  L k,j+1 , k = j2, n  by D j+1,j+1 to have the final
value of this one.

Warning : The translation process used on this website is a "Machine Translation". It may be imprecise and inaccurate in whole or in part and is
provided as a convenience.
Copyright 2020 EDF R&D - Licensed under the terms of the GNU FDL (http://www.gnu.org/copyleft/fdl.html)
Version
Code_Aster default
Titre : Solveur linéaire par la méthode multifrontale MULT[...] Date : 04/02/2011 Page : 6/17
Responsable : ROSE Christian Clé : R6.02.02 Révision :
7ed8caba068b

(The terms above were wrongly confused L ki final and their name of programming which contains
the values of L ki modified during eliminations).
One from of thus deduced the algorithm general from factorization LDL T by columns.

∣∣
pour j=1à n , faire

∣ pour k =i1 à n , faire


Lkj =Lkj / D jj
/normalisation/

éq 1.1-9
pour i= j1 à n , faire /élimination/
Dii =Dii −L2ij D jj


pour k =i1 à n , faire
Lki=Lki−Lkj Lij L jj /saxpy/

Before passing to the concept of filling, it is advisable to make as of now a useful remark for the
continuation. If one looks at [éq 1.1-9], it appears that one can eliminate the unknown factor j , even
if terms  L ki , k =i1, n  and Dii are not yet available. Indeed, it is enough to preserve the terms
 −Lkj Lij D jj  , and to add them then under the terms L ki . These terms  L kj Lij D jj  , i varying
j 1 with n and k of i1 with n form a matrix associated with elimination with the unknown
factor j , that one will call thereafter frontal matrix j .

1.2 Hollow matrix and filling


It is pointed out that if the initial matrix comprises worthless terms, successive eliminations cause
filling, i.e. certain terms L ki are different from zero whereas the initial term A ki is.

Let us suppose that before the elimination of the unknown factorj , the term L ki is null; if L kj and
Lij are both nonworthless, [éq 1.1-9] watch that L ki will become also nonnull. This filling has a
graphic interpretation. Let us suppose in this case that all the unknown factors are represented by the
nodes of a graph: the nodes will be connected k and i if and only if the term A ki matrix initial is
nonnull. If A ki is null with i connected to j and k connected to j , the elimination from the
graphic point of view of j will consist in connecting then i and k .

The figure [Figure 1.2-a] illustrates this interpretation. The edges in dotted line are those create by the
elimination of j . They correspond in the new nonworthless terms of the matrix L .

Warning : The translation process used on this website is a "Machine Translation". It may be imprecise and inaccurate in whole or in part and is
provided as a convenience.
Copyright 2020 EDF R&D - Licensed under the terms of the GNU FDL (http://www.gnu.org/copyleft/fdl.html)
Version
Code_Aster default
Titre : Solveur linéaire par la méthode multifrontale MULT[...] Date : 04/02/2011 Page : 7/17
Responsable : ROSE Christian Clé : R6.02.02 Révision :
7ed8caba068b

i n i n

k k m
m

l l
p p

Figure 1.2-a: The elimination of the node J connects all its neighbors between them

1.3 Method multifrontale


The method multifrontale is a direct method, of Gauss type, which aims at exploiting to the maximum
the hollow of the matrix to be factorized. She seeks, on the one hand, to minimize the filling by using
an optimal renumerotation, on the other hand, she extracts from the structure digs matrix information
allowing him to eliminate (cf page 5 notices (1)) unknown factors independently from/to each other.

Let us examine the simple case of the figure [Figure 1.3-a], where the matrix has only one null term,
A 21 .

Figure 1.3-a

Column 2 of L does not undergo the effects of the elimination of unknown factor 1, because the
coefficient A 21 0, puis L 21 0 (cf [éq 1.1-9] seen previously). Contributions to columns 3 and 4 of
L , unknown factors 1 and 2 are independent of their kind of elimination (it is necessary to look in
detail [éq 1.1 - 9]). Of this observation, one can introduce the concept of tree of elimination presented
by I. Duff [bib1].

Warning : The translation process used on this website is a "Machine Translation". It may be imprecise and inaccurate in whole or in part and is
provided as a convenience.
Copyright 2020 EDF R&D - Licensed under the terms of the GNU FDL (http://www.gnu.org/copyleft/fdl.html)
Version
Code_Aster default
Titre : Solveur linéaire par la méthode multifrontale MULT[...] Date : 04/02/2011 Page : 8/17
Responsable : ROSE Christian Clé : R6.02.02 Révision :
7ed8caba068b

The tree of elimination of the matrix A can be represented by the figure [Figure 1.3-b].

1 2

Figure 1.3-b

This tree structure contains two concepts:


• the independence of certain eliminations (here variables 1 and 2), which will lead to a
possible parallelism of the operations,
• the minimization of the operations to be carried out, (one sees on the tree structure that the
term L 21 is not to calculate).

Being given a hollow matrix, which one knows the filling, the tree of elimination can be built as
follows:
• all the sheets of the tree (lower ends) correspond to the unknown factors j , such as
A ji 0 for i 1 with j  1 . Here 1 is of course a sheet because there is no term A1i
for i  1 , 2 is also a sheet because A 21 0 ,
• a node j has as a father i , if i is the smallest number of line such as A ij 0 . Here, 3 is
the father of 1 and 2.

Note:
1) one employs starting from now the vocabulary of the tree, graph theory, sheet, node… Here
the tree is turned over, its sheets are in bottom,
2) one will refer to [bib1] for more details and the demonstrations of the validity of the method,
3) in the example above, the order of elimination between the unknown factors (3) and (4) is
fixed by initial classification, one could have permuted the lines and the columns of the matrix
and to have 4 like father of 1 and 2,
4) it should be noticed that the manufacturing of this tree structure must take into account them
nonworthless terms obtained by filling during elimination. (One will see more details on
this subject in [bib2]). One cannot manufacture the tree of elimination only starting from the
initial hollow matrix: it is necessary to also know the terms of filling like already previously
mentioned. The digital factorization of the method multifrontale is preceded by an important
phase: the simulation of eliminations and thus, the creation of the nonworthless terms. One
calls also this simulation, logical elimination or symbolic system. This simulation takes place
during the first phase: the renumerotation. One will see the four phases of the method
multifrontale, most important being the first and the fourth.

Warning : The translation process used on this website is a "Machine Translation". It may be imprecise and inaccurate in whole or in part and is
provided as a convenience.
Copyright 2020 EDF R&D - Licensed under the terms of the GNU FDL (http://www.gnu.org/copyleft/fdl.html)
Version
Code_Aster default
Titre : Solveur linéaire par la méthode multifrontale MULT[...] Date : 04/02/2011 Page : 9/17
Responsable : ROSE Christian Clé : R6.02.02 Révision :
7ed8caba068b

First phase: The renumerotation of the “minimum dismantles” (minimum degree).


This renumerotation has for first goal to minimize the number of operations to be carried out
during factorization. For that one simulates the elimination of the nodes and one chooses like
candidate with elimination the node of the graph having the lowest number of neighbors. One
uses the concept of graph here seen with the figure [Figure 1.2-a]. The initial hollow matrix
defines the graph on which one works. This last is then updated to each elimination of nodes
(creation of links). The simulation of the filling makes it possible to reach it second goal who is
the manufacturing of the tree of elimination seen in the preceding paragraph. third goal reached,
is the creation of super - nodes. It is an important concept that we will develop.
A super-node (SN) is formed of the whole of the nodes which, during elimination, have the same
neighbors within the meaning of the graph of elimination. During the simulation of elimination, one
detects that for example, the nodes i , j and k are:

• of a share, neighbors between them (terms L ij , L jk , L ik … are nonworthless),


• in addition, they have as common neighbors the nodes:  l , m, p, q , r , s, t (see
[Figure 1.3-c]).

They form the super-node then  i, j, k and will be eliminated all together during digital
factorization.
MF is a method of factorization per blocks, when it uses the concept of “super - node”.
This concept has the double following advantage:
• she reduces the cost (considerable) of the renumerotation,
• she reduces the cost of factorization by gathering calculations (use of routines of linear
algebra of type blas-2 or blas-3).

One sees on [Figure 1.3-c] the structure of the columns  i, j, k (nonworthless terms in grayed)
in a hollow total matrix virtual. In fact, such a hollow matrix is never assembled. One works in
local matrices full that one calls them frontal matrices. There is a frontal matrix by SN (One will
re-examine this concept in the paragraph “digital Factorization”).

i
j
k

l en grisé, les termes non nuls de la 
m matrice virtuelle globale

r
s
t

Figure 1.3-c

Warning : The translation process used on this website is a "Machine Translation". It may be imprecise and inaccurate in whole or in part and is
provided as a convenience.
Copyright 2020 EDF R&D - Licensed under the terms of the GNU FDL (http://www.gnu.org/copyleft/fdl.html)
Version
Code_Aster default
Titre : Solveur linéaire par la méthode multifrontale MULT[...] Date : 04/02/2011 Page : 10/17
Responsable : ROSE Christian Clé : R6.02.02 Révision :
7ed8caba068b

In short, the first phase of the method multifrontale (the renumerotation by the “minimum dismantles”)
consists of the three following actions:

• a renumerotation of the unknown factors to be eliminated, in order to minimize the filling.


One each time simulates eliminations by updating the lists of neighbors of the nodes,
• jointly with the preceding action, one builds the tree of elimination, and,
• one detects the “super-nodes”, which one can describe as class of equivalence for the
relation “have the same neighbors”.

Note:
The tree of elimination provided by the renumerotation is expressed in terms of super - nodes,
because digital elimination to follow will be done by super-nodes.

Second phase: Factorization symbolic system

This phase is not as fundamental as the preceding one. It is a technical phase intended to build
certain pointers. They are in particular the tables of total indices and buildings which establish the
correspondences between the unknown factors during the assembly of the frontal matrices.

Third phase: The sequence of execution

It is also a technical phase. One saw in the preceding paragraph that the method consisted in
traversing the tree of elimination, by carrying out an elimination with each node of the tree. The
result of this elimination is one frontal matrix. The order of this matrix is the number of neighbors
of eliminated SN. The storage of the frontal matrices is expensive in occupation of the memory.

The frontal matrix j (result of the elimination of SNj ) will be assembled in the frontal matrix of
the node i , where i is it father of j . One will see this phase more in detail during digital
factorization). All the frontal matrices must be preserved, until they are used during the
elimination of “SN father”. One can then arrange the matrix of “SN father” instead of those of
“SN son”.

There are several ways of traversing the tree by respecting the constraint: “the son must be
eliminated before the father”. The object of the third phase is to find the order of course which
minimizes the place in memory necessary for the storage of the frontal matrices ([bib2],
page 2.12).

Fourth phase: Digital factorization

This phase is effective factorization, i.e. the calculation of the matrices L and D . Thereafter,
one will confuse these two matrices and from a data-processing point of view D will be seen like
the diagonal terms of L .

Digital factorization consists in traversing the tree of elimination; for each “Super-node”, one
carries out:

• assembly, in the frontal matrix “mother”, of the frontal matrices “girl”,


• the elimination of the columns of the super-node.

Let us see the following example with the graph and the tree of elimination of [Figure 1.3-d]
(nodes 8,9,10 are not reproduced on the drawing).

Warning : The translation process used on this website is a "Machine Translation". It may be imprecise and inaccurate in whole or in part and is
provided as a convenience.
Copyright 2020 EDF R&D - Licensed under the terms of the GNU FDL (http://www.gnu.org/copyleft/fdl.html)
Version
Code_Aster default
Titre : Solveur linéaire par la méthode multifrontale MULT[...] Date : 04/02/2011 Page : 11/17
Responsable : ROSE Christian Clé : R6.02.02 Révision :
7ed8caba068b

1 4

SN4(8,9,10)

5
6
SN3(4,5,6,7) 2

SN1(1,2) SN2(3) 7

Figure 1.3-d: Example of graph and tree of elimination

Between brackets, one reads the numbers of the unknown factors of SN.
The elimination of the SN1 consists of:
1) assembly of the columns 1 and 2 initial matrix, in a matrix of work, known as frontal matrix
before elimination. This matrix is of order 5 , related to the unknown factors 1,2,4 ,5 ,6 .
(Because 1 and 2 are related to 4,5 ,6 only),
2) the elimination of the SN1 (of the columns 1 and 2 , according to the formulas [éq 1.1-7] and
[éq 1.1 - 8] previously seen),
3) storage of the two columns 1 and 2 matrix, in a table Factor, which contains the columns of the
total factorized matrix,
4) storage of the frontal matrix 1 of order 3 dependent on the unknown factors 4,5 ,6 .
One makes the same thing with the SN2.
These two eliminations are illustrated by the figure [Figure 1.3-e], where one sees in grayed with
hatching the two frontal matrices.

matrice frontale 1 matrice frontale 2

1 2 4 5 6 3 4 5 6 7

tableau FACTOR

Figure 1.3-e

The elimination of the SN3 consists of:

• the addition of the columns 4,5 ,6 ,7 initial matrix, with the matrix of work of order 7,
related to the unknown factors 4,5 ,6 ,7,8 ,9 ,10 ,

Warning : The translation process used on this website is a "Machine Translation". It may be imprecise and inaccurate in whole or in part and is
provided as a convenience.
Copyright 2020 EDF R&D - Licensed under the terms of the GNU FDL (http://www.gnu.org/copyleft/fdl.html)
Version
Code_Aster default
Titre : Solveur linéaire par la méthode multifrontale MULT[...] Date : 04/02/2011 Page : 12/17
Responsable : ROSE Christian Clé : R6.02.02 Révision :
7ed8caba068b

• assembly of the frontal matrices 1 and 2 in this matrix of work,


• the elimination of the columns 4,5 ,6 ,7 ,
• obtaining in additional Factor of four columns,
• obtaining the frontal matrix 3 of order 3 (columns 8,9 ,10 ).

It is noticed that the frontal matrix 3 can line up instead of frontal matrices 1 and 2 . The storage of
these matrices requires a structure of pile where one piles up at the end of an elimination, and where
one depilates during the assembly. It is the maximum length of this pile which is minimized at the time
of the phase of sequence of execution.

The figure [Figure 1.3-f] illustrates the elimination of the SN3.

colonnes initiales

matrice frontale 1

matrice 
frontale 2

4 5 6 7 8 9 10

matrice frontale 3

Figure 1.3-f: Elimination of the SN3

It is noticed that the coefficient L74 (white square on the figure [Figure 1.3-f]), comes from the
elimination of the SN3, and that the initial term A74 is null (link in dotted on the figure [Figure 1.3-d].

One saw in paragraph 1.1 that the elimination of a column consisted of an operation of the type
“saxpy”, addition with a vector of the product of a vector by a scalar.
It is seen easily that the elimination of a super-node, groups columns, consists of an operation of the
type “produces matrix-vector”. These operations consume the greatest part in computing times, of the
work of factorization of the matrix. They are carried out by library subroutines BLAS, are provided
after being optimized on most calculators. One sees on the figure [Figure 1.3-g] the column j update
by the product of the matrix A [ j1: n ,1 : m ] and of the vector A [ j , 1: m ] .

Warning : The translation process used on this website is a "Machine Translation". It may be imprecise and inaccurate in whole or in part and is
provided as a convenience.
Copyright 2020 EDF R&D - Licensed under the terms of the GNU FDL (http://www.gnu.org/copyleft/fdl.html)
Version
Code_Aster default
Titre : Solveur linéaire par la méthode multifrontale MULT[...] Date : 04/02/2011 Page : 13/17
Responsable : ROSE Christian Clé : R6.02.02 Révision :
7ed8caba068b

Factorization being finished, one only has the matrix factorized in the shape of a compacted table of
the nonworthless terms. It is a storage of type “Morse”. The table of index total evoked in factorization
symbolic system indicates, for each column of L , numbers of line of each stored coefficient.

A  j,1: m

A  j 1: n, j
j

n
l i m j m p

A  j 1: n, 1: m

Figure 1.3-g: Update of the column j by a product matrice*vector

1.4 Descent - Increase


Columns of L being stored in a compacted way, the descent is of type “saxpy” and the increase of
the type produces scalar, these two operations being both indexed. I.e. the algorithm of descent is
coarsely the following, (while having initialized beforehand x by the second member of the system):

∣∣
pour i=1 à n faire
pour k ∈colonne i faire
x  global  k =x global k −L ki×x i saxpyindexé

∣ pour i=1 à n faire


x i=xi/D ii

The increase, it, is written in the form:

∣ pour i variant de r à 1 faire


x i= x i− ∑ L ik⋅x  global k 
k∈ colonne i
: produit scalaire indexé

Warning : The translation process used on this website is a "Machine Translation". It may be imprecise and inaccurate in whole or in part and is
provided as a convenience.
Copyright 2020 EDF R&D - Licensed under the terms of the GNU FDL (http://www.gnu.org/copyleft/fdl.html)
Version
Code_Aster default
Titre : Solveur linéaire par la méthode multifrontale MULT[...] Date : 04/02/2011 Page : 14/17
Responsable : ROSE Christian Clé : R6.02.02 Révision :
7ed8caba068b

2 Establishment and use in Code_Aster


The use of the multi-frontal method is accessible by the operator NUME_DDL, in the following way:

NU = NUME_DDL (matr_rigi = matr, storage = ‘MORSE',


renum = ‘MANDELEVIUM’
or renum = ‘MDA‘,
or renum = ‘MONGREL‘);

Two other methods of renumerotation are available: Minimum approximate Degree ( MDA), which is an
alternative of the method of the minimum degree, and a method of encased dissection (MONGREL).
They are briefly described in appendices 1 and 2. It is enough to replace the value of renum by MDA,
or MONGREL.

This method is also directly available under the keyword SOLVEUR in MECA_STATIQUE,
STAT_NON_LINE, DYNA_NON_LINE, THER_LINEAIRE, THER_NON_LINE with same logic.

Then, the operator will be used TO FACTORIZE, the call being the same one as in the case of a
matrix stored according to the profile mode.

In NUME_DDL, it is indicated that the matrix to be factorized is arranged according to the mode MORSE
and that one asks for one of the two renumérotations of the “minimum dismantles”, or a
renumerotation by encased dissection (MONGREL).

In this case, NUME_DDL carry out the first three phases seen previously:

1) renumerotation,
2) factorization symbolic system,
3) sequence of execution.

Since a recent development, the renumerotation is carried out on the nodes (within the meaning of the
interpolation), and either on the degrees of freedom. That allows a time-saver of calculation and
ensures the respect of the initial order of the degrees of freedom. inside the nodes (that is sometimes
necessary in the incompressible case where the pressure must be numbered after displacements).
The constraint of classification of “double-lagrange” framing the degrees of freedom. affected by the
boundary condition is also respected.

Moreover, NUME_DDL prepare cutting per blocks of the factorized matrix. Indeed, it was seen that with
each elimination, one arranged in a table the columns of the factorized matrix. These columns will be
useful only at the time of the re-installed descent/. They are never used for calculation of other
columns. It is thus no beneficial to have them all in memory. They are arranged, in Code_Aster, in the
shape of a collection of objects JEVEUX of variable length. These objects, blocks of columns, must
nevertheless satisfy the following constraint: each block corresponds to an integer of “supernœuds”.
One cannot thus have the columns of same “a supernœud” on several blocks.

Since one does not know the place in memory available during digital factorization, one decides in
NUME_DDL that the maximum length of each block will be the max. one (on all SN) of the sum lengths
of the columns of SN .

L b max= Max
SNi  ∑ longueur  col.  
k ∈SNi
k , (en abrégé)

The operator TO FACTORIZE use the pointers created by NUME_DDL and the initial matrix MORSE. It
creates the matrix factorized in the shape of a collection of objects JEVEUX, as one saw previously. A
structure of data provisional is also necessary. It relates to the frontal matrices. Two cases arise:
Warning : The translation process used on this website is a "Machine Translation". It may be imprecise and inaccurate in whole or in part and is
provided as a convenience.
Copyright 2020 EDF R&D - Licensed under the terms of the GNU FDL (http://www.gnu.org/copyleft/fdl.html)
Version
Code_Aster default
Titre : Solveur linéaire par la méthode multifrontale MULT[...] Date : 04/02/2011 Page : 15/17
Responsable : ROSE Christian Clé : R6.02.02 Révision :
7ed8caba068b

• the pile of the frontal matrices can hold very whole in memory (in a monodimensional table),
in this case, one allocates an object JEVEUX and the algorithm multifrontal manages
itself then this space, by arranging the frontal matrix “mother” instead of matrices “girls”,
• it does not hold and, in this case, it is created in the shape of a collection of objects JEVEUX,
each frontal matrix being an object. For the elimination of the “supernœud” i it is
necessary simultaneously in memory:
• the block of factorized to which belongs it SNi
• the object stamps frontal i like all the frontal matrices “girl” of i who will be destroyed
after their use.

The frontal matrix i , it, will be stored until its use and its destruction. One could, as it was made
before, to release within the meaning of JEVEUX each frontal matrix after its creation. That can
involve then, in the event of weak memory available, a storage on crippling disc in volume. Indeed, a
destruction of object JEVEUX do not involve the destruction of its image on disc, and summons it
lengths of the frontal matrices is enormous.

In short, it is necessary to be able to arrange simultaneously in memory:

• a block of factorized,
• the pile of the frontal matrices, in only one object if that holds, several objects if not.

It is thus necessary “sufficiently” of memory to use the method multifrontale. The second manner of
arranging the pile allows the execution when the memory is sufficient, but crumbled.

When the memory is insufficient, it is necessary to start again the execution of TO FACTORIZE with a
larger memory.

3 Bibliography
1) I. DUFF: Parallel implementation of multifrontal design”. Parallel computing 3, pp. 193-201 (1986)

2) C. ROSE: A method multifrontale for the direct resolution of the linear systems. Note HI-
76/93/008

3) Minimum year approximate dismantles ordering algorithm, Tim DAVIS, Patrick AMESTOY, Iain
DUFF, Technical Carryforward TR 94-039, (SIAM J. Matrix Analysis & Applications, flight 17, no.4,
(1996), pp. 886-905).

4) Minimum The evolution of the dismantles ordering ordering, A. George, J. Liu, SIAM review, flight
31 1989. One can also consult the following websites: HTTP: /www.cerfacs.fr - HTTP:
/ww.cise.ufl.edu/~davis

5) MONGREL : With software package for partitionning unstructured graphs, partitioning meshes, and
computing wire oredering of sparse matrices Version 4.0. Georges Karypis &Vipin KUMAR

6) With fast and high quality MultiLevel Design for partitioning irregular graphs. SIAM newspaper
one Scientific Computing 1998, Flight 20 No 1. Georges Karypis & Vipin KUMAR

4 Description of the versions of the document


Version Author (S) Description of the modifications
Aster Organization (S)
5 C.ROSE- EDF/R & D Initial text
/SINETICS
8,4 C.ROSE- EDF/R & D
Warning : The translation process used on this website is a "Machine Translation". It may be imprecise and inaccurate in whole or in part and is
provided as a convenience.
Copyright 2020 EDF R&D - Licensed under the terms of the GNU FDL (http://www.gnu.org/copyleft/fdl.html)
Version
Code_Aster default
Titre : Solveur linéaire par la méthode multifrontale MULT[...] Date : 04/02/2011 Page : 16/17
Responsable : ROSE Christian Clé : R6.02.02 Révision :
7ed8caba068b

/SINETICS

Warning : The translation process used on this website is a "Machine Translation". It may be imprecise and inaccurate in whole or in part and is
provided as a convenience.
Copyright 2020 EDF R&D - Licensed under the terms of the GNU FDL (http://www.gnu.org/copyleft/fdl.html)
Version
Code_Aster default
Titre : Solveur linéaire par la méthode multifrontale MULT[...] Date : 04/02/2011 Page : 17/17
Responsable : ROSE Christian Clé : R6.02.02 Révision :
7ed8caba068b

Annexe 1Reference material of the method “Minimum


Approximate dismantles”
The algorithm of the “minimum dismantles” consists has to number the nodes of a graph in the order ascending
amongst their neighbor. Here is a simplified but essential description.

1) one forms the initial graph associated with the matrix digs to factorize,
2) one calculates the number of the neighbors of the nodes (their degree),
3) one numbers in first (then eliminates from the graph), the node having less neighbors
(minimum degree),
4) one updates the graph of stage 1,
5) one turns over at stage 2.

The calculation of the degree of the nodes is an expensive operation in computing times. The method
“Minimum Approximate dismantles” [bib3] proposes to reduce this cost. For that, instead of calculating the real
degree of a node one is satisfied with one raising (often equal, according to the authors, with the true degree),
of easier calculation. Indeed during elimination the true degree of the node i is equal to d i , cardinal of the
following unit: Ai ∪{ L e } , where the union is made on the whole of the neighbors e , previously eliminated, of
i (terms of filling), and where Ai is the whole of the initial neighbors. In the approximate method i is
replaced by d i =card Ai ∑ card { L e } , i.e. one neglects the intersection of L e .
This method is described in [bib3] and the various alternatives of the algorithm of the “minimum dismantles”
are exposed in [bib4].

Annexe 2Reference material MONGREL


Implementation of the module of renumerotation for hollow matrices MONGREL is described in the note [bib5],
provided in the repertoire Mongrel-4.0/Doc software. The algorithm used is described in [bib6]
It is also possible to consult the following Internet address: HTTP: /www.cs.umn.edu/~karypis

MONGREL is mainly a cutting tool of graphs (grids), aiming at the 2 following goals:

• to cut out a graph given in p subgraphs having the closest possible sizes,
• to minimize the size of the borders between the subgraphs.
The first goal aims at a good balance of parallelization on p processors and the second aims at
minimizing the communications.

MONGREL use an algorithm of partition of graphs on several levels, proceeding in the following way: on each
level one seeks separators (together of with dimensions), minimal sizes cutting the graph in equal parts.
MONGREL bracket this principle with the renumerotation of the nodes of a graph by seeking with each stage a
separator dividing the graph into 2 subgraphs. One at the head numbers the nodes of the first under - graph,
then those of the second, then those of the separator. One applies then the same algorithm to the 2 pennies
graphs in a recursive way.

Warning : The translation process used on this website is a "Machine Translation". It may be imprecise and inaccurate in whole or in part and is
provided as a convenience.
Copyright 2020 EDF R&D - Licensed under the terms of the GNU FDL (http://www.gnu.org/copyleft/fdl.html)

You might also like