Lis (linear algebra library)

Lis (Library of Iterative Solvers for linear systems, pronounced [lis]) is a scalable parallel software library to solve discretized linear equations and eigenvalue problems that mainly arise from the numerical solution of partial differential equations using iterative methods. Although it is designed for parallel computers, the library can be used without being conscious of parallel processing.

Features
Lis provides facilities for:
 * Automatic program configuration
 * NUMA aware hybrid implementation with MPI and OpenMP
 * Exchangeable dense and sparse matrix storage formats
 * Basic linear algebra operations for dense and sparse matrices
 * Parallel iterative methods for linear equations and eigenvalue problems
 * Parallel preconditioners for iterative methods
 * Quadruple precision floating point operations
 * Performance analysis
 * Command-line interface to solvers and benchmarks

Example
A C program to solve the linear equation $$Ax=b$$ is written as follows:

System requirements
Installing Lis requires a C compiler. If you wish to use the Fortran interface, a Fortran compiler is needed, and the algebraic multigrid preconditioner requires a Fortran 90 compiler. For parallel computing environments, an OpenMP or MPI library is necessary. Lis supports both the Matrix Market and Harwell-Boeing formats for importing and exporting user data.

Packages that use Lis

 * Gerris
 * OpenModelica
 * OpenGeoSys
 * SICOPOLIS
 * STOMP
 * Diablo
 * Kiva
 * Notus
 * Solis
 * GeMA
 * openCFS
 * numgeo
 * freeCappuccino
 * Andromeda
 * Yelmo