deal.II version GIT relicensing-2248-g6a8f632045 2024-12-12 07:30: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_tpetra_types.h
Go to the documentation of this file.
1// ------------------------------------------------------------------------
2//
3// SPDX-License-Identifier: 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// Part of the source code is dual licensed under Apache-2.0 WITH
9// LLVM-exception OR LGPL-2.1-or-later. Detailed license information
10// governing the source code and code contributions can be found in
11// LICENSE.md and CONTRIBUTING.md at the top level directory of deal.II.
12//
13// ------------------------------------------------------------------------
14
15#ifndef dealii_trilinos_tpetra_types_h
16#define dealii_trilinos_tpetra_types_h
17
18#include <deal.II/base/config.h>
19
20#include "deal.II/base/types.h"
21
22#ifdef DEAL_II_TRILINOS_WITH_TPETRA
23
25
26# include <Kokkos_DualView.hpp>
27# include <Tpetra_Details_DefaultTypes.hpp>
28
29
30// Forward declarations
31# ifndef DOXYGEN
32# ifdef DEAL_II_TRILINOS_WITH_IFPACK2
33# include <Ifpack2_Preconditioner.hpp>
34# endif
35# include <Tpetra_CrsGraph_fwd.hpp>
36# include <Tpetra_CrsMatrix_fwd.hpp>
37# include <Tpetra_Export_fwd.hpp>
38# include <Tpetra_Import_fwd.hpp>
39# include <Tpetra_Map_fwd.hpp>
40# include <Tpetra_MultiVector_fwd.hpp>
41# include <Tpetra_Operator_fwd.hpp>
42# include <Tpetra_RowMatrix_fwd.hpp>
43# include <Tpetra_Vector_fwd.hpp>
44# endif
45
47
48namespace LinearAlgebra
49{
50 namespace TpetraWrappers
51 {
52
53 namespace TpetraTypes
54 {
58 using LO = int;
59
60
65
66
67# if DEAL_II_TRILINOS_VERSION_GTE(14, 2, 0)
72 //
73 template <typename MemorySpace>
74 using NodeType = Tpetra::KokkosCompat::KokkosDeviceWrapperNode<
75 typename MemorySpace::kokkos_space::execution_space,
76 typename MemorySpace::kokkos_space>;
77# else
78 template <typename MemorySpace>
79 using NodeType = Kokkos::Compat::KokkosDeviceWrapperNode<
80 typename MemorySpace::kokkos_space::execution_space,
81 typename MemorySpace::kokkos_space>;
82# endif
83
87 template <typename MemorySpace>
88 using ExportType = Tpetra::Export<LO, GO, NodeType<MemorySpace>>;
89
93 template <typename MemorySpace>
94 using ImportType = Tpetra::Import<LO, GO, NodeType<MemorySpace>>;
95
99 template <typename MemorySpace>
100 using MapType = Tpetra::Map<LO, GO, NodeType<MemorySpace>>;
101
105 template <typename MemorySpace>
106 using GraphType = Tpetra::CrsGraph<LO, GO, NodeType<MemorySpace>>;
107
111 template <typename Number, typename MemorySpace>
112 using VectorType = Tpetra::Vector<Number, LO, GO, NodeType<MemorySpace>>;
113
117 template <typename Number, typename MemorySpace>
119 Tpetra::MultiVector<Number, LO, GO, NodeType<MemorySpace>>;
120
121
127 template <typename Number, typename MemorySpace>
129 Tpetra::Operator<Number, LO, GO, NodeType<MemorySpace>>;
130
131
136 template <typename Number, typename MemorySpace>
138 Tpetra::CrsMatrix<Number, LO, GO, NodeType<MemorySpace>>;
139
140
144 template <typename Number, typename MemorySpace>
146 Tpetra::RowMatrix<Number, LO, GO, NodeType<MemorySpace>>;
147
153 template <typename Number, typename MemorySpace>
156
163 template <typename Number>
166
167# ifdef DEAL_II_TRILINOS_WITH_IFPACK2
171 template <typename Number, typename MemorySpace>
172 using Ifpack2PreconType =
173 Ifpack2::Preconditioner<Number, LO, GO, NodeType<MemorySpace>>;
174# endif
175
176 } // namespace TpetraTypes
177 } // namespace TpetraWrappers
178} // namespace LinearAlgebra
180#endif
181
182#endif
#define DEAL_II_NAMESPACE_OPEN
Definition config.h:498
#define DEAL_II_NAMESPACE_CLOSE
Definition config.h:499
Tpetra::Import< LO, GO, NodeType< MemorySpace > > ImportType
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:92