Modulefpreviousupnextcontents[BIG][Normal][small]
Next: References Up: 1 Examples Prev: 1.2 The symmetric model problem Contents


1.3 The non-symmetric model problem

The solution of partial differential equations by the finite element method often leads to linear systems with positive definite symmetric matrices. To obtain a non-symmetric matrix, a particular scheme must intervene in the variational formulation, for example of the decentralizing type. This requires therefore a special treatment during the construction of the element matrices, or else a modification in the assembly of the matrix of the linear system to be solved.

To simplify this presentation, we assume that we construct the matrix and RHS of the linear system in the usual way. Under these conditions, the modules used are PREPAC, ASSMUA, ASEMBV, CLIMGC, GAUSPC and DRGAPC for a solution by a direct method, or PREPGC, ASSAMA, ASEMBV, CLIMGC, CONDLU and DGRADA for a solution by an iterative method.

The physical problem arises from the numerical simulation of the exploitation of a oil-field. The matrix is obtained by a finite difference type scheme at 7 points. It corresponds to a three-dimensional problem, the domain is a cube, and the nodes of the mesh are distributed over a network in the three space directions. The example presented here contains 1000 unknowns, corresponding to the pressure calculated at each of the nodes in the mesh (there are 10 nodes in each direction), The resulting matrix is strongly non-symmetric, and badly conditioned; this linear system is used by oil engineers to test the efficiency of their solution and preconditioning algorithms.

For more details about the variational formulation of this problem, as well as its finite element approximation and the different aspects of the computer implementation, consult [1]. Other numerical experiences, concerning the solution of this type of problem, are also found in [1].

1.3.1 Solution by the Gauss method

The solution of the model problem by a direct method is performed by calling program GAUSXX, using the following data:

 mail                                  $ FILE NAME                       
     1                                 $     AND LEVEL OF THE D.S. MAIL
     1     5     3                     $ NDSM  NTYP  ND
 tae                                   $ FILE NAME                       
     1                                 $     AND LEVEL OF THE D.S. TAE 
     1                                 $ 1 IF BDCL IS USED , 0 IF NOT
 bdcl                                  $ FILE NAME                       
     1                                 $     AND LEVEL OF THE D.S. BDCL
     0                                 $ 1 IF BOUNDARY CONDITIONS 
                                       $ I.T.O. LINEAR RELATIONS EXIST 
 mua                                   $ FILE NAME                       
     1                                 $     AND LEVEL OF THE D.S.  MUA
 sd.amat                               $ FILE NAME                       
     1                                 $     AND LEVEL OF THE D.S. AMAT
 sd.b                                  $ FILE NAME                       
     1                                 $     AND LEVEL OF THE D.S. B   
 sd.b.out                              $ FILE NAME                       
     1                                 $     AND LEVEL OF THE D.S. B   
     5                                 $ IMPREB

The corresponding results are given below:

 M   M    OOO    DDDD    U   U   L       EEEEE   FFFFF
 MM MM   O   O   D   D   U   U   L       E       F
 M M M   O   O   D   D   U   U   L       EEEE    FFFF
 M   M   O   O   D   D   U   U   L       E       F
 M   M    OOO    DDDD     UUU    LLLLL   EEEEE   F      VERSION 93

 DATE   : 22/07/93
 AUTEUR : pate                    
 ******************************************
 EXECUTING THE GAUSS 
 ******************************************


 -- CREATE THE DATA  =-=  EXECUTE MODULE (DATA EXISTING)  =-=  END  =-=  ?
    -                     -                                    ---

e
 -- NAME OF DATA FILE ? 
dgaus.data
 ++ OPEN(10,FILE='dgaus.data',SPEC='OLD',RECL=0)
 -- PRINT PARAMETER FOR THE EXECUTION ? 
