Public Computer Codes

Scott R. Fulton

This page lists various computer codes which I have written and people have occasionally requested. They are made available on an "as-is" basis, with no promise of suitability, correctness, quality, or support. If you find them useful, I'd appreciate hearing about it. You may use them as part of your work, but if you publish anything based on them, please acknowledge the source. Thanks.

Multigrid Control Package
This is a collection of Fortran77 routines for executing various multigrid control algorithms, including V-cycles, W-cycles, C-cycles, and the FMG algorithm. All are problem-independent, and can be accessed via a single routine (mgs) which also can execute single-grid relaxation for comparison. The use of this code is illustrated by my Multigrid Poisson Solver listed below.
Fortran 77 code:
single precision or double precision

Multigrid Solver for the 2D Poisson Problem
This Fortran77 routine solves the Poisson Problem on a two-dimensional rectangle with Dirichlet boundary conditions via a multigrid method. This uses Gauss-Seidel relaxation (red-black ordering) with half-injection of residuals and bilinear interpolation of corrections in a V-cycle algorithm. It works and is reasonably efficient, but is hardly general-purpose software. I wrote it primarily as an example of a relatively simple approach to programming multigrid methods in Fortran77; this approach separates the problem-dependent and multigrid-specific code and allows the compiler to handle the indexing on rectangular grids. It comes with a simple main program and the V-cycle control algorithm from my Multigrid Control Package listed above.
Fortran 77 code:
single precision and sample output

Last modified: Mon Dec 7 10:00:35 EST 1998
Scott R. Fulton
fulton@clarkson.edu