Anda di halaman 1dari 17

The Fourier and Cyclic Reduction

Methods for Solving Poisson’s Equation

by

Paul N. Swarztrauber* and Roland A. Sweet†

In: Handbook of Fluid Dynamics and Fluid Machinery, J. A. Schetz and A. E. Fuhs,
eds., John Wiley & Sons, New York, NY, 1996.

ABSTRACT

Computational fluid models often require the solution of Poisson’s equation ∆u = f in


models based on a stream function, velocity potential, vorticity, or the pressure of an
incompressible fluid. In time-dependent models, Poisson’s equation is solved at each
time step and contributes substantially to the overall computing time. Prior to the
advent of Fourier and cyclic reduction methods, the solution of Poisson’s equation
could take 70-80% of the total computer time. However, using these methods, the solu-
tion of Poisson’s equation takes about 10% of the computing time. In addition, the
solution is accurate to roundoff error and a convergence test is not required. Solutions
can be obtained for several boundary conditions including the specification of the solu-
tion, its normal derivative or periodic boundary conditions. Solutions can be computed
on a rectangle in various coordinate systems including Cartesian, cylindrical, spherical
or any separable coordinate system. A least squares solution can be obtained when a
solution does not exist in the traditional sense. Here we provide an introduction to the
methods and their use for solving Poisson’s equation. We also discuss the availability
of software and the implementation of the methods on multiprocessor computers.

* National Center for Atmospheric Research, Boulder, Colorado


80307, which is sponsored by the National Science Foundation.
† Computational Mathematics Group, Department of Mathematics,
University of Colorado at Denver, Denver Colorado, 80204.
-2-

I. Introduction

Mathematical models of fluids frequently require the solution of Poisson’s


equation. Here we will review two direct methods for solving Poisson’s equa-
tion; namely, the Fourier and cyclic reduction methods. Direct methods are
distinguished by the property that a solution is obtained in a finite number of
operations, and the accuracy is determined by the accumulation of roundoff
errors. The accuracy of the iterative method is determined by the convergence
test which is usually inferior to the accuracy of the direct method. This is
because the convergence test must be maximized to minimize computing time.
This tradeoff between accuracy and computing time is a nontrivial problem
associated with iterative methods in the context of time-dependent fluid models.

Here we will review these methods and note that further details can be found in
[2] and [13]. In what follows, we will determine an approximate solution to
Poisson’s equation in Cartesian coordinates; namely,

_∂___ _∂___
2 2
u u
+ = f (x ,y ) . (1)
∂x 2
∂y 2
To solve Poisson’s equation, one must specify the region as well as the
appropriate conditions on the solution on the boundaries of the region.
Although fast, direct methods can be used to facilitate the solution on irregular
regions, [3], [6], here, for exposition, we assume a rectangle a ≤ x ≤ b and
c ≤ y ≤ d . The region is assumed rectangular in the coordinate system but not
necessarily in physical space. For example, in cylindrical coordinates, a fast
solution can be obtained on the region a ≤ r ≤ b and c ≤ z ≤ d . In fluid
models, one of the following boundary conditions can be specified on each of
the four boundaries of the rectangle.

1. The solution is specified on the boundary.

2. The derivative of the solution, normal to the boundary, is specified on the


boundary.

3. The solution is periodic.


-3-

Specifying combinations of the latter two boundary conditions leads to a prob-


lem having two important characteristics. First, a solution will exist only if the
boundary condition and f satisfy an auxiliary condition. For example, suppose
we wish to solve (1) on the rectangle given above with the condition that the
solution is periodic in both x and y . If a solution exists, it satisfies (1) which,
if integrated over the rectangle, yields

∫ ∫
b d
f (x ,y ) dy dx = 0 , (2)
a c

where we have made use of the periodic boundary conditions. Therefore, if a


solution exists, the mean of f must be zero; or conversely, if the mean of f is
not zero, a solution does not exist.

