The code in this directory illustrates how one can couple multiple applications
using InterComm. In this example, a 2-D wave equation simulation was broken
into two halves in the x-axis domain. Because of the split grid and the
periodic boundary conditions, they have to exchange data, which is accomplished
by an Interpolator class (that, in the future, will be able to manipulate the
data and the grid as well). This class uses a communication endpoint. In this
prototype, there are two implementations for a communication endpoint: plain
files -- files are created, read from, and written to (good for debugging
purposes) -- and InterComm.

The cool thing about this prototype is that the two sides of the simulation
talk to each other (it is bidirectional) and both talk to the visualization
tool (but that's an one-way pipe).

In order to run the code, one has to start three applications: waveeq-right,
waveeq-left, and vis (the order is not important). The visualization code (vis)
will generate PBM files with snapshots of the grid for each time step. The
output can be animated with "animate" or individually viewed using "xv".

The parameters for the simulation can be re-configured by modifying the
file waveeq.conf (i.e., things like the grid size, timestep...).

KNOWN ISSUES:

-- the schedule of the communication can be probably be cached if known to
be reused in the near future

-- Henrique Andrade (May 2003)
