Modulefpreviousupnextcontentsindex[BIG][Normal][small]
Next: 1.2 DS ATRI Up: 1 Description of DS by type Prev: Introduction Index Contents


1.1 DS AMAT

 

1.1.1 Contents

This DS is used to store the non-zero coefficients of a "finite element" type rectangular or square sparse matrix. This type of storage is called compact storage.

The DS AMAT is composed of seven arrays of predefined order.

Array AMA0:
General information.

This integer array contains 32 variables, giving a description of the job (title, date, name), of the DS AMAT (type, level, ...), and indicates the presence (or absence) of array AMA1:

1:20 TITLE

the job title in 20 words of 4 characters (stored in integers),

21:22 DATE

the creation date in 2 words of 4 characters (ditto),

23:28 NOMCRE

the name of the creator in 6 words of 4 characters (ditto),

29 'AMAT'

the DS type,

30 NIVEAU

the DS level,

31 ETAT

a reserved parameter,

32 NTACM

the number of supplementary arrays corresponding to the DS.
(they are described in array AMA1).

Array AMA1:
Describer of any supplementary arrays.

This array is analogous to array B1 of DS B (see this DS).

Array AMA2:
General matrix description.

This integer array contains 10 values:

1 NTDL

matrix order,

2 NTYP

the type of matrix coefficients,

3 NTCOEF

the number of a priori non-zero matrix coefficients,

4 NMO56

the number of words necessary in M.M. to store arrays AMA5 and AMA6,

5 NPAGE

the number of pages for the matrix (if secondary memory is used),

6 NCODSA

the type of matrix storage:

  • 1: symmetric matrix; only the lower triangle is stored, line per line,
  • 0: diagonal matrix,
  • -1: non-symmetric matrix; stored line per line, the diagonal coefficient coming last.
  • -l: non-symmetric rectangular matrix; stored line per line, of l lines and NTDL columns,

7 ND

the number of degrees of freedom per node if it is constant, or 0,

8 NOE

the number of nodes,

9 NMASMS

the number of matrices assembled and stored in M.M. (if 0: AMA5 exists but AMA6 is absent),

10 NFACTO

the type of matrix factorization,

  • 0: no factorization,
  • 1: complete or incomplete Cholesky factorization,
  • 2: complete or incomplete Crout factorization.

Array AMA3:
Pointer to the last line on each page.

This integer array of NPAGE + 1 words contains:

Array AMA4:
Pointer to the diagonal coefficient of each line.

This integer array of NTDL + 1 (or 2) words in length contains:

Array AMA5:
Pointer to the columns.

This integer array contains NTCOEF words if NCODSA 0 and 0 words if not:

Array AMA6:
The matrix coefficients.

This array of type NTYP contains the NTCOEF non-zero matrix coefficients:

1.1.2 Corresponding tools

Reading and writing a DS AMAT

A DS residing in M.M. (main memory) is written to S.M. (secondary memory) on a sequential access file.

This is a category 2 DS, where only the first 6 arrays and any possible associated arrays (described in array AMA1) are read (module SDLECT) or written (module SDECRI):

Printing a DS AMAT and plotting its structure

The contents (total or partial) of a DS AMAT can be printed by module
[4] IMAMAT. The preprocessor IMAGXX is used if an interactive call of IMAMAT is desired.

The structure of the matrix contained in a file can be plotted via preprocessor TRPRXX [96].

Creation and manipulation modules for a DS AMAT

Module ASMAGC constructs the DS AMAT from a DS TAE by assembling the element arrays.

Module AMAT2 combines two DS AMAT linearly.

Module AMATB multiplies a DS AMAT with a vector(s) (SD B).

Module TAMMUA converts a DS AMAT into a DS MUA,

Module CSAMAT performs the inverse operation and eliminates the zeros.

The solution modules using a DS AMAT are described in [26].

1.1.3 Matrix storage

Four examples of matrices are described below.

Example 1: Diagonal matrix in M.M.

Consider the 9-th order matrix shown below (the values indicated correspond to the rows of the matrix storage and not matrix coefficients):

Thus, we have:

Example 2: Symmetric matrix in M.M.

Consider the following 9-th order matrix (the values indicated correspond to the rows of the matrix storage and not to the matrix coefficients):

Thus, we have:

The correspondence between arrays AMA3, AMA4 and AMA5, therefore the position of the matrix coefficients in array AMA6, is illustrated in figure 1.1.

 
Figure 1.1: Correspondence for example 2 

Example 3: Symmetric matrix in S.M.

Consider the following 9-th order matrix (the values indicated correspond to the rows of the matrix storage and not to the matrix coefficients):

Thus, we have:

The correspondence between arrays AMA3, AMA4 and AMA5, therefore the position of the matrix coefficients in array AMA6, is illustrated in figure 1.2.

 
Figure 1.2: Correspondence for example 3 

Example 4: Non-symmetric matrix in M.M.

Consider the following 9-th order matrix (the values indicated correspond to the rows of the matrix storage and not to the matrix coefficients):

Thus, we have:

The correspondence between arrays AMA3, AMA4 and AMA5, therefore the positions of the matrix coefficients in array AMA6, is illustrated in figure 1.3.

 
Figure 1.3: Correspondence for example 4 


Modulefpreviousupnextcontentsindex[BIG][Normal][small]
Next: 1.2 DS ATRI Up: 1 Description of DS by type Prev: Introduction Index Contents