Second, if a solution to this problem exists then it is not unique. That is, if u
is a solution, then u + c is also a solution for any constant c . This is usually
not a problem for fluid models because the gradient of u is used in the time-
dependent equations that describe the motion of the fluid. This situation is not
uncommon in fluid models and is the subject of section V.

Any combination of derivative and periodic boundary conditions may define a


problem without a solution. However, it is usually the case that a solution can
be found to a perturbed problem. That is, if the problem arises from a particu-
lar physical application it is likely that observational or computational errors
will produce a small but nevertheless nonzero right side of (2), which implies a
solution does not exist. Nevertheless, if f is perturbed so that its mean is zero,
then a solution exists which is a least squares solution to the unperturbed prob-
lem.

In the remaining sections we develop the large linear system of equations that
arise from the second-order, central finite difference approximation to equation
(1). We also present two algorithms that provide reliable and fast solutions, dis-
cuss extensions to more general problems, and describe software that can be
used to solve Poisson’s equation subject to the boundary conditions listed
above. In section VII we discuss the implementation on multiprocessor comput-
ers.
-4-

II. Finite Difference Approximation

To illustrate fast, direct methods, we begin with the development of a finite


difference approximation to a typical problem; namely, that of finding a solu-
tion u to Poisson’s equation (1) on the rectangle a ≤ x ≤ b , c ≤ y ≤ d ,
assuming the solution is periodic in both x and y . We begin with the selection
of positive integers M and N that define grid spacings ∆x = (b −a )⁄M and
∆y = (d −c )⁄N and grid points

xi = a + i ∆x for i = 0 , . . . , M and y j = c + j ∆y for j = 0 , . . . , N .

We wish to determine an approximate solution vi ,j to equation (1) at the grid


points xi and y j . To this end we require vi ,j to satisfy the following second-
order centered finite difference approximation to Poisson’s equation (1),

1 1
____ (vi −1,j − 2vi ,j + vi +1,j ) + ____ (vi ,j −1 − 2vi ,j + vi ,j +1) = f i ,j , (3)
∆x 2
∆y 2

where f i ,j = f(xi ,y j ). The periodic boundary conditions imply

vi ,j = vi +M ,j +N for all i and j. (4)

Equations (3) plus boundary conditions (4) can be written

Av 0 + v1 + vN −1 = g0 , (5a)

v j −1 + Av j + v j +1 = g j for j = 1, . . . , N −2 , (5b)

v0 + vN −2 + AvN −1 = gN −1 , (5c)

where

v jT = (v 0,j , v 2,j , . . . , vM −1,j ) ,

g jT = ∆y 2(f 0,j , f 2,j , . . . , f M −1,j ) ,

and
 −2α 1 1 
 1 
 −2α 1 
 1 . 
A = ρ2  .  (6)
 . 1 
 
 1 1 −2α 
-5-

is a M ×M matrix, with ρ = ∆y ⁄∆x and α = (1 + ρ2)/ρ2. The problem becomes


one of solving the linear system (5a-c) for the approximate solution vi ,j of
Poissons equation. Before we describe the two methods of solution, we note
that if the M ×N equations (3) or (5a-c) are added, the left side of the sum van-
ishes and we obtain
M −1 N −1
0= Σ Σ f i ,j . (7)
i =0 j =0

This is the discrete version of (2), in which the integral is approximated by a


trapezoidal quadrature. Therefore, the solvability requirement for Poisson’s
equation has a finite difference analog that must be satisfied if the system (5a-
c) has a solution. The accuracy of (7) relative to (2) meets or exceeds the accu-
racy of (3) relative to (1).

III. The Fourier Method

Here we will use the Fourier method to solve the finite difference equations
and note only that the Fourier method can also be used to solve Poisson’s
equation directly. The latter approach is called the spectral method [5] which is
more accurate; however, the treatment of nonhomogeneous boundary conditions
is somewhat more complicated.

The Fourier method for solving the finite difference equations comes under the
more general heading of matrix decomposition for reasons that will become
evident. The matrix decomposition method can be applied to problems with
nonzero boundary conditions. The resulting solution has the accuracy of the
finite difference method, which is usually consistent with the accuracy of the
other approximations in the fluid model but it is not as accurate as the spectral
method. In this section, we will describe the matrix decomposition method for
solving the large sparse system of equations (5a-c).

