deal.II version GIT relicensing-6968-g1957ba3668 2026-10-25 03:50:00+00:00
\(\newcommand{\dealvcentcolon}{\mathrel{\mathop{:}}}\) \(\newcommand{\dealcoloneq}{\dealvcentcolon\mathrel{\mkern-1.2mu}=}\) \(\newcommand{\jump}[1]{\left[\!\left[ #1 \right]\!\right]}\) \(\newcommand{\average}[1]{\left\{\!\left\{ #1 \right\}\!\right\}}\)
Loading...
Searching...
No Matches
trilinos_xpetra_types.h
Go to the documentation of this file.
1// -----------------------------------------------------------------------------
2//
3// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception OR LGPL-2.1-or-later
4// Copyright (C) 2018 - 2024 by the deal.II authors
5//
6// This file is part of the deal.II library.
7//
8// Detailed license information governing the source code and contributions
9// can be found in LICENSE.md and CONTRIBUTING.md at the top level directory.
10//
11// -----------------------------------------------------------------------------
12
13#ifndef dealii_trilinos_xpetra_types_h
14#define dealii_trilinos_xpetra_types_h
15
16#include <deal.II/base/config.h>
17
18#include <deal.II/base/types.h>
19
21
22#ifdef DEAL_II_TRILINOS_WITH_XPETRA
23# ifndef DOXYGEN
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>
31
32# ifdef DEAL_II_TRILINOS_WITH_SHYLU_DDFROSCH
33// //FROSch
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>
39# endif // DEAL_II_TRILINOS_WITH_SHYLU_DDFROSCH
40# endif // DOXYGEN
41#endif // DEAL_II_TRILINOS_WITH_XPETRA
42
43
45#ifdef DEAL_II_TRILINOS_WITH_XPETRA
46
47namespace LinearAlgebra
48{
49 namespace TpetraWrappers
50 {
51 namespace XpetraTypes
52 {
56 using LO = int;
57
62
68
72 template <typename MemorySpace>
73 using MapType = Xpetra::Map<LO, GO, NodeType<MemorySpace>>;
74
78 template <typename MemorySpace>
79 using GraphType = Xpetra::CrsGraph<LO, GO, NodeType<MemorySpace>>;
80
84 template <typename Number, typename MemorySpace>
85 using MultiVectorType =
86 Xpetra::MultiVector<Number, LO, GO, NodeType<MemorySpace>>;
87
92 template <typename Number, typename MemorySpace>
93 using LinearOperator =
94 Xpetra::Operator<Number, LO, GO, NodeType<MemorySpace>>;
95
99 template <typename Number, typename MemorySpace>
100 using MatrixType = Xpetra::Matrix<Number, LO, GO, NodeType<MemorySpace>>;
101
105 template <typename Number, typename MemorySpace>
106 using CrsMatrixType =
107 Xpetra::CrsMatrix<Number, LO, GO, NodeType<MemorySpace>>;
108
112 template <typename MemorySpace>
113 using MapFactoryType = Xpetra::MapFactory<LO, GO, NodeType<MemorySpace>>;
114
118 template <typename MemorySpace>
119 using GraphFactoryType =
120 Xpetra::CrsGraphFactory<LO, GO, NodeType<MemorySpace>>;
121
125 template <typename Number, typename MemorySpace>
126 using MultiVectorFactoryType =
127 Xpetra::MultiVectorFactory<Number, LO, GO, NodeType<MemorySpace>>;
128
132 template <typename MemorySpace>
133 using TpetraMapType = Xpetra::TpetraMap<LO, GO, NodeType<MemorySpace>>;
134
138 template <typename MemorySpace>
139 using TpetraGraphType =
140 Xpetra::TpetraCrsGraph<LO, GO, NodeType<MemorySpace>>;
141
146 template <typename Number, typename MemorySpace>
147 using XTpetraMultiVectorType =
148 Xpetra::TpetraMultiVector<Number, LO, GO, NodeType<MemorySpace>>;
149
153 template <typename Number, typename MemorySpace>
154 using TpetraCrsMatrixType =
155 Xpetra::TpetraCrsMatrix<Number, LO, GO, NodeType<MemorySpace>>;
156
161 template <typename Number, typename MemorySpace>
162 using CrsMatrixWrapType =
163 Xpetra::CrsMatrixWrap<Number, LO, GO, NodeType<MemorySpace>>;
164
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>>;
172
176 template <typename Number, typename MemorySpace>
177 using FROSchOneLevelType =
178 FROSch::OneLevelPreconditioner<Number, LO, GO, NodeType<MemorySpace>>;
179
180 template <typename Number, typename MemorySpace>
181 using FROSchTwoLevelType =
182 FROSch::TwoLevelPreconditioner<Number, LO, GO, NodeType<MemorySpace>>;
183# endif // DEAL_II_TRILINOS_WITH_SHYLU_DDFROSCH
184
185 } // namespace XpetraTypes
186 } // namespace TpetraWrappers
187} // namespace LinearAlgebra
188
189#endif // DEAL_II_TRILINOS_WITH_XPETRA
190
192
193#endif // dealii_trilinos_xpetra_types_h
#define DEAL_II_NAMESPACE_OPEN
Definition config.h:38
#define DEAL_II_NAMESPACE_CLOSE
Definition config.h:39
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
Definition types.h:103