Next: Parallel data layout
Up: Data structure issues
Previous: Data structure issues
The more complicated
the data structure, the more urgent the question becomes of how the user is to
supply the structures to the package. This question is particularly important
in a parallel context.
The packages reviewed here have taken the following list of approaches
to this problem.
- Fully internal, not directly accessible, data structures
(basically object oriented programming).
This approach is taken in Petsc (3.10),
ParPre (3.8),
and BlockSolve (3.2).
The data structures here
are only accessible through function calls. This means that the package
has to supply routines for constructing the structures, for inspecting
them, and for applying them.
- Prescribed, user supplied, data structures.
This approach is taken in Aztec (3.1);
it is available in PCG (3.9).
Here the user has to construct the data structures, but the
package supplies the product and solve routines.
- User supplied, arbitrary, data structures, with user supplied
product and solve routines.
This approach is available in PCG (3.9)
and Petsc (3.10);
the object-oriented package IML++ (3.5) can also
be considered to use this approach.
- User defined data structures, not passed to the iterative method
at all; product and solve operations are requested through a reverse
communication interface.
This approach is taken in PIM (3.11);
it is also available in PCG (3.9).
Victor Eijkhout
Mon Aug 25 17:46:10 PDT 1997