Matrix decomposition consists of the following major steps:

1. Derive a new system of equations that is easy to solve and whose vari-
ables are the Fourier coefficients of the solution. This step includes the
-6-

transformation of the equations from physical space to Fourier space,


which is called the Fourier analysis phase.

2. Solve the new system of equations for the Fourier coefficients.

3. Compute the solution of Poisson’s equation from its Fourier coefficients.


This step includes the transformation of the solution from Fourier space
back to physical space which is called the Fourier synthesis phase.

The Fourier method is quite straightforward and its implementation is


significantly assisted by software. In particular, the transforms required to
implement the Fourier method are in FFTPACK 5.0 which is available from
NCAR.

Let Q be an orthogonal matrix; i.e., QQT = I, yet to be defined, and compute

ĝ j = QT g j j = 0, . . . , N −1 .

Further, define

v̂ j = QT v j j = 0, . . . , N −1 . (8)

Multiplying (5b) by QT we obtain

v̂ j −1 + QT AQv̂ j + v̂ j +1 = ĝ j (9)

If Q is chosen such that QT AQ is a diagonal matrix; i.e.,

QT AQ = diag(λ0, λ2, . . . , λM −1) ,

the resulting system (9) of equations decouples into M independent periodic


tridiagonal systems

λk v̂k ,0 + v̂k ,1 + v̂k ,N −1 = ĝk ,0 (10a)

v̂k ,j −1 + λk v̂k ,j + v̂k ,j +1 = ĝk ,j , for j = 1, . . . , N −2 , (10b)

v̂k ,0 + v̂k ,N −2 + λk v̂k ,N −1 = ĝk ,N −1 , (10c)


-7-

for k = 0, . . . , M −1 .

The Fourier coefficients v̂k ,j can easily be determined by solving these systems
and the solution can then be computed from the inverse of (8). Using the
results we can now summarize the matrix decomposition method:

1. Given the tabulation of the right-hand side g j , then, using the fast Fourier
transform (FFT), [4], [12], we first compute

ĝ j = QT g j . (11)

2. Next we solve the M independent periodic tridiagonal systems (10a-c) for


the Fourier coefficients v̂k ,j .

3. Finally, we compute the solution v j from the inverse of (8) or

v j = Qv̂ j . (12)

The FFT is the key to the efficiency of this method. The matrix Q depends on
the form of the matrix A, which in turn depends on the boundary conditions.
For periodic boundary conditions the M ×M matrix A has the form given in
(6). For M even, the Fourier transform (11) is given by
M −1
2
ĝ 0,j = ___
M Σ gi ,j ,
i =0
M −1
2
ĝM −1,j = ___
M Σ (−1)i gi ,j
i =0

and for k = 1, . . . ,M ⁄2−1


M −1
2
ĝ 2k −1,j = ___
M Σ gi ,j cos ik 2π⁄M
i =0
M −1
2
ĝ 2k ,j = ___
M Σ gi ,j sin ik 2π⁄M . (13)
i =0

A similar formula can be given for the case when M is an odd integer. The
inverse Fourier transform (12) is given by
-8-

1 1
vi ,j = __ v̂ 0,j + __ (−1)i v̂M −1,j
2 2
M ⁄2−1
+ Σ (v̂ 2k −1,j cos ik 2π⁄M + v̂ 2k ,j sin ik 2π⁄M ) (14)
k =1

The eigenvalues λk , for use in (10a-c), are

λ0 = −2

λ2k −1 = λ2k = −2(1+2ρ2 sin2πk ⁄M ) , k = 1, . . . , M ⁄2−1 (15)

and λM −1 = −2(1 + 2ρ2) .

Consider now the asymptotic number of operations required to solve equations


