← Back to team overview

dolfin team mailing list archive

Preconditioner interface

 

I'm wondering about how to specify the interface for uBlas
preconditioners. I think the natural would be

    void solve(DenseVector& x, const DenseVector& b);

but it seems that the Krylov solver prefers an in-place

    void solve(DenseVector& x);

where x = b before the call.

I think we need to have just one interface. There are two
options. Either we force the solve(x, b) interface, which I think
we can do without sacrificing performance, or we force the solve(x)
interface, which might not be natural for all types of
preconditioners.

A Jacobi preconditioner would need to store a separate vector and make
an additional copy which seems unnessary.

/Anders


Follow ups