External Libraries

Below, the external libraries which we have interfaces for are introduced. They are grouped into linear solvers and Eigensolvers.

Linear Solvers

The plot below shows a comparison of the different linear solvers available with Concepts. It is generated using hpFEM2d-simple.cc with more refinement cycles and different solvers to solve the linear system. Comparison of linear solvers In this application, Pardiso is the fastest and SuperLU is the slowest.

PETSc

PETSc is a suite of data structures and routines for the scalable (parallel) solution of scientific applications modeled by partial differential equations. It employs the MPI standard for all message-passing communication.

Our interface to PETSc uses only its serial capablities and we only use the linear solvers of PETSc (but there is much more).

concepts::PETSc is an interface to PETSc featuring many different iterative solvers and preconditioners. concepts::PETScMat is an interface to the sparse matrices format of PETSc.

See also
Satish Balay, Kris Buschelman, William D. Gropp, Dinesh Kaushik, Lois Curfman McInnes, and Barry F. Smith, PETSc home page, 2001.
Satish Balay, William D. Gropp, Lois Curfman McInnes, and Barry F. Smith. Efficient Management of Parallelism in Object Oriented Numerical Software Libraries. In E. Arge, A. M. Bruaset, and H. P. Langtangen, editors, Modern Software Tools in Scientific Computing, pages 163-202. Birkhauser Press, 1997.
Satish Balay, William D. Gropp, Lois Curfman McInnes, and Barry F. Smith. PETSc Users Manual. Technical Report ANL-95/11 - Revision 2.1.0, Argonne National Laboratory, 2001.

Pardiso

The package PARDISO is a thread-safe, high-performance, robust, memory efficient and easy to use software for solving large sparse symmetric and unsymmetric linear systems of equations on shared memory multiprocessors. The solver uses a combination of left- and right-looking Level-3 BLAS supernode techniques to exploit pipelining parallelism and memory hierarchies. In order to improve sequential and parallel sparse numerical factorization performance, the algorithms are based on a Level-3 BLAS update and pipelining parallelism is exploited with a combination of left- and right-looking supernode techniques.

concepts::Pardiso is an interface to Pardiso.

See also
Olaf Schenk, Klaus Gärtner, Wolfgang Fichtner, Andreas Stricker, PARDISO: a high-performance serial and parallel sparse linear Linear Solvers in semiconductor device simulation, Future Generation Computer System 18 (2001), 69-78.
Pardiso Homepage

SuperLU

SuperLU is a general purpose library for the direct solution of large, sparse, nonsymmetric systems of linear equations on high performance machines. The library routines will perform an LU decomposition with partial pivoting and triangular system solves through forward and back substitution. The LU factorization routines can handle non-square matrices but the triangular solves are performed only for square matrices.

concepts::SuperLU is an interface to SuperLU.

See also
Homepage of SuperLU
James W. Demmel, John R. Gilbert, and Xiaoye S. Li. SuperLU Users' Guide. Technical Report LBNL-44289, Lawrence Berkely National Lab, 2003.

Umfpack

UMFPACK is a set of routines for solving unsymmetric sparse linear systems, Ax=b, using the Unsymmetric MultiFrontal method.

concepts::Umfpack is an interface to Umfpack.

See also
UMFPACK Homepage
Tim A. Davis. A column pre-ordering strategy for the unsymmetric-pattern multifrontal method. Technical Report TR-03-006, Departement of Computer and Information Science and Engineering, University of Florida, 2003. Submitted to ACM Trans. Math. Software.
Tim A. Davis. UMFPACK Version 4.1 User Guide. Technical Report TR-03-008, Univ. of Florida, CISE Dept., Gainesville, FL, 2003.

Eigensolvers

ARPACK

ARPACK is designed to solve large scale eigenvalue problems. The package is designed to compute a few eigenvalues and corresponding eigenvectors of a general n by n matrix A. It is most appropriate for large sparse or structured matrices A. This software is based upon an algorithmic variant of the Arnoldi process called the Implicitly Restarted Arnoldi Method (IRAM). When the matrix A is symmetric it reduces to a variant of the Lanczos process called the Implicitly Restarted Lanczos Method (IRLM). These variants may be viewed as a synthesis of the Arnoldi/Lanczos process with the Implicitly Shifted QR technique that is suitable for large scale problems.

ARPACK software is capable of solving large scale symmetric, nonsymmetric, and generalized eigenproblems from significant application areas. The software is designed to compute a few (k) eigenvalues with user specified features such as those of largest real part or largest magnitude. No auxiliary storage is required. A set of Schur basis vectors for the desired k-dimensional eigen-space is computed which is numerically orthogonal to working precision. Numerically accurate eigenvectors are available on request.

eigensolver::ArPack and eigensolver::ArPackNonSymm are interfaces to ARPACK.

See also
Richard B. Lehoucq, Kristyn J. Maschhoff, Danny C. Sorensen, and Chao Yang, ARPACK Homepage.
Richard B. Lehoucq, Danny C. Sorensen, and Chao Yang. ARPACK users' guide. Software, Environments, and Tools. Society for Industrial and Applied Mathematics (SIAM), Philadelphia, PA, 1998.

JDBSYM

JDBSYM is a C library containing an implementation of the Jacobi-Davidson method optimized for symmetric eigenvalue problems. It solves eigenproblems of the form A*x = lambda*x and A*x = lambda*B*x with or without preconditioning, where A is symmetric and B is symmetric positive definite. The implementation supports blocking.

eigensolver::JdbSym is an interface to JDBSYM.

See also
Roman Geus. The Jacobi-Davidson algorithm for solving large sparse symmetric eigenvalue problems with application to the design of accelerator cavities. PhD thesis 14734, Swiss Federal Institute of Technology Zurich, 2002.
Roman Geus and Oscar Chinellato, JDBSYM 0.14, 2000.
Author
Philipp Frauenfelder, 2004
Page URL: http://wiki.math.ethz.ch/bin/view/Concepts/WebHome
21 August 2020
© 2020 Eidgenössische Technische Hochschule Zürich