(5a-c) where an operation is defined as one multiplication plus an addition.
Steps 1 and 3 of the Fourier method require 2N matrix-vector products. Ordi-
narily, such a matrix-vector would require M 2 operations. However, the
matrices Q and QT are such that the product can be realized in 5M log2M
operations, using the fast Fourier transform. Therefore, the total number of
operations for steps 1 and 3 is 10MN log2M . Step 2 requires the solution of M
periodic tridiagonal systems, each of which takes 5N operations, with the result
that the total operation count for step 2 is 5MN . Since this last term is of
lower order, it is not included in the asymptotic count. Hence, for large M and
N , the matrix decomposition method requires about 10MN log2M operations.

IV. Cyclic Reduction

The second fast direct method we present is the cyclic reduction algorithm [2],
[9]. This algorithm is a recursive scheme that eliminates half of the unknowns
at each step until there remains a single equation that can be solved. The
remaining unknowns are computed easily by a back-substitution method.

To describe this algorithm, we present the reduction and back-substitution for


the case N = 8 = 23 from which the general case for N = 2p will become evi-
dent. Although not a requirement, for the purpose of exposition we will
assume that N is a power of two. The case of general N is treated in [15].
-9-

For the case N = 8 the system (5a-c) has the form:

Av0 + v1 + v7 = g0

v0 + Av1 + v2 = g1

v1 + Av2 + v3 = g2

v2 + Av3 + v4 = g3 (16)

v3 + Av4 + v5 = g4

v4 + Av5 + v6 = g5

v5 + Av6 + v7 = g6

v0 + v6 + Av7 = g7

Multiply the second equation by −A and add to it the first and third equations.
The result is the equation

(2I − A2) v1 + v3 + v7 = − Ag1 + g0 + g2 .

Repeating this procedure on the sixth and eighth equation we obtain the
reduced system

A(1) v1 + v3 + v7 = g1(1)

v1 + A(1) v3 + v5 = g3(1)

v3 + A(1) v5 + v7 = g5(1) (17)

v1 + v5 + A(1) v7 = g7(1)

where

A(1) = 2I − A2 and g2j


(1)
−1 = −Ag2j −1 + g2j −2 + g2j .

System (17) has half the number of original unknowns. Furthermore, it has
exactly the same form as (16), so the process can be repeated and the
unknowns can be halved again. Multiply the second equation by −A(1) and add
to it the first and third equations. Multiply the fourth equation by −A(1) and
add to it the third and first equations to get the further reduced system

A(2)v3 + 2 v7 = g3(2)

2 v3 + A(2) v7 = g7(2) , (18)


- 10 -

where

A(2) = 2I −(A(1))2 and g4j


(2)
−1 = −A g4j −1 + g4j
(1) (1) (1)
−3 + g4j +1 .
(1)

Next we eliminate v3 from system (18) by multiplying the second equation by


−A(2) and adding twice the second equation to obtain

A(3) v7 = g7(3) , (19)

where

A(3) = 4 I − (A(2))2 and g7(3) = −A(2) g7(2) + g3(2) .

Once we have solved equation (19) for v7 we can solve for v3 from the first
equation of system (18) and solve for v1 and v5 from the first and third equa-
tions of system (17); we obtain v0, v2, v4, and v6 from system (16). There
remains now the task of solving equation (19) for v7. Note that the auxiliary
matrices A(k ) that were created in the reduction process are polynomials of
degree 2k in the original matrix A. These polynomials have known real roots
λi(k ) so we can rewrite equation (19), using the factored form of the polynomial
for A(3), as
7
Π (A − λi(7)I) v7 = g7(3) , (20)
i =0

which can be solved by the algorithm

1. set z0 = g7(3)

2. for i = 1, . . . , 8 , solve

(A − λi(7)I)zi = zi −1 . (21)

The last vector obtained, z8, is the solution v7, of equation (9).

The algorithm presented above is known as cyclic odd-even reduction and is


numerically unstable. The elements of the matrices A(k ) grow exponentially as
a function of k , with the result that all significance can be lost in the calcula-
tion of the right sides g j(k ) . The Buneman variant [1] stabilizes the calculation
by assuming that each of the g j(k ) can be written as

