13#ifndef dealii_trilinos_xpetra_types_h
14#define dealii_trilinos_xpetra_types_h
22#ifdef DEAL_II_TRILINOS_WITH_XPETRA
24# include <Xpetra_CrsGraphFactory.hpp>
25# include <Xpetra_CrsMatrixWrap.hpp>
26# include <Xpetra_DefaultPlatform.hpp>
27# include <Xpetra_Map.hpp>
28# include <Xpetra_MapFactory.hpp>
29# include <Xpetra_MultiVectorFactory.hpp>
30# include <Xpetra_Parameters.hpp>
32# ifdef DEAL_II_TRILINOS_WITH_SHYLU_DDFROSCH
34# include <FROSch_OneLevelPreconditioner_def.hpp>
35# include <FROSch_SchwarzPreconditioners_fwd.hpp>
36# include <FROSch_Tools_def.hpp>
37# include <FROSch_TwoLevelPreconditioner_def.hpp>
38# include <ShyLU_DDFROSch_config.h>
45#ifdef DEAL_II_TRILINOS_WITH_XPETRA
49 namespace TpetraWrappers
72 template <
typename MemorySpace>
73 using MapType = Xpetra::Map<LO, GO, NodeType<MemorySpace>>;
78 template <
typename MemorySpace>
79 using GraphType = Xpetra::CrsGraph<LO, GO, NodeType<MemorySpace>>;
84 template <
typename Number,
typename MemorySpace>
86 Xpetra::MultiVector<Number, LO, GO, NodeType<MemorySpace>>;
92 template <
typename Number,
typename MemorySpace>
94 Xpetra::Operator<Number, LO, GO, NodeType<MemorySpace>>;
99 template <
typename Number,
typename MemorySpace>
100 using MatrixType = Xpetra::Matrix<Number, LO, GO, NodeType<MemorySpace>>;
105 template <
typename Number,
typename MemorySpace>
106 using CrsMatrixType =
107 Xpetra::CrsMatrix<Number, LO, GO, NodeType<MemorySpace>>;
112 template <
typename MemorySpace>
113 using MapFactoryType = Xpetra::MapFactory<LO, GO, NodeType<MemorySpace>>;
118 template <
typename MemorySpace>
119 using GraphFactoryType =
120 Xpetra::CrsGraphFactory<LO, GO, NodeType<MemorySpace>>;
125 template <
typename Number,
typename MemorySpace>
126 using MultiVectorFactoryType =
127 Xpetra::MultiVectorFactory<Number, LO, GO, NodeType<MemorySpace>>;
132 template <
typename MemorySpace>
133 using TpetraMapType = Xpetra::TpetraMap<LO, GO, NodeType<MemorySpace>>;
138 template <
typename MemorySpace>
139 using TpetraGraphType =
140 Xpetra::TpetraCrsGraph<LO, GO, NodeType<MemorySpace>>;
146 template <
typename Number,
typename MemorySpace>
147 using XTpetraMultiVectorType =
148 Xpetra::TpetraMultiVector<Number, LO, GO, NodeType<MemorySpace>>;
153 template <
typename Number,
typename MemorySpace>
154 using TpetraCrsMatrixType =
155 Xpetra::TpetraCrsMatrix<Number, LO, GO, NodeType<MemorySpace>>;
161 template <
typename Number,
typename MemorySpace>
162 using CrsMatrixWrapType =
163 Xpetra::CrsMatrixWrap<Number, LO, GO, NodeType<MemorySpace>>;
165# ifdef DEAL_II_TRILINOS_WITH_SHYLU_DDFROSCH
169 template <
typename Number,
typename MemorySpace>
170 using XpetraToTpetraLinearOperator =
171 FROSch::TpetraPreconditioner<Number, LO, GO, NodeType<MemorySpace>>;
176 template <
typename Number,
typename MemorySpace>
177 using FROSchOneLevelType =
178 FROSch::OneLevelPreconditioner<Number, LO, GO, NodeType<MemorySpace>>;
180 template <
typename Number,
typename MemorySpace>
181 using FROSchTwoLevelType =
182 FROSch::TwoLevelPreconditioner<Number, LO, GO, NodeType<MemorySpace>>;
#define DEAL_II_NAMESPACE_OPEN
#define DEAL_II_NAMESPACE_CLOSE
types::signed_global_dof_index GO
Tpetra::CrsMatrix< Number, LO, GO, NodeType< MemorySpace > > MatrixType
Tpetra::MultiVector< Number, LO, GO, NodeType< MemorySpace > > MultiVectorType
Tpetra::KokkosCompat::KokkosDeviceWrapperNode< typename MemorySpace::kokkos_space::execution_space, typename MemorySpace::kokkos_space > NodeType
Tpetra::CrsGraph< LO, GO, NodeType< MemorySpace > > GraphType
Tpetra::Map< LO, GO, NodeType< MemorySpace > > MapType
int signed_global_dof_index