Amesos2 - Direct Sparse Solver Interfaces Version of the Day
Amesos2 - Direct Sparse Solver Interfaces
amesos2_logo.png

Outline

Introduction

Amesos2 provides a uniform interface to common third-party direct sparse solver libraries, such as SuperLU and KLU. Amesos2 is intended to supersede Amesos. While Amesos only supports Epetra double precision data types, Amesos2 allows a variety of data types through templating. Amesos2 supports both Epetra and Tpetra matrix and MultiVector types. It is fairly easy to extend the matrix and vector adapters to support other data types as well.

Amesos2 Contributors

The following people have contributed to the development of Amesos2:

Overview of Amesos2

Amesos2 Solver-interface Classes

Amesos2::Solver provides the uniform solver interface for all the supported third party solvers. Users can use the non-member functions Amesos2::query to query for a solver and Amesos2::create to create a solver. (Please see Amesos2_Factory_decl.hpp for details)

There is currently Amesos2 support for the following list of third-party solver libraries.

A templated version of KLU (KLU2) will be included in Amesos2.

In order to enable a solver's use in Amesos2 you must also enable the solver's third-party library in Trilinos.

Amesos2 Adapter Classes

The Amesos2 adapter classes allow Amesos2 to be flexible to its users needs. The existence of a matrix adapter for a particular linear algebra object means that it can be used by Amesos2 as the matrix A. Similarly for the multivector adapters. If a multivector adapter exists, then Amesos2 can use it as the left-hand-side multivector X or the right-hand-side multivector B.

The list of supported linear algebra objects is flexible. If you need to give Amesos2 a particular type of object, and it is not currently supported, please ask the Amesos2 developers about adding support.