Amesos2  Direct Sparse Solver Interfaces Version of the Day

Amesos2 provides a uniform interface to common thirdparty 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.
The following people have contributed to the development of Amesos2:
Amesos2::Solver provides the uniform solver interface for all the supported third party solvers. Users can use the nonmember 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 thirdparty 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 thirdparty library in Trilinos.
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 lefthandside multivector X
or the righthandside 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.
Epetra_CrsMatrix