3. Characteristics of the linear system#

A large number of operators (STAT/DYNA/THER_NON_LINE,, CALC_MODES,…) require the construction and resolution of linear systems. To solve these systems of equations, special algorithms called « linear solvers » are used. These linear solvers are in fact omnipresent in the flow of Code_Aster operators because they are often used by numerical algorithms: non-linear schema, time integration, modal analysis etc. They consume most of the CPU time and memory.

Total number of nodes (N*T*) =

physics (N*p*) + Lagranges (N*L*) By default (INFO =1), each command traces, when building its first linear system, its characteristics: size \(N\), number of non-zero terms \(\mathit{NNZ}\)

Number of late knots (Lagranges) :N*L*

Size of the system (here in isoparametric 2D):

N=2N*P* +N*L*

NOMBRE TOTAL OF NOEUDS: 1705 DONT:

1364 NOEUDS « LAGRANGE »

NOMBRE TOTAL from EQUATIONS: 2046

TAILLE FROM PROFIL MORSE ** FROM TRIANGULAIRE SUPERIEURE (FORMAT SCR): 26652

— DONC THE TAILLE OF THE MATRICE EST:

— EN SYMETRIQUE NNZ ** = 26652

Number of non-zero terms in the matrix (“Number of Non Zero terms”) in its sparse storage.

Here, we therefore have, on average, approximately 26652/2046≈ 13 non-zero terms per row/column. — EN NON SYMETRIQUE NNZ = 51016

At this level of calculation, it is not yet known whether the matrix is symmetric or not. So, we mention the two possible storage sizes:

  • upper triangular part

  • Same + lower triangular part minus the diagonal.

Figure 3-a : Characteristics of the linear system during assembling in an Aster command type STAT_NON_LINE or THER_LINEAIRE (extracted from .mess).

The size of the system, the proportion of Lagranges and the filling of the matrix provide indirect information on the memory consumption/ CPU of the calculation and on possible resolution difficulties.

Broadly speaking, the algorithmic complexity of the construction of the linear system is in \(\mathit{NNZ}\) while its resolution in \({N}^{\alpha }\mathrm{.}\mathit{NNZ}\) (with \(1<\alpha <2\)).

Is the total memory occupancy of the type [2] _ \(\beta \mathrm{.}\mathrm{NNZ}\) (with \(10<\beta <100\)) \(\mathrm{\times }8\mathit{octets}\). This memory consumption includes several Aste r data structures and/or data structures linked to external products (MATR_ASSE, NUME_DDL, factored matrix…). Fortunately, these data structures are broken down into several distinct memory segments and the algorithm does not require their simultaneous presence in memory RAM. In this way, a large part of this data can often be downloaded onto disk.

On the other hand, the introduction of Lagranges variables [3] _ in matrices (so-called dualized matrices) degrades their numerical properties (size, definite-positivity, matrix conditioning). This therefore often involves more numerical processing in solvers and degrades their performance. This remark can also be extended to all mixed finite elements (incompressible modeling, continuous contact method, etc.).

Notes:

The characteristics of the problem (figure 3.1) are displayed only once, at the start of the order. In general, these characteristics do not change during the calculation. The only exceptions concern the operator STAT_NON_LINEavec the X- FEM method in large sliding or the continuous method in contact. For these, the profile of the matrix changes as the iterations progress.

This is displayed very early in the process, after creating the matrix profile [4] _ Aster. The assembly of the elementary terms has not yet been done [5] _ . It is for this reason that it is not possible to rule, a prima facie, on whether the matrix is symmetric or not. In practice, it is very often symmetric and, when this is not the case, it can be symmetrized via the option SOLVEUR/SYME .