5
 ++ OPEN(11,FILE='mail',SPEC='OLD,UNFORMATTED',RECL=0)
 ++ OPEN(12,FILE='tae',SPEC='OLD,UNFORMATTED',RECL=0)
 ++ OPEN(13,FILE='bdcl',SPEC='OLD,UNFORMATTED',RECL=0)
 ++ OPEN(14,FILE='mua',SPEC='UNFORMATTED',RECL=0)
 ++ OPEN(15,FILE='sd.amat',SPEC='UNFORMATTED',RECL=0)
 &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
 MODULE TAM :     
 S.D.E. AMAT          (NFAMAT ET NIAMAT) :     15     1
 S.D.S. MUA           (NFMUA  ET NIMUA ) :      0     1
 ++ OPEN(15,FILE='sd.b',SPEC='UNFORMATTED',RECL=0)
 ++ OPEN(16,FILE='sd.b.out',SPEC='UNFORMATTED',RECL=0)
 &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
 MODULE GAUSPC :     

 PRECISION                    (EPS) :   0.1000000E-05
 RETURN OPTION             (NENTRE) :      0
 INPUT D.S. NDL1 (NFNDL1 AND NINDL1):      0     0
 INPUT D.S. MUA  (NFMUAE AND NIMUAE):      0     1
 OUTPUT D.S. MUA (NFMUAS AND NIMUAS):      0     2

 ** FACTORISATION EXECUTION TIME               0.260645E+01 S **
 ** NUMBER OF UNKNOWS                                  1000          **
 ** SIZE OF ARRAY MUA5                               140960          **
 &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
 END OF MODULE GAUSPC 
 &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
 &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
 MODULE DRGAPC :     

 PROCESSING OPTION                      (NIVEAU) :      2
 PRESENCE OF BOUNDARY CONDITIONS IN L.R. (NCLRL) :      0
 INPUT D.S. NDL1            (NFNDL1 AND NINDL1) :      0     0
 INPUT D.S. MUA             (NFMUAE AND NIMUAE) :      0     2
 INPUT D.S. B                   (NFBE AND NIBE) :     15     1
 INPUT D.S. BDCL            (NFBDCL AND NIBDCL) :     13     1
 OUTPUT D.S. B                  (NFBS AND NIBS) :     16     1

 ** SOLUTION EXECUTION TIME                    0.210832E+00 SECONDES **
 &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
 END OF MODULE DRGAPC  
 &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
 &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

     PRINT OUT OF D.S. B    OF LEVEL  1

 &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
 TITLE                           :                                                                                 
 DATE AND USER'S NAME            : 06/05/93  pate                    
 DATA STRUCTURE TYPE             : B   
 LEVEL AND STATE NUMBER          :      1     1
 NUMBER OF ASSOCIATED TABLES     :      0


 TABLE  B 2
 ----------
 TYPE OF THE TABLE                           (NTYT) :      5
 NUMBER OF INDICES AND THEIR MAX VALUES    (NIND..) :      2     1  1000
 OPTION (1: PAGES OF SAME SIZE , 0: IF NOT)  (NCOD) :      1
 NUMBER OF PAGES OF THE TABLE B4            (NBLOC) :      1
 NUMBER OF NODES                              (NOE) :   1000
 NUMBER OF TABLES B4 IN THIS D.S.          (NBBLOC) :      1
 CONSTANT NUMBER OF D.O.F. AT EACH NODE OR 0   (ND) :      1
 NUMBER OF D.O.F. OR LENGHT OF A B4 PAGE     (NTDL) :   1000
 STORAGE OPTION FOR B4                     (NCODSB) :     -1

 TABLE  B 3 
 ----------
  POINTER ON THE LAST ROW OF EACH PAGE OF B4


     1           0     2        1000

 TABLE B4(NDSM,NTDL) NUMBER :      1
 -----------------------------------

  TABLE B4(NDSM,NTDL) PAGINATED IN 1 OR MORE PAGES
  ------------------------------------------------
  PAGE     1
  ----------
 ------------------------------------------------------
 | NODE   | DOF | GLOBAL DOF|  LOAD CASE(S)           |
 ------------------------------------------------------
 |      1 |   1 |        1  |    -6.83940    
 |      2 |   1 |        2  |    -6.83897    
 |      3 |   1 |        3  |    -6.85716    
 |      4 |   1 |        4  |    -6.86066    
 |      5 |   1 |        5  |    -6.77307    
 |      6 |   1 |        6  |    -6.68004    
 |      7 |   1 |        7  |    -6.58127    
 |      8 |   1 |        8  |    -6.47645    
 |      9 |   1 |        9  |    -6.48455    
 |     10 |   1 |       10  |    -6.48629    

 -- CREATE THE DATA  =-=  EXECUTE MODULE (DATA EXISTING)  =-=  END  =-=  ?
    -                     -                                    ---
