Coding Examples
Developer Information

Application Examples






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 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 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 sciences.

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 IJ.

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).


  • Related Tools:

Coding Examples

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

Developer Information

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.
Tools News Home