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 ]
