fishpack, a FORTRAN77 code which solves several forms of Poisson's equation, by John Adams, Paul Swarztrauber, Roland Sweet.
FISHPACK is a package of subroutines for solving separable partial differential equations in various coordinate systems. Such equations include the Laplace, Poisson and Helmholtz equations and have the form:
Uxx + Uyy = 0 (Laplace)
Uxx + Uyy = F(X,Y) (Poisson)
Uxx + Uyy + lambda*U = F(X,Y) (Helmholtz)
in two dimensional cartesian coordinates.
FISHPACK is not limited to the 2D cartesian case. It can set up and solve the equations in coordinate systems including:
The algorithm uses 5 point finite differences and an evenly spaced grid. Other routines are included which solve related problems in which the derivative terms have coefficient functions.
In the documentation, the words "standard" and "staggered" grid are used. The difference between these grids is simple. In the one dimensional case, a standard grid of size H on the interval (A,B) would be (A, A+H, A+2*H, ..., B-H, B) whereas a staggered grid would be (A+H/2, A+3H/2, ..., B-3H/2, B-H/2). Versions of 2D solvers are offered below using both kinds of grids. Depending on the boundary conditions, or other singularities near the boundary, one or the other type of grid may be preferred.
The version of FISHPACK presented here has been altered and adapted somewhat. To obtain a clean and correct copy of the original version, go to http://www.netlib.org/fishpack/index.html
The computer code and data files described and made available on this web page are distributed under the GNU LGPL license.
fishpack is available in a FORTRAN77 version.
BETIS, a FORTRAN77 program which solves Laplace's equation in a 2D region using the boundary element method.
FEM_50, a MATLAB program which solves Laplace's equation in an arbitrary region using the finite element method.
FEM2D_POISSON_RECTANGLE, a FORTRAN77 program which solves Poisson's equation in a 2D rectangle using the finite element method.
FFTPACK5, a FORTRAN90 library which computes Fast Fourier Transforms. A version of this library is included in FISHPACK.
SERBA, a FORTRAN77 program which solves problems in planar elasticity using the boundary element method.
SLATEC, a FORTRAN90 library which includes a copy of FISHPACK.
John Adams, Paul Swarztrauber, Roland Sweet.