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 or 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
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 experienced 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.
The problems of interest arise in the simulation codes being
developed at the United States Department of Energy's Lawrence
Livermore National Laboratory (LLNL), and also elsewhere, to study physical
phenomena in the defense, environmental, energy, and biological
Hypre supports four conceptual interfaces. The first
one is a structured grid interface called struct
and it aims applications with logically
rectangular grids. The second kind is a semi-structured grid interface
named sstruct that targets applications with grids
that are mostly structured, but with some unstructured features (e.g.,
AMR, block-structured, overset). The third kind is a unstructured grid interface
designed for Finite Element applications called FEI. The last
type is a Linear-Algebraic Interface for applications with sparse
linear systems of equations
The images in the left panel come from applications that
use Hypre (click on the icon to display the full
image in a new window).
| Example program ||Description|
| ex1.c || Simple Struct example |
| ex2.c || Simple two processor Struct example |
| ex3.c || Struct solver for the 5-pt discretization of the 2D Laplace equation |
| ex4.c || several Struct solvers for a variable coefficient 2D Convection-Reaction-Diffusion equation |
| ex5.c || unstructured solvers for the 5-pt discretization of the 2D Laplace equation |
| ex5f.f || Fortran version. unstructured solvers for the 5-pt discretization of the 2D Laplace equation |
| ex6.c || a simple two processor SStruct example |
| ex7.c || several SStruct solvers for a variable coefficient 2D Convection-Reaction-Diffusion equation |
| ex8.c || two processor SStruct example with multiple parts |
| ex9.c || a SStruct example for the biharmonic problem treated as a system of equations |
| ex10.cxx || FEI example with bilinear finite elements for the 2D Laplace equation |
Hypre was developed at the Center
for Applied Scientific Computing (CASC) at
Lawrence Livermore National Laboratory.
Its principal developers were Robert Falgout, Andy Cleary, Jim Jones,
Edmond Chow, Van Henson, Chuck Baldwin, Peter Brown, Panayot
Vassilevski and Ulrike Meier Yang.