Next: 1.2 DS ATRI
Up: 1 Description of DS by type
Prev: Introduction
Index
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.
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:
the job title in 20 words of 4 characters (stored in integers),
the creation date in 2 words of 4 characters (ditto),
the name of the creator in 6 words of 4 characters (ditto),
the DS type,
the DS level,
a reserved parameter,
the number of supplementary arrays corresponding to the DS.
(they are described in array AMA1).
This array is analogous to array B1 of DS B (see this DS).
This integer array contains 10 values:
matrix order,
the type of matrix coefficients,
the number of a priori non-zero matrix coefficients,
the number of words necessary in M.M. to store arrays AMA5 and AMA6,
the number of pages for the matrix (if secondary memory is used),
the type of matrix storage:
the number of degrees of freedom per node if it is constant, or 0,
the number of nodes,
the number of matrices assembled and stored in M.M. (if 0: AMA5 exists but AMA6 is absent),
the type of matrix factorization,
This integer array of NPAGE + 1 words contains:
This integer array of NTDL + 1 (or 2) words in length contains:
This integer array contains NTCOEF words if NCODSA 0 and 0 words if not:
This array of type NTYP contains the NTCOEF non-zero matrix coefficients:
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):
READ(NFAMA1) LE,(M(IAMAT6-1+I),I=1,LE)or
DOUBLE PRECISION AMA6(LE)
READ(NFAMAS) NBREMO*LE,(AMA6(I),I=1,LE)
WRITE(NFAMAS) LE,(M(IAMAT6-1+I),I=1,LE)or
DOUBLE PRECISION AMA6(LE)
WRITE(NFAMAS) NBREMO*LE,(AMA6(I),I=1,LE)
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].
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].
Four examples of matrices are described below.
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:
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
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
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