A three-dimensional symmetric linear equation solver

14
COMMUNICATIONS IN NUMERICAL METHODS IN ENGINEERING, VOl. 10, 717-730 (1994) A THREE-DIMENSIONAL SYMMETRIC LINEAR EQUATION SOLVER GEORGE A. GRAVVANIS Air-Force Academy, Dekelia A ttikis, Greece SUMMARY Factorization procedures for the efficient solution of large sparse linear finite difference systems have been introduced recently. In these procedures the large sparse symmetric coefficient matrix of a certain structure is factorized exactly, yielding a direct solution method. Furthermore, approximate factorization procedures yield implicit preconditioning iterative methods for the finite difference solution. The numerical implementation of these algorithms is presented and Fortran subroutines for the efficient solution of the resulting sparse symmetric linear system of algebraic equations are given. 1. INTRODUCTION Let us consider a class of problems defined by the self-adjoint elliptic P.D.E.: =f(x,y,z), (x,y,z) EQ C R3 (1) where clI ~2~ c3 are strictly positive functions, p(x, y, z) 2 0, R is a closed bounded three- dimensional region, aQ denotes the exterior closed boundary of fl, a7 is the direction of the outward normal derivative and cr(x,y,z) > 0, P(x,y,z) > 0. By considering the finite difference (FD) discretization method and in particular the seven- point molecule, we have to solve a system of linear FD equations of the form where u and s are n-column vectors which consist, respectively, of the FD solution and the source terms of the given PDE plus the known boundary values. The coefficient matrix A is a large sparse, symmetric, diagonally dominant, positive-definite matrix of a certain structure, ccc 0748-8025/94/090717-14 0 1994 by John Wiley & Sons, Ltd. Received I July 1993 Revised 8 February 1994

Transcript of A three-dimensional symmetric linear equation solver

COMMUNICATIONS IN NUMERICAL METHODS IN ENGINEERING, VOl. 10, 717-730 (1994)

A THREE-DIMENSIONAL SYMMETRIC LINEAR EQUATION SOLVER

GEORGE A. GRAVVANIS Air-Force Academy, Dekelia A ttikis, Greece

SUMMARY Factorization procedures for the efficient solution of large sparse linear finite difference systems have been introduced recently. In these procedures the large sparse symmetric coefficient matrix of a certain structure is factorized exactly, yielding a direct solution method. Furthermore, approximate factorization procedures yield implicit preconditioning iterative methods for the finite difference solution. The numerical implementation of these algorithms is presented and Fortran subroutines for the efficient solution of the resulting sparse symmetric linear system of algebraic equations are given.

1. INTRODUCTION

Let us consider a class of problems defined by the self-adjoint elliptic P.D.E.:

= f ( x , y , z ) , ( x , y , z ) E Q C R 3 (1)

where clI ~2~ c3 are strictly positive functions, p ( x , y , z) 2 0, R is a closed bounded three- dimensional region, aQ denotes the exterior closed boundary of fl, a7 is the direction of the outward normal derivative and cr(x ,y , z ) > 0, P ( x , y , z ) > 0 .

By considering the finite difference (FD) discretization method and in particular the seven- point molecule, we have to solve a system of linear FD equations of the form

where u and s are n-column vectors which consist, respectively, of the FD solution and the source terms of the given PDE plus the known boundary values. The coefficient matrix A is a large sparse, symmetric, diagonally dominant, positive-definite matrix of a certain structure,

ccc 0748-8025/94/090717-14 0 1994 by John Wiley & Sons, Ltd.

Received I July 1993 Revised 8 February 1994

718 G. A . GRAVVANIS

which generally can be written in the following partitioned form:

\ bp- 1

symmetric

Ti 0

= [W] iz A22 (3)

2. IMPLEMENTATION OF THE ALGORITHM

We now consider the approximate ‘root-free’ Choleski factorization of A, i.e.

where E is an error correction matrix, Drl,rz is a positive diagonal matrix, and L,,,, is a real sparse strictly lower-triangular (with unit diagonal elements) matrix of the following partitioned form, respectively