g j(k ) = A(k ) p j(k ) + q j(k )


- 11 -

and developing recurrence relations for p j(k ) and q j(k ) which involve solving a
linear system of equations with coefficient matrix A(k −1).

We have illustrated the algorithm for the case N = 8 = 23. In general, for
N = 2p , p reduction steps are required to reduce the original system to a single
equation for the unknown vN . At each step of the reduction phase there are
N ⁄ 2 tridiagonal systems to be solved. Solving for vN requires the solution of
N periodic tridiagonal systems. Finally, there are p back-substitution steps to
find the remaining unknowns, at each step of which N ⁄ 2 periodic tridiagonal
systems are solved. The grand total number of tridiagonal systems to be solved
is, therefore, N (p +1) = N log2N + N . Each periodic tridiagonal system
requires 5M multiplications so the total operation count is about 5MN log2N .
This count is less than the count for the Fourier method, however, in practice,
the stable Buneman variant is about 25% slower than the Fourier method on a
vector computer. The relative speed of these two methods will vary depending
on the implementation and the computer.

V. Least squares solutions.

Perhaps the most unique attribute of direct methods is the ability to determine
least squares solutions to Poisson’s equation. As mentioned earlier, it is rela-
tively common in fluid models to pose problems that do not have a computa-
tional solution. This difficulty results from computational and/or observational
errors and would not be a problem for the continuous fluid model with exact
data. That is, roundoff, truncation, and observational errors likely produce an
inconsistent system (5a-c) in which the constraint (7) is not satisfied even
though constraint (2) is satisfied with an exact right side f (x ,y ). In this sec-
tion, we show how to perturb the right side of Poisson’s equation so that either
the Fourier or cyclic reduction method can be used to compute a solution to the
perturbed system. Solutions to the perturbed system are least squares solutions
to the unperturbed system.

If we replace f i ,j with a perturbed right side

M −1 N −1
1
gi ,j = f i ,j − ____
MN Σ Σ f i ,j , (22)
i =0 j =0
- 12 -

then gi ,j satisfies the constraint (7). In [10] it is shown that system (5a-c) has a
solution if f i ,j is replaced with gi ,j . Further, it is shown that the solution is a
least squares solution to the unperturbed problem. That is, the solution minim-
izes the l 2 norm of the residual in equations (5a-c).

A slight modification of the direct methods is necessary for the doubly periodic
case under consideration. Using the Fourier method, the periodic tridiagonal
system (10a-c) is singular for k = 0. Using a fast variant of Gauss elimination, a
zero pivot is computed for j = N −1. However, because gi ,j satisfies the con-
straint (7), it can be shown that the right side of the zero pivot equation is also
zero yielding an equation of the form 0 . v̂ 0,N −1 = 0. Therefore v̂ 0,N −1 can be set
to any value which demonstrates that the solution is not unique. In practice, the
zeros in the pivot equation are not identically zero, but on the order of roundoff
error. Hence, proceeding with Gauss elimination will compute a v̂ 0,N −1 that is
on the order of one. Therefore, the only modification of the direct method is
an identically zero test in which case v̂ 0,N −1 can be set to any value, say,
v̂ 0,N −1 = 1.

The constraint (7) is valid only for the doubly periodic case considered here. It
will vary depending on the boundary conditions and the coordinate system
under consideration. The general form of the constraint is

if jf
0= Σ Σ wi w j f i ,j , (23)
i =is j =js

where is , i f , js , j f and the weights wi , and w j vary depending on the problem.


These quantities are tabulated in [10] for the boundary conditions listed in the
Introduction and for Poisson’s equation in Cartesian, cylindrical, and spherical
coordinate systems.

Finally, we include an important comment about the least squares solutions.


The method will formally work for any right side f i ,j . However, if the pertur-
bation gi ,j is significantly different from f i ,j , then the least squares solution
provides the exact solution to a problem that is significantly different from the
- 13 -

original problem. In this case, an effort should be made to understand why the
original problem did not have a solution.

VI. Software

