Elsevier Science Home
Computer Physics Communications Program Library
Full text online from Science Direct
Programs in Physics & Physical Chemistry
CPC Home

[Licence| Download | New Version Template] aarf_v1_0.gz(6 Kbytes)
Manuscript Title: Recurrence solution of a block tridiagonal matrix equation with Neumann, Dirichlet, mixed or periodic boundary conditions.
Authors: F. Marsh, D.E. Potter
Program title: PERDIAG
Catalogue identifier: AARF_v1_0
Distribution format: gz
Journal reference: Comput. Phys. Commun. 24(1981)185
Programming language: Fortran.
Computer: CDC 6500.
Operating system: NOS.
RAM: 18K words
Word size: 60
Keywords: General purpose, Matrix equation, Perdiagonal, Tridiagonal, Nxn blocks, Direct method, Recursive, Periodic boundary Conditions, N finite difference Equations, One space dimension, Implicit.
Classification: 4.8.

Nature of problem:
A theorist may wish to solve the matrix equation AU = W, rapidly, where A is a block tridiagonal matrix. This type of matrix equation frequently arises in the solution of problems in one space dimension; in the soluion of boundary-value and many initial-value problems (because the time-dependent problem has been formulated implicitly), where it is necessary to solve n coupled, finite difference equations. The program is capable of dealing with Neumann, Dirichlet, mixed or periodic boundary conditions. If the boundary conditions are periodic, the resulting matrix A is block tridiagonal with additional blocks in the upper right and lower left corners, referred to here as block perdiagonal.

Solution method:
A recurrence solution is used to solve the matrix equations AU=W. The method follows the principles for a recurrence solution of a tridiagonal matrix equation, modified, when appropriate, to deal with the more complex case of periodic boundary conditions.

None. The method does not assume any particular properties of the nXn submatrices, other than their being non-singular.

Running time:
The test runs took about 0.3 s. Generally, the running time would depend on the size of the blocks and the number of mesh points.