In this zip file, two iterative methods for the Laplace equation
are included; jacobi and successive over relaxation (sor). Each
method has 2 separate codes: a serial and a parallel version
using MPI. These codes are available in 3 languages: F77, F90 and C.
They live in the 3 directories bearing their langage names. In a 
fourth directory, MATLAB, a plotting tool, compare.m, is available
for plotting the respective iterative solution against exact solution
side-by-side -- provided of course that matlab is available on your
machine. In all codes, the problem size is written into a file
called plots while the solution array is written into files plots.k
where k represents the partial solution corresponding to process "k".
For serial jobs, there are only 2 output files; namely plots and plots.1.

Implementations in all languages are essentially identical. However,
in the C implementation, due to its array row-major storage convention
(as opposed to fortran's column-major convention), a transpose to the
starting solution is performed, thereafter remain in the transposed
form. This is done for the benefit of being able to pass contiguous
segments of array elements into the MPI_Sendrecv routine in "update_bc_2".

Kadin Tseng, August 18, 2000


In directories F77, F90 and C:

cpu_time.x        - timing routine
pjacobi.x         - parallel jacobi
jacobi_module.x   - jacobi module used in jacobi.x   and sor.x  
make.mpich        - makefile for Argone National Lab's MPI (MPICH)
make.sgi          - makefile for SGI version of MPI
mpi_module.x      - module containing MPI stuff
sjacobi.x         - serial jacobi
psor.x            - parallel SOR scheme
sor_module.x      - module for sor
ssor.x            - serial sor
types_module.x    - type declaration module used in sor.x  , jacobi.x  




In directory MATLAB:

compare.m         - Figure 1 plots exact and iterative solutions side by side.
                    Figure 2 plots the difference of the two solutions.
exact.m           - Matlab m-file to generate and plot exact solution
                    (it needs the "plots" file generated by the programs)
laplace.m         - Plots iterative solution
                    (it needs the "plots" and "plots.k" data files generated
                     by running any of the codes)
readme            - readme file