The advent of fast direct methods has significantly reduced computation time
for fluid models. In addition, they have also reduced the development time
since the methods have been implemented in a public domain FORTRAN pack-
age called FISHPACK [10], [11]. This package automatically provides com-
plete second-order finite difference approximations to two-dimensional Poisson
equations in several frequently used coordinate systems (Cartesian, cylindrical,
and spherical), and the three-dimensional Poisson equation in Cartesian coordi-
nates. The software incorporates the given boundary data and calculates the
correct approximation at coordinate singularities; e.g., the origin r =0 in spheri-
cal coordinates. When the problem specified is singular, the software checks
the correct condition to determine whether a solution exists and, if it does not,
subtracts the appropriate constant from the data to guarantee that a weighted
least-squares solution to the original equation exists, and finds it.

In addition, the software includes subroutines for more general separable ellip-
tic equations that have the added capability of providing fourth-order accurate
solutions. The most general equation solved by the package is the separable
elliptic equation
∂2u _∂u
__ + c (x )u + d (y ) _∂___
2
u ∂u
a (x ) ____ + b (x ) + e (y ) ___ + f (y )u = g (x ,y ) (24)
∂x 2 ∂x ∂y 2 ∂y
that is solved with a software implementation of the generalized cyclic reduc-
tion algorithm given in [9]. Except for the three-dimensional Cartesian solver,
the codes are written for two space dimensions. Nevertheless, three-dimensional
versions are available in private domain software CRAYFISHPAK [16].
Software is also available for irregular regions [3], [7].

FISHPACK was developed at the National Center for Atmospheric Research


(NCAR) and was tested [8] by a group from five federal laboratories. The test-
ing included compilation of routines, verification of example programs,
verification that the input error detection code works correctly, and the
- 14 -

construction and running of various test problems. Finally, the Fourier method
described in section III. can be implemented directly with the assistance of
FFTPACK which includes sine, cosine, and the quarter wave transforms as well
as the traditional real and complex periodic transforms. Both FISHPACK and
FFTPACK are distributed by NCAR. Distribution information can be obtained
from either author.

VII. Parallel Computation

With the advent of parallel and distributed computing, it is of interest to


develop methods for the implementation of the direct solvers on these
machines. The solution of Poisson’s equation on a parallel computer is dis-
cussed in some detail in [14]. The focus of that paper is on the distribution of
the various computational segments of the direct solver. That is, parallel algo-
rithms were developed for the FFT and the solution of the tridiagonal systems.
Here we describe a different approach in which the traditional scalar algorithms
are used, and parallelism is obtained from the multiplicity of sequences that
must be transformed or the multiplicity of tridiagonal systems that must be
solved.

For example, consider the development of weather/climate models on massively


parallel multiprocessors. These models contain a number of computations that
can be performed in parallel. For example, on each latitude a Fourier
transform is performed in the longitudinal direction. These transforms can be
performed in parallel if the data on each latitude are in the same processor; that
is, if the data are distributed in latitude but not longitude. The Legendre
transform in the latitudinal direction can similarly be performed in parallel if
the data are distributed in longitude but not in latitude.

There are two approaches to performing these computations on a multiproces-


sor. First, a fixed distribution of the data could be selected; that is, the data
could be distributed in longitude but not latitude. Then the Legendre transform
could be performed in-processor without interprocessor communication. How-
ever, the Fourier transform in longitude would then require interprocessor com-
munication, and the development of a distributed or parallel FFT algorithm.
- 15 -

As an alternative, the data could be dynamically redistributed (transposed)


between these computational modules, and both the Legendre and Fourier
transforms could be done in-processor. This approach is called the transpose
method.

There are several reasons why the transpose method is preferred. First, and
foremost, it requires less communication. Using current parallel transpose algo-
rithms, the communication complexity is proportional to the data complexity;
that is, the transposition of a P × N array can be performed in O (N ) time on P
processors. However, if the data are not reconfigured, then the communication
complexity of the FFTs in the longitudinal direction may be proportional to its
computational complexity. If N is the number of longitudinal points, the com-
putational (and communication) complexity of P distributed FFTs of length N
is O (N logN ). In general, where applicable, it is preferable to move the data
into a processor with a communication complexity proportional to the data
complexity, rather than implement a distributed algorithm in which the com-
munication complexity may be proportional to the computational complexity.

