deal.II version GIT relicensing-6809-ge913b9bb34 2026-09-25 17:20:01+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_tpetra_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 - 2026 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_tpetra_types_h
14#define dealii_trilinos_tpetra_types_h
15
16#include <deal.II/base/config.h>
17
18#include <deal.II/base/types.h>
19
20#ifdef DEAL_II_TRILINOS_WITH_TPETRA
21
23
24# include <Kokkos_DualView.hpp>
25# include <Tpetra_Details_DefaultTypes.hpp>
26
27
28// Forward declarations
29# ifndef DOXYGEN
30# ifdef DEAL_II_TRILINOS_WITH_IFPACK2
31# include <Ifpack2_Preconditioner.hpp>
32# endif
33# include <Tpetra_CrsGraph_fwd.hpp>
34# include <Tpetra_CrsMatrix_fwd.hpp>
35# include <Tpetra_Export_fwd.hpp>
36# include <Tpetra_Import_fwd.hpp>
37# include <Tpetra_Map_fwd.hpp>
38# include <Tpetra_MultiVector_fwd.hpp>
39# include <Tpetra_Operator_fwd.hpp>
40# include <Tpetra_RowMatrix_fwd.hpp>
41# include <Tpetra_Vector_fwd.hpp>
42# endif
43
44#endif
45
47
48#ifdef DEAL_II_TRILINOS_WITH_TPETRA
49namespace LinearAlgebra
50{
51 namespace TpetraWrappers
52 {
53
54 namespace TpetraTypes
55 {
59 using LO = int;
60
61
66
67
68# if DEAL_II_TRILINOS_VERSION_GTE(14, 2, 0)
73 //
74 template <typename MemorySpace>
75 using NodeType = Tpetra::KokkosCompat::KokkosDeviceWrapperNode<
76 typename MemorySpace::kokkos_space::execution_space,
77 typename MemorySpace::kokkos_space>;
78# else
79 template <typename MemorySpace>
80 using NodeType = Kokkos::Compat::KokkosDeviceWrapperNode<
81 typename MemorySpace::kokkos_space::execution_space,
82 typename MemorySpace::kokkos_space>;
83# endif
84
88 template <typename MemorySpace>
89 using ExportType = Tpetra::Export<LO, GO, NodeType<MemorySpace>>;
90
94 template <typename MemorySpace>
95 using ImportType = Tpetra::Import<LO, GO, NodeType<MemorySpace>>;
96
100 template <typename MemorySpace>
101 using MapType = Tpetra::Map<LO, GO, NodeType<MemorySpace>>;
102
106 template <typename MemorySpace>
107 using GraphType = Tpetra::CrsGraph<LO, GO, NodeType<MemorySpace>>;
108
112 template <typename Number, typename MemorySpace>
113 using VectorType = Tpetra::Vector<Number, LO, GO, NodeType<MemorySpace>>;
114
118 template <typename Number, typename MemorySpace>
120 Tpetra::MultiVector<Number, LO, GO, NodeType<MemorySpace>>;
121
122
128 template <typename Number, typename MemorySpace>
130 Tpetra::Operator<Number, LO, GO, NodeType<MemorySpace>>;
131
132
137 template <typename Number, typename MemorySpace>
139 Tpetra::CrsMatrix<Number, LO, GO, NodeType<MemorySpace>>;
140
141
145 template <typename Number, typename MemorySpace>
147 Tpetra::RowMatrix<Number, LO, GO, NodeType<MemorySpace>>;
148
154 template <typename Number, typename MemorySpace>
157
164 template <typename Number>
167
168# ifdef DEAL_II_TRILINOS_WITH_IFPACK2
172 template <typename Number, typename MemorySpace>
174 Ifpack2::Preconditioner<Number, LO, GO, NodeType<MemorySpace>>;
175# endif
176
177 } // namespace TpetraTypes
178 } // namespace TpetraWrappers
179} // namespace LinearAlgebra
180
181#endif
182
184
185#endif
#define DEAL_II_NAMESPACE_OPEN
Definition config.h:38
#define DEAL_II_NAMESPACE_CLOSE
Definition config.h:39
Tpetra::Import< LO, GO, NodeType< MemorySpace > > ImportType
Ifpack2::Preconditioner< Number, LO, GO, NodeType< MemorySpace > > Ifpack2PreconType
Tpetra::Vector< Number, LO, GO, NodeType< MemorySpace > > VectorType
Tpetra::CrsMatrix< Number, LO, GO, NodeType< MemorySpace > > MatrixType
typename VectorType< Number, MemorySpace >::dual_view_type DualViewType
Typedef for the Kokkos::DualView type. This is needed for shallow copies of deal.II LA structures to ...
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
Tpetra::Export< LO, GO, NodeType< MemorySpace > > ExportType
Tpetra::RowMatrix< Number, LO, GO, NodeType< MemorySpace > > RowMatrixType
typename DualViewType< Number, ::MemorySpace::Host >::t_host HostViewType
Typedef for the Kokkos::View type. This is needed for shallow copies of deal.II LA structures to Tril...
int signed_global_dof_index
Definition types.h:103