f

1.3.2 Solution by Conjugate Gradient

The solution of the model problem by an iterative method is obtained be calling program DGRAXX, using the following data:

  

     1                                 $ 1 IF AMAT EXISTS 
 sd.amat                               $ FILE NAME                       
     1                                 $     AND LEVEL OF THE D.S. AMAT
     1                                 $ 1 IF BE EXISTS 
 sd.b                                  $ FILE NAME                       
     1                                 $     AND LEVEL OF THE D.S. B   
     0                                 $ 1 IF BDCL EXISTS 
 sd.amac                               $ FILE NAME                       
     2                                 $     AND LEVEL OF THE D.S. AMAC
     0                                 $ LEVEL 
   1.00000                             $ SIGMA 
     0     0                           $ 1 IF COMPRESSION RATIO
   0.1000000E-05                       $ EPS 
 sd.bs                                 $ FILE NAME                       
     2                                 $     AND LEVEL OF THE D.S. B   
     5                                 $ PRINT PARAMETER

The corresponding results are given below:

 M   M    OOO    DDDD    U   U   L       EEEEE   FFFFF
 MM MM   O   O   D   D   U   U   L       E       F
 M M M   O   O   D   D   U   U   L       EEEE    FFFF
 M   M   O   O   D   D   U   U   L       E       F
 M   M    OOO    DDDD     UUU    LLLLL   EEEEE   F      VERSION 93

 DATE   : 22/07/93
 AUTEUR : pate                    
 ************************************************************
 EXECUTING THE CONJUGATE GRADIENT 
 ************************************************************


 -- CREATE THE DATA  =-=  EXECUTE MODULE (DATA EXISTING)  =-=  END  =-=  ?
    -                     -                                    ---

e
 -- NAME OF DATA FILE ? 
dgra.data

 ++ OPEN(10,FILE='dgra.data',SPEC='OLD',RECL=0)
 -- PRINT PARAMETER FOR THE EXECUTION ? 