A second reason to prefer the transpose method is the resulting simplicity of


the approach. The method uses existing efficient algorithms and software
without the need to develop what are often less efficient parallel or distributed
algorithms. Finally, the porting of a model is simplified, because apart from the
addition of the transposition, much of the original code can remain relatively
unchanged. Hence the problem of weather/climate modeling on a multiproces-
sor is reduced to finding the most efficient parallel algorithm for transposing an
array on a multiprocessor.
- 16 -

REFERENCES

[1] O. Buneman, A compact non-iterative Poisson solver, Rpt 294 (1969),


Stanford University Institute for Plasma Research, Stanford, Calif., 9 pp.

[2] B. Buzbee, G. Golub, and C. Nielson, On direct methods for solving


Poisson’s equation, SIAM J. Numer. Anal. 7 (1970), 627-656.

[3] B. Buzbee, F. Dorr, J. George, and G. Golub, The direct solution of the
discrete Poisson equation on irregular regions, SIAM J. Numer. Anal. 8
(1971), 722-736.

[4] J. Cooley and J. Tukey, An algorithm for the machine calculation of com-
plex Fourier series, Math. Comp. 19 (1965), 297-301.

[5] D. Haidvogel and T. Zang, The accurate solution of Poisson’s equation by


expansion in Chebyshev polynomials, J. Comput. Phys. 30 (1979), 167-
180.

[6] W. Proskurowski and O. Widlund, On the numerical solution of


Helmholtz’s equation by the capacitance matrix method, Math. Comput.
30 (1976), 433-468.

[7] W. Proskurowski, Algorithm 593 - A package for the Helmholtz equation


in nonrectangular planar regions, ACM Trans. Math. Software 9 (1983),
117-124.

[8] M. Steuerwalt, Certification of Algorithm 541 - Efficient Fortran subrou-


tines for the solution of separable elliptic partial differential equations,
ACM Trans. Math. Software 5 (1979), 365-371.

[9] P. N. Swarztrauber, A direct method for the discrete solution of separable


elliptic equations, SIAM J. Numer. Anal. 11 (1974), 1136-1150.

[10] P. N. Swarztrauber and R. A. Sweet, Efficient FORTRAN subprograms for


the solution of elliptic partial differential equations, Tech. Note TN/IA-
- 17 -

109, Nat. Ctr. for Atmospheric Res., Boulder, CO, 1975, available from
the Nat. Tech.Inform. Service as document PB263 498/AS.

[11] P. N. Swarztrauber and R. A. Sweet, Algorithm 541 - Efficient Fortran


subprograms for the solution of separable elliptic partial differential equa-
tions, ACM Trans. Math. Software 5 (1979), 352-364.

[12] P. N. Swarztrauber, Vectorizing the FFT’s, In: Parallel Computations G.


Rodrigue, ed., Academic Press, New York, 1982.

[13] P. N. Swarztrauber, Fast Poisson Solvers, In: Studies in Numerical


Analysis, MAA Studies in Mathematics, Vol. 24, Mathematical Associa-
tion of America, 1984.

[14] P. N. Swarztrauber and R. A. Sweet, Vector and parallel methods for the
direct solution of Poisson’s equation, J. Comp. Applied Math. 27 (1989)
241-263.

[15] R. A. Sweet, A cyclic reduction algorithm for block tridiagonal systems of


arbitrary dimension, SIAM J. Numer. Analy. 11 (1974), 506-520

[16] R. A. Sweet, CRAYFISHPAK: A Vectorized Fortran Package to Solve


Helmholtz Equations, Recent Developments in Numerical Methods and
Software for ODEs/DAEs/PDEs, G. D. Byrne and W. E. Schiesser (eds.),
World Scientific, Singapore, 1992, 37-53.

Anda mungkin juga menyukai