## Mathematical Libraries

# Table of Contents

# Introduction

Brief notes are given below on installed mathematical libraries and applications, including numerical libraries for linear algebra, Fast Fourier transforms and statistical analysis. For most of the packages, WestGrid does not yet maintain pages showing how to use these packages, so, you are encouraged to follow the external links to the home pages for the software.

See the main WestGrid software page [1] to see which versions are installed on the various WestGrid systems.

MATLAB [2], a high-level programming environment for scientific computation, which contains many useful linear algebra and other mathematical rouintes, is described on a separate page [2].

# Comprehensive mathematical libraries

**GSL** - GNU Scientific Library.

As described on the GSL home page [3], it is a numerical library for C and C++ programmers including numerical integration, linear algebra, minimization, special functions and other mathematical routines.

Some notes about compiling and linking GSL routines on WestGrid systems are here [4].

**MKL** - Intel Math Kernel Library.

This numerical library contains BLAS (including a C interface), LAPACK, a sparse system solver, random number generators and vector versions of common mathematical functions. See the Intel documentation [5] for more information.

It is installed on glacier in /global/software/intel/mkl61, where one can find examples and additional documentation.

**Trilinos**

Trilinos is a large collection of tools for solving scientific and engineering problems, including interfaces to linear equation and eigenvalue solvers and preconditioners. Mesh partitioning, parallel I/O interfaces and support for parameter studies are among other capabilities. See the Trilinos project page [6] for more information.

# Differential Equation Solvers

**deal.II** - Differential Equations Analysis Library

deal.II is a library using adaptive finite elements for the solution of partial differential equations. See the deal.II home page [7].

**FreeFem++** - Partial Differential Equation Solver

FreeFem++ is typically applied to solve multiphysics non-linear systems. See the FreeFem home page [8].

**PETSc** - A toolkit for solution of differential equations with parallel solvers.

See the PETSc home page [9] and some notes on PETSc on WestGrid [10].

# Fast Fourier transforms

**FFTW** - A widely-used FFT implementation.

See the FFTW home page [11].

# Linear algebra

**BLAS** - Basic Linear Algebra Subprograms

BLAS are fundamental routines for vector and matrix operations.

See the Netlib BLAS page [12] for background information and references. Optimized BLAS libraries are available for all WestGrid systems as part of other packages. Many users will call higher level routines, such as those in LAPACK, rather than using the BLAS routines directly. BLAS are Fortran routines, but, C interfaces are available for some systems.

**LAPACK** - Linear algebra subroutine package.

See the Netlib LAPACK page [13] for a user guide as well as man pages on the individual WestGrid machines. Also, see the Comprehensive mathematical libraries section above.

**MUMPS** - MUltifrontal Massively Parallel sparse direct Solver

MUMPS is a package providing interfaces from Fortran, C, MATLAB and Scilab for solving sparse systems of linear equations in parallel. See the MUMPS home page [14] for documentation.

**ScaLAPACK** - Scalable LAPACK

ScaLAPACK is a parallelized subset of the LAPACK linear algebra package. See the Netlib ScaLAPACK page [15] for documentation and tutorials.

SLEPc is an add-on library for PETSc for the solution of eigenvalue problems associated with large sparse matrices. See the SLEPc home page [16] for documentation.

**WSMP** - Watson Sparse Matrix Package.

This package contains libraries for the direct solution of sparse systems of linear equations (for both serial and parallel environments). See the IBM WSMP page [17] for more information.

**SGISolve** - Fast Sparse Solvers (only on Hungabee).

SGISolve provides two direct solvers, PSLDLT and PSLDU, and one iterative solver, DIterative (deprecated), for sparse linear systems of equations. These solvers are optimized and parallelized for the SGI SMP platforms, and originally developed for the SGI SCSL library that is now retired. Please see the manpages for 'intro_solvers' for more detail.

# Mesh partitioning

**METIS**

METIS is a library and a family of programs for partitioning meshes and graphs. See the METIS home page [18].

**MMG3D**

MMG3D is an anisotropic tetrahedral remesher/moving mesh generator. See the MMG3D home page [19].

**p4est**

p4est is a library for adaptive mesh refinement using octrees. See the p4est home page [20].

**SCOTCH**

SCOTCH is a package for mesh partitioning and sparse matrix reordering. See the SCOTCH home page [21].

**TetGen**

TetGen is a tetrahedral mesh generator and 3D Delaunay triangulator. See the TetGen home page [22].

# Optimization

**Ipopt**

Interior Point OPTimizer (Ipopt) is a package for large-scale nonlinear optimization. See the Ipopt home page [23].

**NLopt**

NLopt is a library for nonlinear optimization callable from many languages and providing interfaces to several other optimization packages. See the NLopt home page [24].

# Statistics

**R**

R is a software environment and language for statistical data analysis. On most of the WestGrid systems on which R is available, a number of add-on packages have also been installed. The installed.packages() command can be used within R to see which packages have been installed. See the R home page [25] for more information about R. Some WestGrid-specific notes are here [26].