45 #ifndef AMESOS2_MATRIXTRAITS_HPP 46 #define AMESOS2_MATRIXTRAITS_HPP 48 #include "Amesos2_config.h" 50 #include <Tpetra_CrsMatrix.hpp> 53 #ifdef HAVE_TPETRA_INST_INT_INT 54 #ifdef HAVE_AMESOS2_EPETRA 55 # include <Tpetra_DefaultPlatform.hpp> 56 # include <Epetra_RowMatrix.h> 57 # include <Epetra_CrsMatrix.h> 59 # include <Epetra_VbrMatrix.h> 69 template <
class Matrix>
70 struct MatrixTraits {};
76 template <
typename Scalar,
77 typename LocalOrdinal,
78 typename GlobalOrdinal,
81 Tpetra::RowMatrix<Scalar,
85 typedef Scalar scalar_t;
86 typedef LocalOrdinal local_ordinal_t;
87 typedef GlobalOrdinal global_ordinal_t;
90 typedef row_access major_access;
93 template <
typename Scalar,
94 typename LocalOrdinal,
95 typename GlobalOrdinal,
98 Tpetra::CrsMatrix<Scalar,
102 typedef Scalar scalar_t;
103 typedef LocalOrdinal local_ordinal_t;
104 typedef GlobalOrdinal global_ordinal_t;
107 typedef row_access major_access;
111 #ifdef HAVE_TPETRA_INST_INT_INT 112 #ifdef HAVE_AMESOS2_EPETRA 115 struct MatrixTraits<Epetra_RowMatrix> {
116 typedef double scalar_t;
117 typedef int local_ordinal_t;
118 typedef int global_ordinal_t;
119 typedef Tpetra::DefaultPlatform::DefaultPlatformType::NodeType node_t;
121 typedef row_access major_access;
125 struct MatrixTraits<Epetra_CrsMatrix> {
126 typedef double scalar_t;
127 typedef int local_ordinal_t;
128 typedef int global_ordinal_t;
129 typedef Tpetra::DefaultPlatform::DefaultPlatformType::NodeType node_t;
131 typedef row_access major_access;
145 struct MatrixTraits<Epetra_VbrMatrix> {
146 typedef double scalar_t;
147 typedef int local_ordinal_t;
148 typedef int global_ordinal_t;
149 typedef Tpetra::DefaultPlatform::DefaultPlatformType::NodeType node_t;
151 typedef row_access major_access;
159 #endif // AMESOS2_MATRIXTRAITS_HPP Utility functions for Amesos2.
Definition: Amesos2_AbstractConcreteMatrixAdapter.hpp:48