# What are the best Python packages/interfaces to sparse direct solvers?

Please list the Python package (petsc4py, etc...) and the sparse direct solvers it supports. One (community-wiki) answer per package, please.

-
I was under the impression that "list" questions were considered bad form on StackExchange. –  Jack Poulson Apr 14 '12 at 21:37
they are, in general, we're leaving this one up as an experiment, and to provoke discussion here –  Aron Ahmadia Apr 14 '12 at 22:28
@JackPoulson: They are bad form. The question should probably be rephrased. Aron did a lot of triage on it that made it a lot better. As it is, we are leaving it up as an experiment to test the validity of the "one answer per package" phrasing of questions. There aren't that many potential answers (I think), so I don't think that the answer list will become unmanageably long. The main criticism of "list questions," vaguely defined, is that they're hard to maintain. –  Geoff Oxberry Apr 14 '12 at 22:31

All direct solvers supported by PETSc are available in Python under a common interface via petsc4py. Supported sparse direct solver packages include the PETSc native direct solvers, MUMPS, PasTiX, SuperLU, SuperLU_DIST, Umfpack, CHOLMOD, Spooles, LUSOL, MATLAB, and ESSL. See the MATSOLVER* man pages here.

-

All direct solvers supported by Trilinos through Amesos are available in Python under a common interface via PyTrilinos. Supported sparse direct solver packages include UMFPACK, TAUCS, PARDISO, SuperLU, and MUMPS. See this technical report discussing sparse linear algebra with PyTrilinos for some examples.

-
SciPy supports sparse linear algebra via scipy.sparse.linalg (see the SciPy Documentation). SciPy supports the sparse direct solver packages SuperLU and UMFPACK.