Hi Slava,

scipy.sparse.linalg contains a set of the classic standard iterative
solvers, those seem quite well-tested. It also has
scipy.sparse.linalg.spilu (incomplete LU decomposition) that is one of
the best general purpose precondictioners. (I personally didn't use it
though, yet).

Anton and me had once a bachelor student trying out some established and
some more advanced iterative methods on kwant systems - the results were
not very promising: Even small systems took very long too converge.

We did not try to use it when a previous close solution was already
known. So that may be a viable approach.

Best

Michael

On 03-11-15 12:41, Christoph Groth wrote:
> Viacheslav Ostroukh wrote:
> 
>> Therefore I think, that it would be quite useful to implement
>> iterative solvers for such cases. This means, that we call our current
>> solver for smatrix/greens_function for initialization, and then use
>> iterative ones to get dependency on a parameter set.
> 
> I think that trying this out is a good idea.  This could be a nice
> project for the upcoming meeting.
> 
>> 1) Is it useful, or I miss some nice pythonic pattern that already can
>> implement it? 😊
> 
> There is no support in Kwant for using iterative linear solvers. But
> once we have identified some suitable library and can use it From
> Python, it shouldn't be too difficult to do.  One way that seems natural
> would be to subclass kwant.solvers.common.SparseSolver.
> 
>> 2) Does anyone have a feeling/knowledge, how this can speed up (or
>> slow down?) calculations?
> 
> I’ve never used iterative solvers myself.  I am not sure about that, but
> it may be that the linear systems that arise in quantum transport are
> “stiff” and thus ill-suited for iterative solvers. Still, once the
> parameters are spaced densely enough, starting From an approximate
> solution _should_ allow for significant speedups.
> 
>> 3) Does someone know nice numeric libraries for iterative linear
>> algebra to test, that can be easily used in Python?
> 
> A quick search within Debian (“apt-cache search iterative precondition”)
> points to
> 
> • ITSOL
> • ViennaCL (also has Python bindings)
> • Pysparse (obviously also has Python bindings)
> 
> Christoph

Reply via email to