45 #ifndef AMESOS2_MATRIXTRAITS_HPP 46 #define AMESOS2_MATRIXTRAITS_HPP 48 #include "Amesos2_config.h" 50 #include <Tpetra_CrsMatrix.hpp> 52 #ifdef HAVE_AMESOS2_EPETRA 53 # include <Tpetra_DefaultPlatform.hpp> 54 # include <Epetra_RowMatrix.h> 55 # include <Epetra_CrsMatrix.h> 57 # include <Epetra_VbrMatrix.h> 66 template <
class Matrix>
67 struct MatrixTraits {};
73 template <
typename Scalar,
74 typename LocalOrdinal,
75 typename GlobalOrdinal,
78 Tpetra::RowMatrix<Scalar,
82 typedef Scalar scalar_t;
83 typedef LocalOrdinal local_ordinal_t;
84 typedef GlobalOrdinal global_ordinal_t;
87 typedef row_access major_access;
90 template <
typename Scalar,
91 typename LocalOrdinal,
92 typename GlobalOrdinal,
95 Tpetra::CrsMatrix<Scalar,
99 typedef Scalar scalar_t;
100 typedef LocalOrdinal local_ordinal_t;
101 typedef GlobalOrdinal global_ordinal_t;
104 typedef row_access major_access;
107 #ifdef HAVE_AMESOS2_EPETRA 110 struct MatrixTraits<Epetra_RowMatrix> {
111 typedef double scalar_t;
112 typedef int local_ordinal_t;
113 typedef int global_ordinal_t;
114 typedef Tpetra::DefaultPlatform::DefaultPlatformType::NodeType node_t;
116 typedef row_access major_access;
120 struct MatrixTraits<Epetra_CrsMatrix> {
121 typedef double scalar_t;
122 typedef int local_ordinal_t;
123 typedef int global_ordinal_t;
124 typedef Tpetra::DefaultPlatform::DefaultPlatformType::NodeType node_t;
126 typedef row_access major_access;
140 struct MatrixTraits<Epetra_VbrMatrix> {
141 typedef double scalar_t;
142 typedef int local_ordinal_t;
143 typedef int global_ordinal_t;
144 typedef Tpetra::DefaultPlatform::DefaultPlatformType::NodeType node_t;
146 typedef row_access major_access;
153 #endif // AMESOS2_MATRIXTRAITS_HPP Utility functions for Amesos2.
Definition: Amesos2_AbstractConcreteMatrixAdapter.hpp:48