Amesos2 - Direct Sparse Solver Interfaces Version of the Day
Map types to solver-specific data-types and enums. More...
Map types to solver-specific data-types and enums.
Some direct linear sparse solvers have custom data types that are more commonly represented as other data types. For example, Superlu uses a custom
doublecomplex data types to represent double-precision complex data. Such a scalar is more commonly represented by
std::complex<double> . Superlu then also uses an
enum class called
Dtype to flag the data type for certain methods. Amesos2 uses TypeMap to easily access such data types.
This class can be template specialized for each Amesos2::Solver subclass and its supported types. This also provides a compile time check for whether a solver can handle a data type. It is up to the programmer/user to determine whether the data-type they have may be safely coerced to a type supported by the ConcreteSolver, perhaps with the help of Teuchos::as<>. Appropriate type conversions may be provided with through template specialization of Teuchos::as<>.
The default instance is empty, but specialized instances for each ConcreteSolver should contain at the minimum a
type and other typedefs as appropriate for the ConcreteSolver's needs
|ConcreteSolver||A Amesos2::Solver type for which these mappings hold|
|Scalar||The Scalar type that is being mapped|