Amesos2 - Direct Sparse Solver Interfaces
Version of the Day
|
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.
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 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.
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.
Epetra_CrsMatrix