# Solver Libraries

Trilinos

The "Trilinos Project":http://software.sandia.gov/trilinos "is an effort to develop and implement robust parallel algorithms using modern object-oriented software design, while still leveraging the value of established numerical libraries such as PETSc, Aztec, the BLAS and LAPACK."

Includes multilevel preconditioners and nonlinear solver. Note that Jon Pearce uses this in his thesis work.

Epetra in Trilinos has experimental support for "shared memory parallelism within MPI processes":http://software.sandia.gov/Trilinos/packages/docs/r5.0/packages/epetra/doc/html/classEpetra__MpiSmpComm.html.

hypre

"hypre":http://www.llnl.gov/CASC/linear_solvers/ is "a library of highperformance preconditioners that features parallel multigrid methods for both structured and unstructured grid problems".

A subset ("most":http://www.llnl.gov/CASC/linear_solvers/pubs/concif.pdf) of hypre is threaded.

Note that hypre contains BoomerAMG, which is an MPI-based Algebraic Multigrid Code. Also, Oliver and I (Travis) have some experience using hypre and have good connections to developers of hypre.

The "licence":http://www.llnl.gov/casc/hypre/download/hypre_Cur_agree.html states: "Commercialization of this product is prohibited without notifying the Department of Energy (DOE) or Lawrence Livermore National Laboratory (LLNL)."

Aztec

"Aztec":http://acts.nersc.gov/aztec/ "is a library that provides algorithms for the solution of large sparse linear systems arising in scientific and engineering applications".

Written in C. Callable from Fortran. Uses MPI. "No threading currently":http://www.llnl.gov/asci/purple/benchmarks/limited/aztec/aztec.readme.bm.html.

The "licence":http://www.cs.sandia.gov/CRF/Aztec_download.html is for "research, development and demonstration purposes only".

SUNDIALS

"SUNDIALS":http://www.llnl.gov/CASC/sundials/ is a SUite of Nonlinear andDIfferential/ALgebraic equation Solvers.

Developed from Fortran codes. Now C. Note that Jon Pearce is using this for this thesis work.UbikSolve

"UbikSolve":http://sourceforge.net/projects/ubiksolve/ is a F90/95 sparse MPI-based linear algebra library, with emphasis on preconditioned Krylov subspace methods for the solution of linear systems of equations.

I (Travis) used this at Los Alamos and found it easy to use. Also, it has an Artistic License, like perl. Furthermore, you pass a pointer to your Matrix-Vector multiply into the Krylov solver so it is easy to use with respect to different distributed matrix storage schemes.

Petsc

Petsc can also be thought of as a linear solver library. In fact, it contains a variety of solver options that can probably be taken advantage of independently of the rest of Petsc.