There are several iterative solvers for the arising linear systems.
The interface is basically a pointer to an Operator<I,DIM>
and it's Apply() member function
which performs the matrix vector multiply.
The preconditioner is also a member function of the operator. For the common elliptic linear systems and high order Interpolet
based discretizations a simple diagonal scaling (Jacobi-preconditioner) does a good job, see [6].

Up to now there are BiCGStab2 and BiCGstab schemes implemented.
All these solvers are member functions of Solver<I,DIM>.
See the Programming References
for details.
An example for the usage of the solvers is in the source code to section 9.5.

koster 2003-07-29