← Back to team overview

dolfin team mailing list archive

LU, GMRES and preconditioners

 

I'd like to change the behaviour of classes LU and GMRES so that one
may do

    Matrix A;
    Vector x, b;

    GMRES::solve(A, x, b);

or

    GMRES::solve(A, x, b, Preconditioner::ilu);

and

    LU::solve(A, x, b);

LU and GMRES would thus not be subclasses or typedefs of
PETSc/uBlasLU/KrylovSolver but instead simple classes with static
functions for simple solution of linear systems. This would then be
the fast and easy way to solve a linear system. For more advanced
usage, one would create a KrylovSolver or PETScKrylovSolver and then
call solver.solve(). But often, one only wants to solve one linear
system and not many and then it's convenient to skip the extra step of
creating the solver.

This connects to the design of preconditioners. I think we decided to
put the list of preconditioners in Preconditioner so this should be
ok. What's the status of the redesign of preconditioners?

/Anders


Follow ups