D,,,,=diag(dl,dz ,..., dP-l idp,...,dnl E (Di1,Dzz) ( 5 ) and

(6) while LE,,, denotes the transpose of Lr,,rl. Note that the coefficient matrix structure requires the diagonal, co-diagonal and the diagonals at semibandwidths rn and p respectively. H E (hi , j ) , i E [l,rlI, j € [ l , n - m + 11 and T = (ti,j), i E [l,rz], j c [ l , n - p + 11 arestoredas rl and r2 vector spaces, respectiveIy.

Note that, if rl = m - 1 and rz = p - 1 , outermost off-diagonal terms have been retained in Lrl,rz at semibandwidths m and p, respectively, then L,,,, = L (the extended to the limit case),

A THREE-DIMENSIONAL SYMMETRIC LINEAR EQUATION SOLVER 719

where L is a strictly lower-triangular matrix retaining (m - 1) and ( p - 1) outermost off- diagonal entries in semibandwidths m and p, respectively, and Dr,,, E D, where D is a diagonal matrix. The coefficient matrix is then factorized exactly, i.e.

A = LDLT (7)

yielding a direct algorithmic procedure for the FD solution. In this case the submatrices of L are stored as H = ( h i , j ) , i c [ l , m - l ] , jE [ l , p - m ] , and T = (ti,j), i € [ l ,p-11, j E [ l , n -p + 11. Since the latter factorization can be obtained from its approximate counterpart (4) when rl -+ m - 1 and r2 -, p - 1, the sparse approximate factorization procedure is to be considered as the general case.

Since the implementation of this algorithm depends on the nature of the problem under consideration and the computational environment in which the problem is to be solved, the choice of which fill-in terms to omit can be made either by their magnitude (RP) or their position in the matrix (r l , r2). The former approach can be implemented by considering criteria for dropping fill-in terms by neglecting each one of them which is less than a predetermined value of the rejection parameter RP, while in the latter only rl and r2 outermost off-diagonal entries are retained at semibandwidths m and p, respectively, in the matrix Lr,,r2 (6).

Note that, if Ti = 0, i E 11, n - p + 11, (see equation (3)), the ARFC3D algorithm reduces to the ARFC algorithm which is encountered usually in solving two-dimensional boundary value problems by FD methods. Furthermore, if Ti = 0, i E [ l , n -p + 11, and Wi = 0, ic [ l , n - m + 13, (see equation (3)), the ARFC-3D algorithm reduces to the common tridiagonal system solver, which is usually encountered in solving two-point boundary value problems.

The variants of the ARFC-3D algorithm have been coded as three Fortran routines performing the factorization and the solution process, respectively.

The factorization routine,

SUBROUTINE ARFC3D(N, P, M, R1, R2, MP, NP1, RP, B, C, U, R, H, T) INTEGER P, R1, R2

takes as input the order N , the semibandwidths P and M, the fill-in parameters R1 and R2 at semibandwidth M and P, respectively, variable MP which is the upper bound of the second dimension of the array H, variable NPl which is the second dimension of array T, rejection parameter RP, diagonal B, codiagonal C, codiagonal U containing the mth lower codiagonal elements, codiagonal R containing the pth lower codiagonal elements and returns the diagonal elements B, codiagonal elements C, and the submatrices H = (h j , j ) , iE [ l , rl], j c [ l , n - m + l ] a n d T = ( t i , j ) , i € [ l , r 2 ] , j € [ l , n - p + l ] ofmatrixL,,,,. Notethatinthe case of a direct decomposition (i.e. rl = m - 1, r2 = p - 1) then the dimensions of the submatrices H and T are as follows: H = (hj , j ) , ic [ l ,m - 11, j E [ l ,p-m], and T = ( t j , j ) ,

i c [ l , p - 11, j c [ l , n - p + 11. An important feature of this algorithmic procedure is the provision of both direct and

preconditioned iterative methods (in conjunction with conjugate gradient schemes) for solving large sparse symmetric FD systems with the additional facility, i.e. the choice of the fill-in parameters, by which the best method for a given problem can be seiected.

SUBROUTINE FBSUB3D(N, P, M, R1, R2, MP, NP1, B, C, H, T, S) INTEGER P, R1, R2

The forward-backward routine, specifically,

solves the linear system Lx,,u = y and Lr,,rzDr,,rzY = s by a forward-backward substitution

720 G. A. GRAVVANIS

process. The input parameters are the order N, semibandwidths P and M , the fill-in parameters R1 and R2 at semibandwidths M and P , respectively, variable MP which is the upper bound of the second dimension of the array H, variable NP1 which is the second dimension of array T, diagonal B, codiagonal C, the submatrices H = (hi,j), i E [ l , r l ] , j € [ l , n - m + 11 and T = (ti,j), i E [ l , r ~ ] , j c [ l , n - p + 11 of matrix L,,,, and the right-hand-side vector S. In the case of iterative methods, namely the Implicit Preconditioned Conjugate Gradient (IPCG) method,

SUBROUTINE IPCG(N, P, M, R1, R2, MP, NPl , KM, EPS, B, C, H, T, S , Y) INTEGER P, R1, R2

takes as input the order N, the semibandwidths P and M , the fill-in parameters R1 and R2 at semibandwidths M and P, respectively, variable MP which is the upper bound of the second dimension of the array H, variable NPl which is the second dimension of array T, maximum number of iterations allowed for convergence, error tolerance EPS, diagonal B, codiagonal C, the submatrices H and T of matrix L,,,,, the right-hand-side vector S, and initial guess of the solution vector Y.

To verify the algorithm we consider the solution of the linear system (2) with the symmetric coefficient matrix A defined by (3), where

b i = 6 * 0 , i = l , ..., n; c . - I - -1*O, i= l , . . . , n - 1

W i = - l . O , i = l , ..., n - m + l ; T i = - l . O , i = l , ..., n - p + l

The r.h.s. vector was chosen as the product of the coefficient matrix A by the solution vector of which the components were taken to be equal to unity. Numerical results for various values of the order, semibandwidths, fill-in parameters have been presented in Reference 2.

Finally, note that the ARFC-3D algorithm can be used as a ‘front-end’ computational procedure for the explicit computation of the exact inverse and pseudoinverses, without inverting the decomposition factors L and D.

REFERENCES 1 . D. J. Evans and E. A. Lipitakis, ‘The numerical solution of self-adjoint BV problems by implicit semi-

direct methods based on root-free sparse factorization procedures’, BIT, 23, 194-208 (1983). 2. G . A. Gravvanis and E. A. Lipitakis, ‘The numerical solution of three-dimensional elliptic boundary-

value problems by direct and approximate decomposition techniques’, Proceedings of the Eight International Conference on Numerical Methods in Thermal Problems, 1 1 -16, July 1993, Swansea, U.K., to be published.

3. E. A. Lipitakis, ‘Approximate root-free factorization techniques for solving elliptic difference equations in three space variables’, Linear Algebr. Appl., 76, 247-269 (1986).

4. L. H. Thomas, ‘Elliptic problems in linear difference equations over a network’, Watson Sc. Comp. Lab. Rep., Columbia Univ., 1949.

5. R. S. Varga, Matrix Iterative Analysis, Prentice-Hall, 1962.

A THREE-DIMENSIONAL SYMMETRIC LINEAR EQUATION SOLVER 72 1

C C C C C C C C C C C C C

C C C C C C C C C C C C C C C C

THE ARFC-3D ALGORITHM -- - - - - -- - - -- - - - - - - _ _ _ _ _ - _ _ _ _ - - - - - - _ - T H I S ALGORITHM CALCULATES THE SOLUTION OF LARGE,SPARSE,SYMMETRIC L INEAR SYSTEMS DERIVED FROM THE F I N I T E DIFFERENCE DISCRETIZATION OF PARABOLIC AND E L L I P T I C P.D.E'S FOR PARALLELEPIPED DOMAINS I N THREE SPACE VARIABLES. AN IMPORTANT FEATURE OF T H I S ALGORITHM I S THE PROVISION OF BOTH DIRECT AND ITERATIVE METHODS FOR SOLVING LARGE,SPARSE, SYMMETRIC F I N I T E DIFFERENCE SYSTEMS WITH THE ADDITIONAL FACIL ITY , I .E . THE

GIVEN PROBLEM CAN BE SELECTED. CHOICE OF THE F I L L - I N PARAMETERS, BY WHICH THE BEST METHOD FOR A

SUBROUTINE ARFC3D(N,P,M,RlI RL,MP,NPI ,RP,B,C,U,R,H,T)

T H I S SUBROUTINE PERFORMS A LDLT FACTORIZATION OF A SQUARE MATRIX OF ORDER N. THE COEFFICIENT MATRIX I S SYMMETRIC, DIAGONALLY DOMINANT,SEVEN-DIAGONAL OF SEMIBANDWIOTHS MVP(3.LT.M.LT.P.LT.N/2) AN0 I S FACTORIZED INTO L, D WHERE D I S A DIAGONAL MATRIX AND L (WITH U N I T DIAGONAL ELEMENTS) I S STRICTLY LOWER TRIANGULAR MATRIX WITH NONZERO ELEMENTS I N SUB DIAGONAL,RETAINING R I AND R2 (R2=1, . . ., P - 1 ) OUTERMOST OFF-DIAGONAL ENTRIES I N SEMI-

I F THE F I L L - I N PARAMETERS R 1 AND R2 ARE SET TO BE EQUAL TO (M-1 ) AND ( P - 1 ) RESPECTIVELY THEN THE COEFFICIENT MATRIX A IS EXACTLY

(R111, ..., M - 1 )

BADWIDTHS M AND P RESPECTIVELY.

FACTORIZED INTO LDLT LEADING TO A DIRECT METHOD OF SOLUTION. I F T H I S IS NOT THE CASE AN APPROXIMATE FACTORIZATION OF A CAN BE OBTAINED LEADING TO AN APPROXIMATE SOLUTION OF THE F I N I T E DIFFERENCE LINEAR SYSTEM.

C INPUT PARAMETERS : C C N C M INTEGER,THE FIRST SEMI-BANDWIDTH OF MATRIX A. C P INTEGER,THE SECOND SEMI-BANDWIDTH OF MATRIX A. C R1 INTEGER,THE F I L L - I N PARAMETER I N SEMI-BANDWIDTH M. C R2 INTEGER,THE F I L L - I N PARAMETER I N SEMI-BANDWIDTH P .

INTEGER,THE ORDER OF THE COEFFICIENT MATRIX A.

C MP C H AS DECLARED I N THE CALLING (SUB)PROGRAM.

C NP1 INTEGER, THE SECOND DIMENSION OF ARRAYS T AS DECLARED

C RP REAL, THE REJECTION PARAMETER. C B A REAL ARRAY OF LENGTH N CONTAINING THE DIAGONAL ELEMENTS OF A. C C A REAL ARRAY OF LENGTH N CONTAINING THE LOWER CODIAGONAL C ELEMENTS OF A. C U A REAL ARRAY OF LENGTH N CONTAINING THE UPPER M-TH DIAGONAL C ELEMENTS OF A. C R A REAL ARRAY OF LENGTH N CONTAINING THE UPPER P-TH DIAGONAL C ELEMENTS OF A. C ****NOTE THAT THE ELEMENTS OF EACH DIAGONAL ARE STORED I N THE C POSITIONS CORRESPONDING TO THEIR ROW NUMBERS ( I .E . THE LOWER C CO-DIAGONAL ELEMENTS MUST BE STORED I N I T I A L L Y I N C ( l ) , . . . , C ( N - I ) C WHILE THE LOWER M-TH DIAGONAL AN0 P-TH OIAGONAL ELEMENTS MUST C C C OUTPUT PARAMETERS : C C B A REAL ARRAY OF LENGTH N CONTAINING THE DIAGONAL ELEMENTS C OF THE FACTORIZATION.

INTEGER,AN UPPER BOUND OF THE SECOND DIMENSION OF ARRAY

C

C

I F (R2.LT.P-M+I ) THEN SET MP=N-Mt1,OTHERWISE SET MP=P-M.

I N THE CALLING (SUB)PROGRAM ( N P I = N - P t l ) .

BE STORE0 I N U ( 1 ) ,..., U(MP) AN0 R ( l ) ,..., R(NP1) RESPECTIVELY.

722 G. A . GRAVVANIS

C C A REAL ARRAY OF LENGTH N CONTAINING THE LOWER CODIAGONAL C ELEMENTS OF THE LOWER TRIANGULAR MATRIX OF THE FACTORIZATION. C H C T

AN (R1,MP) REAL ARRAY, SUBMATRIX OF LOWER TRIANG. MATRIX. AN (R2,NPl) REAL ARRAY, SUBMATRIX OF LOWER TRIANG. MATRIX. INTEGER N,M,P,Rl,R2,MP,MPl,NPl REAL B(N),C(N),U(N) ,R(N) REAL H( R1 ,MP) ,T( R2, NPl) REAL RP

C INITIALIZATION MI=M- 1 M2=M1- 1 IPl=P-1 I P2= I P1- 1 MRl=RI-l MR2=R2- 1 IRl=R1+1 IR2=R2+1 MP 1 =P-M+ 1

C FACTORIZATION OF THE MATRIX A. C COMPUTATION OF THE ELEMENTS OF L11.

C( 1 )=C( 1 ) /B( 1) DO 10 I=2,M2

B(I)=B(I)-B(1-l)*C(I-l)*C(I-1) C( I)=C( 1 ) /B( 1)

10 CONTINUE B ( M1) =B( M1) -B ( M2) *C (M2) *C (M2) DO 150 J=l,N-Mtl

IF ((R2.GE.MPl).AND.(J.GE.MPI)) GOT0 60 JRI=IRl -J JM1 =M1 tJ JM2=M2tJ H( 1, J)=U(J)/B(J) C( JM2)=C( JM2)/8( JM2) IF (Rl.NE.11 THEN

20

IF (J.LE.MR~) THEN DO 20 I=2,JR1

IJl=ItJ-I I J2=I J1- 1 H(I,J)=-B(IJ2)*C(IJ2)*H(I-1,J)/B(IJ1)

CONTINUE ENDIF IF (J.NE.1) THEN

I P=2

IP=JRltl

IF (J.GT.Rl) THEN

ELSE

ENDIF DO 40 I=IP,Rl

Il=I-I IJM=ItJ-IR1 IJI=ItJ-l I J2-I J1- 1 z=o. 0 DO 30 K=l,Il

KIM=K-ItIRl Z=ZtB( KtJ- 1) *H (KIM, I JM)*H( K, J)

30 CONTINUE

40 CONTINUE H( I ,J)=( -B( IJ2)*C( IJ2)*H( 1-1 ,J)-Z)/B( IJl)

END IF ENDIF

CUST. REF: CNM809 OUR REF: CNMS129 PAGE: 6

A THREE-DIMENSIONAL SYMMETRIC LINEAR EQUATION SOLVER

C COMPUTATION OF THE DIAGONAL ELEMENTS D( l), . . . ,O( P-1) . I=Rl IF ((RZ.LT.MP1) .ANO.(J.GE.MPI)) GOTO 60 IJl=I+J- 1 z=o. 0 DO 50 K=l,I

Z=ZtB( K+J- 1 )*H( K, J) *H( K, J) 50 CONTINUE

Zl=O.O IF (R1.EQ.M-I) THEN

Zl=B(JM2)*(C(IJl)*H(I,J)tC(IJl)*H( 1,J)) END I F

IF ((R2.GE.MPl).AND.(J.LT.MPl)) GOTO 150 B (JMl)=B( JM1) -B ( JM2) *C (JM2)*C (JM2) -Z-Z1

C COMPUTATION OF THE ELEMENTS OF SUBMATRIX L21. 60 IF (J.GE.MP1) THEN

L=J- P+M JP-P-Lt1 JPl=PtL-1 JP2=JP1- 1 JPM=Lt P-M JRI=IRl-L T(1. L)=R(L)/B(L) IF (RL.GE.MP1) THEN

ENOIF IF (RZ.NE.l) THEN

C( JP2)=C (JPZ)/B(JP2)

IF (L.LE.MR1) THEN DO 70 I=2,JR1

Il=I-1 IJl=ItL-1 IJZ=IJl- 1 T(I,L)=-B(IJ2)*C(IJ2)*T(I-l,L)/B(IJl) IF (L. EQ. 1 .AND. I. EQ.MP1) THEN T(I,L)=T(I,L)+V(IJl)/B(IJl)

END I F 70 CONTINUE

IF (Rl.GT.R2) GOTO 120 ENDIF IF (L.GT.Rl) THEN

ELSE

END IF DO 110 I=IP,RP

Il=I-I IJl=I+L- 1 I J2=I J1- 1 IJM=ItL-IRl IJP=I+L-IRZ

z=o. 0 Zl=O.O IF (I.GE.IR1) THEN 00 80 K=l,Rl

IP=Z

IP=JRltl

IF (I.LT.JP.ANO.L.LE.IP2) THEN

KIM=KtI - IR1 Z=ZtE( IJM-ltK)*H(K, IJM)*T(KIM, L)

80 CONTINUE ELSE

DO 90 K-1,II KIM=K-I+IRl Z=ZtB(K+L-l)*H(KIM,IJM)*T(K,L)

723

124 G. A . GRAVVANIS

90 CONTINUE END IF

IF (I.NE.MP1) GOTO 110 T(I,L)=T(IIL)tU(IJ1)/B(IJ1)

z=o . 0 Zl=O.O DO 100 K=l,Il

T( I,L)=(-B( IJ2)*C( IJ2)*T( I-1,L)-Z)/B( IJ1)

C COMPUTATION OF THE ELEMENTS OF SUBMATRIX L22. ELSE

KIP=K-ItIR2 Z=ZtB(KtL- 1 )*T( KIP, I JP)*T(K, 1)

100 CONTINUE T( I , L )= ( -B( IJ2)*C( IJ2)*T( I-1,L)-Z)/B( IJ1) IF (I.NE.MP1) GOTO 110 T( I, L)=T( I, L)tU( IJl)/B( IJ1)

ENDIF

120

130

140

110 CONTINUE END I F

I=R2 C COMPUTATION OF THE DIAGONAL ELEMENTS D(P), ..., D(N).

z=o. 0 Zl=O.O IJl=ItL- 1 DO 130 K=I,I

CONTINUE IF (R2.LT.MPl) THEN

DO 140 K=l,Rl

CONTINUE

Z=ZtB ( KtL- 1 ) *T( K, 1) *T( K, L)

Zl=Zl+B(KtJ-l)*H(K,JPM)*H(K,JPM)

END IF z2=0.0 IF (R2.EQ:P-1) THEN

Z2=B(JP2)*(C(IJ1)*T(IlL)tC( IJl)*T(I,L)) ENDIF B( JPl)=B( JP1) -B( JP2)*C( JPZ)*C( JP2) -Z-Zl-Z2

END IF 150 CONTINUE

DO 170 I=l,Rl DO 160 J=l,MP

IF (ABS( H ( I, J) ) . LT. RP) H ( I, J)=O. 0 160 CONTINUE 170 CONTINUE

DO 190 I=l,R2 DO 180 J=l,NPl

IF (ABS (T( I, J)) . LT. RP) T( I, J)=O. 0 180 CONTINUE 190 CONTINUE

RETURN

A THREE-DIMENSIONAL SYMMETRIC LINEAR EQUATION SOLVER 125

C TRIANGULAR MATRIX O F SEMIBANDWIDTH M AND P (3.LT.M.LT.P.LT.N/2) C D IS A DIAGONAL MATRIX AND LT DENOTES THE TRANSPOSE OF L . THE C SUB DIAGONAL ELEMENTS OF L ARE NONZEROES, WHILE R1 AND R2 C OUTERMOST OFF-DIAGONAL ENTRIES ARE RETAINED I N SEMIBANDWIDTHS M C AND P. THE SOLUTION IS EFFECTED BY A FORWARD BACK-SUBSTITUTION C PROCCESS, WHERE THE INPUT VECTOR IS OVERWRITTEN SUCCESSIVELY BY C THE INTERMEDIATE SOLUTION (OBTAINED BY FORWARD SUBSTITUTION) C AND THE F I N A L SOLUTION (OBTAINED BY BACK SUBSTITUTION). C C INPUT PARAMETERS :

C N INTEGER, THE ORDER O F THE COEFFICIENT MATRIX A. C M INTEGER, THE F IRST SEMI-BANDWIDTH OF MATRIX A. C P INTEGER, THE SECOND SEMI-BANDWIDTH OF MATRIX A. C R 1 INTEGER, THE F I L L - I N PARAMETER I N SEMI-BANDWIDTH M. C R2 INTEGER, THE F I L L - I N PARAMETER I N SEMI-BANDWIDTH P. C MP C

C NP1 INTEGER, THE SECOND DIMENSION OF THE ARRAY F I N THE

C B A REAL ARRAY OF LENGTH N CONTAINING THE DIAGONAL ELEMENTS C OF THE DIAGONAL MATRIX OF THE FACTORIZATION. C C A REAL ARRAY O F LENGTH N CONTAINING THE LOWER CODIAGONAL

C H AN (R1,MP) REAL ARRAY, SUBMATRIX OF LOWER TRIANGULAR MATRIX. C T AN (R2 ,NP l ) REAL ARRAY, SUBMATRIX OF LOWER TRIANGULAR MATRIX. C S A REAL ARRAY OF LENGTH N CONTAINING THE R.H.S. VECTOR. C C OUTPUT PARAMETERS :

INTEGER, AN UPPER BOUND OF THE SECOND DIMENSION OF ARRAY E AS DECLARED I N THE CALLING (SUB)PROGRAM.

C

C CALLING (SUB)PROGRAM ( N P I S N - P t l )

I F (R2.LT.P-M+1) THEN SET MPPN-Mtl , OTHERWISE SET MP=P-M.

c ELEMENTS OF T~IE LOWER TRIANGULAR MATRIX OF THE FACTORIZATION.

C S AN ARRAY OF LENGTH N CONTAINING THE SOLUTION VECTOR. INTEGER P, R1, R2 REAL C(N) ,B(N) ,S(N) REAL H(R l ,MP) ,T (RP,NP l )

C I N I T I A L I Z A T I O N Ml=M- 1 I P = P - I NM=N-M NP=N-P

C FORWARD SUBSTITUTION S ( 1 )=S(1)/B(1) 00 10 I = Z , M I

S(I)~(S(I)~C(I-l)*B(I-l)*S(I-l))/B(I) 10 CONTINUE

DO 30 I = M , I P z=o.o IMR=I -M+RI I M I = I - M t I DO 20 K= IMI , IMR

K IM=K- I +M Z = Z t B ( K)*H( KIM, I M 1 ) *S (K)

2 0 CONTINUE

00 60 I -P ,N 2-0.0 I M R Z I - M t R I I P R = I - P t R P I M I = I - M t I I P I = I - P t 1 I F (1Ml.LE.MP) THEN

726 G. A. GRAVVANIS

40

50

60 C C

70

80

90

100

00 40 K=IMl,IMR KIM=K-ItM Z=Z+B(K)*H( KIM, IMl)*S( K)

CONTINUE ENDIF z1-0.0 DO 50 K-IP1,IPR

KIP=K-ItP ZI=ZI+B(K)*T(KIP,IPl)tS(K)

CONTINUE S( I)=(S(I)-C(1-l)*B(I-l)*S(I-1)-Z-Zl)/B(I)

CONTINUE BACK SUBSTITUTION. CASE : M.LT.P.LT.N/E DO ao I I = ~ , M ~

I=N- I I IN=Itl z=o .o Zl=O.O DO 70 J=IN,N

IJMCI-JtM JM 1 = J -M+1 I JP=I - J+P JPl=J-Ptl IF (JM1. LE .MP.AND. IJM. LE.Rl1 THEN

Z=ZtH( IJM, JM1) * S (J)

IF (1JP.LE.RZ) THEN

ENDIF

ELSE

Zl=ZltT(IJP,JPl)*S(J)

ENDIF CONTINUE S(I)=S(I)-C(I)*S(I+1)-Z-Z1

CONTINUE 00 110 II=M,IP

I=N- I I IN=I+l IMI=ItM-I z=o. 0 DO 90 J=IN,IMl

I JM=I - J+M JM1 =J-MtI IF (JMI . LE.MP. AND. I JM. LE. R1) THEN ENDIF

CONTINUE Zl=O.O 00 100 J=IN,N

Z=ZtH( IJM,JMl)*S(J)

I JP=I - J+P JPl=J-Ptl IF (1JP.LE.RZ) THEN

ENDIF CONTINUE

Zl=ZltT( IJP, JPl)*S(J)

s(r)=s(r)-c(r)*s(r+l)-z-zl 110 CONTINUE

DO 140 II*P,NP I=N- I I IN=I+l IMl=ItM-l IPI=I+P-1 z=o .o

A THREE-DIMENSIONAL SYMMETRIC LINEAR EQUATION SOLVER 727

DO 120 J=IN,IMl I JM= I - JtM JM1 =J -Mt 1 IF (JM1. LE .MP .AND. I JM. LE. Rl) THEN

ENDIF 120 CONTINUE

Z=ZtH( IJM,JMl)*S(J)

z130.0 DO 130 J=IN,IPI

IJP=I -JtP JP 1=J - Pt 1 IF (1JP.LE.RP) THEN

ENDIF Z1 =Z1 tT( I JP, JP1 ) *S (J)

130 CONTINUE

140 CONTINUE S( I)=S( I)-C( I)*S( Itl) -z-z1

DO 170 II=NPl,NM I=N- I I IN=ItI IMl=ItM- 1 IPl=ItP- 1 z=o .o DO 150 J=IN,IMl

IJM=I -JtM JM1= J -Mt 1 I F (JMl.LE.MP.AND.1JM.LE.RI) THEN

END I F Z=ZtH( I JM, JM1 ) *S (J)

150 CONTINUE Zl=O.O DO 160 J=P,IPl

IJPZI-JtP JPI=J- PtI I F (IJP.LE.R2) THEN

END I F Zl=ZItT(IJP,JPl)'S(J)

160 CCNTINUE

170 CONTINUE s(I)=s(I)-c(I)*s(It1)-z-z1

DO 200 II=l,Ml I=M- I I IMl=ItM-1 IPl=ItP-I z=o.o DO 180 J=M,IMl

IJM=I-JtM JM1= J -M+1 I F (JMI .LE.MP.AND. 1JM.LE.RI) THEN

END1 F 180 CONTINUE

Z=Z+H( IJM, JMl)*S( J)

Zl=O.O DO 190 J=P,IPI

I JP=I - J+P JP 1=J - P+1 IF (IJP.LE.R2) THEN

ENDIF . Zl=ZltT( IJP,JPl)*S(J)

190 CONTINUE S( I)=S( I)-C( I)*S( Itl)-Z-ZI

728 G. A . GRAVVANIS

2 0 0 CONTINUE RETURN END

......................................................................

APPENDIX 111. THE IPCG METHOD

........................................................................... c T H I S ROUTINE IMPLEMENTS THE I M P L I C I T PRECONDITIONED CONJUGATE c GRADIENT ( IPCG) METHOD FOR THE ITERATIVE SOLUTION OF A SYMMETRIC c SEVEN DIAGONAL MATRIX OF CERTAIN STRUCTURE RESULTING FROM THE C F I N I T E DIFFERENCE DISCRETIZATION OF A SELF - ADJOINT PARTIAL C DIFFERENTIAL EQUATION I N THREE-SPACE VARIABLES. C

C C INPUT PARAMETERS : C C N INTEGER, THE ORDER OF THE COEFFICIENT MATRIX A. C M INTEGER, THE FIRST SEMI-BANDWIDTH OF MATRIX A. C P INTEGER, THE SECOND SEMI-BANDWIDTH OF MATRIX A. C R1 INTEGER, THE F I L L - I N PARAMETER I N SEMI-BANDWIDTH M. C R2 INTEGER, THE F I L L - I N PARAMETER I N SEMI-BANDWIDTH P.

SUBROUTINE IPCG(N,P,M,Rl,RZ,MP,NPl,KM,EPS,B,C,H,T,S,Y)

C MP C ARRAY E AS DECLARED I N THE CALLING (SUB)PROGRAM.

C N P l INTEGER, THE SECOND DIMENSION OF THE ARRAY F I N THE

INTEGER, AN UPPER BOUND OF THE SECOND DIMENSION OF

C I F ( R 2 . L T . P - M t l ) THEN SET MP=N-M+l, OTHERWISE SET MP-P-M.

C C KM INTEGER, MAXIMUM NUMBER OF ITERATION FOR CONVERGENCE. C EPS REAL. ERROR TOLERANCE.

CALL I NG' (SUB) PROGRAM (NP1 =N- P t 1 )

c B A REAL ARRAY OF LENGTH N CONTAINING THE DIAGONAL ELEMENTS C OF THE DIAGONAL MATRIX OF THE FACTORIZATION. C C A REAL ARRAY OF LENGTH N CONTAINING THE LOWER CODIAGONAL C ELEMENTS OF THE LOWER TRIANGULAR MATRIX OF THE FACTORIZATION. C H AN (R1,MP) REAL ARRAY, SUBMATRIX OF LOWER TRIANGULAR MATRIX. C T AN (R2 ,NP l ) REAL ARRAY, SUBMATRIX OF LOWER TRIANGULAR MATRIX. C S A REAL ARRAY OF LENGTH N CONTAINING THE R.H.S. VECTOR. C Y A REAL ARRAY OF LENGTH N CONTAINING THE I N I T I A L GUESS OF THE C SOLUTION VECTOR. c L

C OUTPUT PARAMETERS : C C Y AN ARRAY OF LENGTH N CONTAINING THE SOLUTION VECTOR.

C NOTE : T H I S SUBROUTINE CALLS THE AUXILLIARY SUBROUTINES C RESID(RES1DUAL) AND FBSUB3D(FORWARD-BACKWARD SUBSTITUTION)

INTEGER P,Rl,RZ,OUT REAL S I ( 3 4 3 ) ,R1(343) ,VS(343) REAL B(N),C(N),S(N),Y(N) REAL H(R1,MP) ,T(RP,NPI)

PARAMETER (OUT'=6) K=O IX=O CALL RESID (N,M,P,Y,S,IX) DO 10 I = l , N

C SET UP OUTPUT U N I T NUMBER

10 R I ( I ) = S ( I ) C R I - - - - HOLDS - - - RO C PERFORM A FORWARD-BACKWARD SUBSTITUTION

C S---HOLDS- - - -R*O CALL FBSUB3D(N, P,M,R1 ,RZ,MP,NPl ,B,C,H,T,S)

DO 2 0 I = I , N SI( I ) = S ( I )

A THREE-DIMENSIONAL SYMMETRIC LINEAR EQUATION SOLVER 729

C - - - 30

C

40 C C

50 C

60 C C

70

80 C C

C C

90

100 C

110 C

120 C

- - _ - _ _ - _ _ - _ - _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ CALL RES ID( N ,M, P, SI , VS , I X )

IQ=O ANUM=O DENOM=O DO 40 I=I,N ANUM=ANUM+RI( I )*S( I) DENOM=DENOM+SI( I)*VS( I) IF (DENOM.LE.0) GOTO 190 CALCULATION OF A1 A1 =ANUM/DENOM

VS---HOLDS---A*SI

WRITE (OUT, 50) A1 FORMAT( 5X, 'SCALAR A1 = ' , E20.1 I / ) CALCULATION OF Y, RI DO 60 I=l,N Y(I)=Y(I)+AI*SI(I) RI(I)=RI(I)-Al*VS(I) Rl---HOLDS---RI I+1) TEST THE CONVERGENCE WITH THE RECURSIVE RESIDUAL DO 70 I=l,N I F (ABS(RI(I)).LT.EPS) IQ=IQ+l CONTINUE K=K+1 IF (1Q.EQ.N) GOTO 130 IF (K.GE.KM) GOTO 170 DO 80 1=1,N VS( I)=RI( I ) VS--HOLDS--R( It]) PERFORM A FORWARD-BACKWARD SUBSTITUTION CALL FBSUB3D(N,P,M,Rl ,RZ,MP,NPI ,B,C,H,T, RI) RI - - -HOLDS- --R*( I+1) CALCULATION OF BI ANUMl=O DO 90 I=l,N ANUMl=ANUMl+VS( I)*RI( I ) BI=ANUMI/ANUM '

WRITE(OUT,100) BI FORMAT(5X,'SCALAR BI = ',E20.11//) CALCULATION OF THE DIRECTIONAL VECTOR DO 110 I=l,N SI(I)=RI(I)+BI*SI(I) SI--HDLDS--S(I+l), RI--HOLDS--R*( I + ] ) DO 120 I=I,N S ( I)=RI( I) RI (l)=VS( I)

GOTO 30 S--HOLDS--R*( I+]) , RI--HOLDS---R( It])

130 WRITE (OUT.140) K 140 FORMAT (lH,5X,'NUMBER OF ITERATIONS =', I5/)

C PRINT OUT THE APPROXIMATE (COMPUTED) SOLUTION WRITE (OUT,l5O)

WRITE (OUT,160) ( Y ( I ) , I=I,N) 150 FORMAT (lH,SX,'FlNAL SOLUTION Y(I)='//)

730 G. A. GRAVVANIS

160 ‘FORMAT( l H , 3 ( E20.11) ,2X) RETURN

170 WRITE (OUT,180) KM 180 FORMAT (lH,5X,’NO CONVERGENCE AFTER ‘,15,’ITERATION‘//)

RETURN 190 WRITE(OUT,ZOO) 200 FORMAT( 1H,5X, ’MATRIX IS NOT POSITIVE DEFINITE’//)

RETURN END

c--__-----------====--_---_- -_-_--___--___- --------==-_--__- -----__==_____ _-___5______-____-__ ____---_-____-======----- -----