3
 ++ OPEN(11,FILE='nopo',SPEC='OLD,UNFORMATTED',RECL=0)
 ++ OPEN(12,FILE='tae',SPEC='OLD,UNFORMATTED',RECL=0)
 ++ OPEN(13,FILE='sd.amat',SPEC='UNFORMATTED',RECL=0)
 ++ OPEN(14,FILE='sd.amac',SPEC='UNFORMATTED',RECL=0)
 ++ OPEN(15,FILE='sd.b',SPEC='UNFORMATTED',RECL=0)
 ++ OPEN(16,FILE='sd.bs',SPEC='UNFORMATTED',RECL=0)
 &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
 MODULE CONDLU :                                                                                 
 &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
 SIGMA  =      1.00000       NIVEAU =    0
 NFAMAT =   13 NIAMAT =    1
 NFAMAC =   14 NIAMAC =    2

 NUMBER OF UNKNOWNS                         1000
 NUMBER OF NONZEROS  OF A                   3750
 INCOMPLETE FACTORISATION  AT LEVEL            0
 NUMBER OF  NONZEROS OF CA                  3750
 COMPRESSION OF THE PRECONDITIONING MATRIX
 NUMBER OF COEFFICIENTS BEFORE THE COMPRESSION   3750
 NUMBER OF COEFFICIENTS AFTER THE  COMPRESSION   3750
 ** NUMBER OF UNKNOWNS                                 1000          **
 ** LEVEL OF FACTORISATION                             3750          **
 ** SIZE OF ARRAY AMAT5                                7500          **
 ** SIZE OF ARRAY AMAT6                                7500          **
 ** SIZE OF ARRAY AMAC5                     
 &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
 MODULE DGRADA :                                                                                 
 &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
 EPS    = 0.100000E-05 NOMTA0 = //// NCLRL =    0
 NFBDCL =    0 NIBDCL =    0 NFNDL1 =    0 NINDL1 =    0
 NFAMAT =   13 NIAMAT =    1 NFBE   =   15 NIBE   =    1
 NFAMAC =   14 NIAMAC =    2 NFBS   =   16 NIBS   =    2

 INITIALISATION TO ZERO
 SYSTEM NO       1
 --------------------------------------------------------------------------------
 RKNORM=  1981.60     ITEMAX=  200
 NB OF ITERATIONS OF    1-EME SYSTEME=     30 NORME DU RESIDU 0.175462E-05
 ** SOLUTION EXECUTION TIME                    0.238242E+01 SECONDES **
 ** NUMBER OF ITERATIONS                                 30          **
 END OF MODULE DGRADA
 &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

     PRINT OUT OF D.S. B    OF LEVEL  2

 &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
 TITLE                           :                                                                                 
 DATE AND USER'S NAME            : 06/05/93  pate                    
 DATA STRUCTURE TYPE             : B   
 LEVEL AND STATE NUMBER          :      2     0
 NUMBER OF ASSOCIATED TABLES     :      0


 TABLE  B 2
 ----------
 TYPE OF THE TABLE                           (NTYT) :      5
 NUMBER OF INDICES AND THEIR MAX VALUES    (NIND..) :      2     1  1000
 OPTION (1: PAGES OF SAME SIZE , 0: IF NOT)  (NCOD) :      1
 NUMBER OF PAGES OF THE TABLE B4            (NBLOC) :      1
 NUMBER OF NODES                              (NOE) :   1000
 NUMBER OF TABLES B4 IN THIS D.S.          (NBBLOC) :      1
 CONSTANT NUMBER OF D.O.F. AT EACH NODE OR 0   (ND) :      1
 NUMBER OF D.O.F. OR LENGHT OF A B4 PAGE     (NTDL) :   1000
 STORAGE OPTION FOR B4                     (NCODSB) :     -1

 TABLE  B 3 
 ----------
  POINTER ON THE LAST ROW OF EACH PAGE OF B4


     1           0     2        1000

 TABLE B4(NDSM,NTDL) NUMBER :      1
 -----------------------------------

  TABLE B4(NDSM,NTDL) PAGINATED IN 1 OR MORE PAGES
  ------------------------------------------------
  PAGE     1
  ----------
 ------------------------------------------------------
 | NODE   | DOF | GLOBAL DOF|  LOAD CASE(S)           |
 ------------------------------------------------------
 |      1 |   1 |        1  |    -6.83940    
 |      2 |   1 |        2  |    -6.83897    
 |      3 |   1 |        3  |    -6.85716    
 |      4 |   1 |        4  |    -6.86066    
 |      5 |   1 |        5  |    -6.77307    
 |      6 |   1 |        6  |    -6.68004    
 |      7 |   1 |        7  |    -6.58126    
 |      8 |   1 |        8  |    -6.47645    
 |      9 |   1 |        9  |    -6.48454    
 |     10 |   1 |       10  |    -6.48629    

 -- CREATE THE DATA  =-=  EXECUTE MODULE (DATA EXISTING)  =-=  END  =-=  ?
    -                     -                                    ---

f
Fortran STOP


Modulefpreviousupnextcontents[BIG][Normal][small]
Next: References Up: 1 Examples Prev: 1.2 The symmetric model problem Contents