Modulefpreviousupnextcontents[BIG][Normal][small]
Next: 2.2 The algorithms Up: 2 Iterative methods Prev: 2 Iterative methods Contents


2.1 The modules

This part gives a presentation of the different modules currently available in the code, along with their utilization context and parameters. Concrete computational examples are given in chapter 6.

2.1.1 ASEMBV: assembly of B

 

Aim:
Assemble the element right-hand-sides (forces, pressures, stresses, flux, ...) by packets, in order to use the computer's parallelization and vectorization possibilities to the best. The same module is used for direct methods, described in section 1.2.1.

2.1.2 ASSAMA: assembly of AMAT

 

Aim:
Assemble the element symmetric or non-symmetric matrices, in the form of matrix  A in compact storage (stiffness matrix, mass matrix, ...), in main memory.

Utilization:

Call the module:

         CALL ASSAMA(M,NOT,NFTAE,NITAE,NFNDL1,NINDL1,NFAMAE,NIAMAE,
     +                 NFAMAS,NIAMAS)

where

2.1.3 CLIMGC: boundary conditions

Aim:
Impose the boundary conditions, of prescribed value or linear relation type .

Utilization:

(eg execute module PREPGC, and then modules ASSAMA and ASEMBV which create the structures AMAT and B)

Call the module:

  
      CALL CLIMGC(M,NIVO,VTG,NFNDL1,NINDL1,
     +            NFAMAE,NIAMAE,NFBE,NIBE,
     +            NFBDCL,NIBDCL,NFAMAS,NIAMAS,NFBS,NIBS)

where

2.1.4 CONDLU: incomplete Gauss factorization

 

Aim:
Perform incomplete Gauss factorization, in main memory, of a matrix A, already assembled in structure AMAT. The matrix must be non-symmetric. To stabilize, if necessary, the incomplete factorization by increasing the diagonal dominance, the module factorizes the matrix

Utilization:

Call the module:

                       
      CALL CONDLU(M,SIGMA,NIVEAU,NFAMAT,NIAMAT,NFAMAC,NIAMAC)

where:

2.1.5 CONDL1: construction of NDL1

Aim:
Construct the D.S. NDL1 from the D.S. MAIL. The algorithms described in this guide call function NDL, which assigns the number of the last degree of freedom corresponding to node I to NDL(I+1) (using the convention NDL(1)=0). To initialize this function, the module calls function LRNDL1, and then:

This module is also used for direct methods, described in section 1.2.9.

2.1.6 CSAMAT: construction of AMAT from MUA

 

Aim:
Determine a preconditioning matrix  by selecting the coefficients in a matrix, A, already factorized and stored in a MUA data structure. The resulting preconditioning matrix is stored in a AMAT structure. It corresponds to extracting the significant coefficients, following the criterion:

This procedure enables us to calculate a preconditioning matrix in a very efficient manner, but necessitates the assembly of matrix A in secondary memory in skyline form. This technique is interesting when numerous linear systems need to be solved using the same matrix.

For this module transform a D.S. MUA in secondary memory in a D.S. AMAT.

Utilization:

Call the module:

           
      CALL CSAMAT(M,RAPORT,NFACTO,NFMUA,NIMUA,
     +            NFAMAT,NIAMAT,NTAMAT)

where:

2.1.7 DGRADA: double conjugate gradient

 

Aim:
Solve the linear system by accelerated double conjugate gradient iterations , with preconditioning, when matrix A is not symmetric positive definite. The matrix of the linear system and the preconditioning matrix are already stored in AMAT structures.

Utilization:

Call the module:

      CALL DGRADA(M,EPS,NOMTA0,NCLRL,
     +            NFBDCL,NIBDCL,NFNDL1,NINDL1,
     +            NFAMAT,NIAMAT,NFBE,NIBE,
     +            NFAMAC,NIAMAC,NFBS,NIBS)

where:

2.1.8 FANIGC: incomplete Cholesky-Crout factorization

Aim:
Perform the incomplete Cholesky or Crout factorization   , in main memory, of a symmetric matrix A, already assembled in structure MUA. Depending on the option chosen by the user, the module performs an incomplete Cholesky or Crout factorization.

Utilization:

Call the module:

 
            CALL FANIGC(M,NIVEAU,NFACTO,
     +                  NFAMAT,NIAMAT,NFAMAP,NIAMAP,NBPIVO)

where:

Remark:
This module replaces FAINGC. Note that there are additional parameters. The old version, FANIGC, corresponds to NIVEAU=0 .

2.1.9 GCDIAG: preconditioned conjugate gradient

Aim:
Solve a linear system by conjugate gradient iterations with diagonal preconditioning  , when matrix A is symmetric positive definite. Only the matrix of the linear system must be stored in a AMAT structure, while the preconditioning matrix is determined by the program.

Utilization:

Call the module:

 
      CALL GCDIAG(M,EPS,NOMTA0,NFNDL1,NINDL1,
     +            NFBE,NIBE,NFAMAT,NIAMAT,NFBS,NIBS)

where:

2.1.10 ICHRGC: preconditioned conjugate gradient

Aim:
Solve a linear system by conjugate gradient iterations with preconditioning, when matrix A is symmetric positive definite. The matrix of the linear system and the preconditioning matrix are already stored in a AMAT structure.

Utilization:

Call the module:

 
      CALL ICHRGC(M,EPS,NOMTA0,NCLRL,
     +            NFBDCL,NIBDCL,NFNDL1,NINDL1,
     +            NFBE,NIBE,NFAMAC,NIAMAC,
     +            NFAMAT,NIAMAT,NFBS,NIBS)

where:

2.1.11 PREPGC: computation of pointers for AMAT

 

Aim:
Determine pointers AMAT3 and AMAT4, and AMAT5, of the data structure AMAT, and compute the memory space required to store matrix A.

Utilization:

Call the module:

  
      CALL PREPGC(M,ND,NCODSA,NTY,NCLRL,NFBDCL,NIBDCL,
     +            NFNDL1,NINDL1,NFNOPO,NINOPO,
     +            NFAMAT,NIAMAT,NTAMAT,MCAMAT)

where:

2.1.12 SIMPGC: non-preconditioned conjugate gradient

Aim:
Solve a linear system by conjugate gradient iterations without preconditioning, when matrix A is symmetric positive definite. The matrix of the linear system must be stored in a symmetric AMAT structure.

Utilization:

Call the module:

     
      CALL SIMPGC(M,EPS,NOMTA0,NCLRL,
     +            NFBDCL,NIBDCL,NFNDL1,NINDL1,
     +            NFBE,NIBE,NFAMAT,NIAMAT,NFBS,NIBS)

where:

2.1.13 SSORGC: preconditioned conjugate gradient

Aim:
Solve a linear system by conjugate gradient iterations with SSOR preconditioning, when matrix A is symmetric positive definite. Only the matrix of the linear system must be stored in a AMAT structure, while the preconditioning matrix is determined by the program, without an increase in memory space.

Utilization:

Call the module:

 
      CALL SSORGC(M,OMEGA,EPS,NOMTA0,NCLRL,
     +            NFBDCL,NIBDCL,NFNDL1,NINDL1,
     +            NFBE,NIBE,NFAMAT,NIAMAT,NFBS,NIBS)

where:


Modulefpreviousupnextcontents[BIG][Normal][small]
Next: 2.2 The algorithms Up: 2 Iterative methods Prev: 2 Iterative methods Contents