15#ifndef dealii_trilinos_xpetra_types_h
16#define dealii_trilinos_xpetra_types_h
24#ifdef DEAL_II_TRILINOS_WITH_XPETRA
26# include <Xpetra_CrsGraphFactory.hpp>
27# include <Xpetra_CrsMatrixWrap.hpp>
28# include <Xpetra_DefaultPlatform.hpp>
29# include <Xpetra_Map.hpp>
30# include <Xpetra_MapFactory.hpp>
31# include <Xpetra_MultiVectorFactory.hpp>
32# include <Xpetra_Parameters.hpp>
34# ifdef DEAL_II_TRILINOS_WITH_SHYLU_DDFROSCH
36# include <FROSch_OneLevelPreconditioner_def.hpp>
37# include <FROSch_SchwarzPreconditioners_fwd.hpp>
38# include <FROSch_Tools_def.hpp>
39# include <FROSch_TwoLevelPreconditioner_def.hpp>
40# include <ShyLU_DDFROSch_config.h>
47#ifdef DEAL_II_TRILINOS_WITH_XPETRA
74 template <
typename MemorySpace>
75 using MapType = Xpetra::Map<LO, GO, NodeType<MemorySpace>>;
80 template <
typename MemorySpace>
81 using GraphType = Xpetra::CrsGraph<LO, GO, NodeType<MemorySpace>>;
86 template <
typename Number,
typename MemorySpace>
88 Xpetra::MultiVector<Number, LO, GO, NodeType<MemorySpace>>;
94 template <
typename Number,
typename MemorySpace>
96 Xpetra::Operator<Number, LO, GO, NodeType<MemorySpace>>;
101 template <
typename Number,
typename MemorySpace>
102 using MatrixType = Xpetra::Matrix<Number, LO, GO, NodeType<MemorySpace>>;
107 template <
typename Number,
typename MemorySpace>
108 using CrsMatrixType =
109 Xpetra::CrsMatrix<Number, LO, GO, NodeType<MemorySpace>>;
114 template <
typename MemorySpace>
115 using MapFactoryType = Xpetra::MapFactory<LO, GO, NodeType<MemorySpace>>;
120 template <
typename MemorySpace>
121 using GraphFactoryType =
122 Xpetra::CrsGraphFactory<LO, GO, NodeType<MemorySpace>>;
127 template <
typename Number,
typename MemorySpace>
128 using MultiVectorFactoryType =
129 Xpetra::MultiVectorFactory<Number, LO, GO, NodeType<MemorySpace>>;
134 template <
typename MemorySpace>
135 using TpetraMapType = Xpetra::TpetraMap<LO, GO, NodeType<MemorySpace>>;
140 template <
typename MemorySpace>
141 using TpetraGraphType =
142 Xpetra::TpetraCrsGraph<LO, GO, NodeType<MemorySpace>>;
148 template <
typename Number,
typename MemorySpace>
149 using XTpetraMultiVectorType =
150 Xpetra::TpetraMultiVector<Number, LO, GO, NodeType<MemorySpace>>;
155 template <
typename Number,
typename MemorySpace>
156 using TpetraCrsMatrixType =
157 Xpetra::TpetraCrsMatrix<Number, LO, GO, NodeType<MemorySpace>>;
163 template <
typename Number,
typename MemorySpace>
164 using CrsMatrixWrapType =
165 Xpetra::CrsMatrixWrap<Number, LO, GO, NodeType<MemorySpace>>;
167# ifdef DEAL_II_TRILINOS_WITH_SHYLU_DDFROSCH
171 template <
typename Number,
typename MemorySpace>
172 using XpetraToTpetraLinearOperator =
173 FROSch::TpetraPreconditioner<Number, LO, GO, NodeType<MemorySpace>>;
178 template <
typename Number,
typename MemorySpace>
179 using FROSchOneLevelType =
180 FROSch::OneLevelPreconditioner<Number, LO, GO, NodeType<MemorySpace>>;
182 template <
typename Number,
typename MemorySpace>
183 using FROSchTwoLevelType =
184 FROSch::TwoLevelPreconditioner<Number, LO, GO, NodeType<MemorySpace>>;
#define DEAL_II_NAMESPACE_OPEN
#define DEAL_II_NAMESPACE_CLOSE
types::signed_global_dof_index GO
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
Tpetra::Operator< Number, LO, GO, NodeType< MemorySpace > > LinearOperator
Tpetra::MultiVector< Number, LO, GO, NodeType< MemorySpace > > MultiVectorType
Tpetra::CrsMatrix< Number, LO, GO, NodeType< MemorySpace > > MatrixType
int signed_global_dof_index