On Thu, Oct 24, 2013 at 12:59 PM, Jon Alm Eriksen
<[email protected]> wrote:

> Also, a completely unrelated question:
> Is the SimpleLUSolver really iterative?

Not really. It is using a direct sparse solver, but mostly requires
more that one iteration due to round off in the direct solver.

> It says in the documentation
> that it is a "wrapper for PySparse superlu.factorize()", but this
> documentation (http://pysparse.sourceforge.net/fact.html) lists it
> under direct solvers (isn't LU factorisation just a way to invert the
> matrix and solve the equation directly anyways?). What confuses me is
> that SimpleLUSolver takes tolerance and iterations arguments. How does
> it work?

A few iterations are typically done with LU outside of the direct solve. See

   
http://matforge.org/fipy/browser/fipy/fipy/solvers/pysparse/linearLUSolver.py#L94

It is often just one or two as I recall for most systems. Round off
prevents immediate convergence (if I'm recalling correctly). See p8 of

   http://bit.ly/1c52Jgk (PDF of the superLU user guide)

It seems like it's referring to what we are doing in the code above.
So yes, superLU is direct but sometime requires more than one shot to
reduce the error enough. The LinearLUSolver iterations are obviously
different from iterations in a regular iterative solver. Hope that
helps.

-- 
Daniel Wheeler
_______________________________________________
fipy mailing list
[email protected]
http://www.ctcms.nist.gov/fipy
  [ NIST internal ONLY: https://email.nist.gov/mailman/listinfo/fipy ]

Reply via email to