http://acts.nersc.gov/hypre/
Hypre is a library for solving large, sparse linear systems of equations on massively parallel computers. The main features of this library are:
- Scalable preconditioners. Hypre contains several families of preconditioned algorithms focused on the scalable solution of very large sparse linear systems. These algorithms include structured multigrid and element-based algebraic multigrid
- Implementation of a suit of common iterative methods. Hypre provides commonly used Krylov-based iterative methods to be used with its scalable preconditioners. These include Conjugate Gradient and GMRES for symmetric and unsymmetric matrices, respectively.
- Intuitive grid-centric interfaces. Hypre provides data structures to represent and manipulate sparse matrices through interfaces. Each interface provides access to several solvers without the need to write new interface codes. These interfaces include stencil-based structured/semi-structured interfaces, finite-element based unstructured interface, and a linear algebra based interface.
- Configuration Options. Hypre can be installed in several computer platforms by simply setting a set of installation parameters. These parameters or options include compilers, optimization modes, and versions of MPI and BLAS routines particular to the users' computational environment. In most cases, users only need to type a configure command followed by a make command.
- Dynamic configuration of parameters. Hypre works for users with different levels of expertise. More experience users can take further control of the solution process through various tunning parameters.
- User defined interfaces for multiple languages. Hypre currently supports Fortran and C languages.