Next: References
Up: 1 Examples
Prev: 1.2 The symmetric model problem
Contents
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].
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
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