deal.II version 9.8.0
\(\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_vector.cc
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#include <deal.II/lac/trilinos_tpetra_vector.templates.h>
14
16
17#ifdef DEAL_II_TRILINOS_WITH_TPETRA
18
19# ifndef DOXYGEN
20namespace LinearAlgebra
21{
22 namespace TpetraWrappers
23 {
24 // Instantiate these vectors types for specific scalar types.
25 //
26 // While there:
27 // Check that the class we declare here satisfies the
28 // vector-space-vector concept. If we catch it here,
29 // any mistake in the vector class declaration would
30 // show up in uses of this class later on as well.
31
32# ifdef DEAL_II_TRILINOS_WITH_TPETRA_INST_FLOAT
33# ifdef DEAL_II_HAVE_CXX20
34 static_assert(
35 concepts::is_vector_space_vector<Vector<float, MemorySpace::Host>>);
36 static_assert(
37 concepts::is_vector_space_vector<Vector<float, MemorySpace::Default>>);
38# endif
43 <float>(const ::Vector<float> &);
46 <float>(const ::Vector<float> &);
47 namespace internal
48 {
49 template class VectorReference<float, MemorySpace::Host>;
50 template class VectorReference<float, MemorySpace::Default>;
51 } // namespace internal
52# endif
53
54# ifdef DEAL_II_TRILINOS_WITH_TPETRA_INST_DOUBLE
55# ifdef DEAL_II_HAVE_CXX20
56 static_assert(
57 concepts::is_vector_space_vector<Vector<double, MemorySpace::Host>>);
58 static_assert(
59 concepts::is_vector_space_vector<Vector<double, MemorySpace::Default>>);
60# endif
65 <double>(const ::Vector<double> &);
68 <double>(const ::Vector<double> &);
69
72 <float>(const ::Vector<float> &);
73 namespace internal
74 {
75 template class VectorReference<double, MemorySpace::Host>;
76 template class VectorReference<double, MemorySpace::Default>;
77 } // namespace internal
78# endif
79
80# ifdef DEAL_II_WITH_COMPLEX_VALUES
81# ifdef DEAL_II_TRILINOS_WITH_TPETRA_INST_COMPLEX_FLOAT
82# ifdef DEAL_II_HAVE_CXX20
83 static_assert(concepts::is_vector_space_vector<
84 Vector<std::complex<float>, MemorySpace::Host>>);
85 static_assert(concepts::is_vector_space_vector<
86 Vector<std::complex<float>, MemorySpace::Default>>);
87# endif
88 template class Vector<std::complex<float>, MemorySpace::Host>;
89 template class Vector<std::complex<float>, MemorySpace::Default>;
90 template Vector<std::complex<float>, MemorySpace::Host> &
91 Vector<std::complex<float>, MemorySpace::Host>::operator=
92 <std::complex<float>>(const ::Vector<std::complex<float>> &);
93 template Vector<std::complex<float>, MemorySpace::Default> &
94 Vector<std::complex<float>, MemorySpace::Default>::operator=
95 <std::complex<float>>(const ::Vector<std::complex<float>> &);
96 namespace internal
97 {
98 template class VectorReference<std::complex<float>, MemorySpace::Host>;
99 template class VectorReference<std::complex<float>, MemorySpace::Default>;
100 } // namespace internal
101# endif
102
103# ifdef DEAL_II_TRILINOS_WITH_TPETRA_INST_COMPLEX_DOUBLE
104# ifdef DEAL_II_HAVE_CXX20
105 static_assert(concepts::is_vector_space_vector<
106 Vector<std::complex<double>, MemorySpace::Host>>);
107 static_assert(concepts::is_vector_space_vector<
108 Vector<std::complex<double>, MemorySpace::Default>>);
109# endif
110 template class Vector<std::complex<double>, MemorySpace::Host>;
111 template class Vector<std::complex<double>, MemorySpace::Default>;
112 template Vector<std::complex<double>, MemorySpace::Host> &
113 Vector<std::complex<double>, MemorySpace::Host>::operator=
114 <std::complex<double>>(const ::Vector<std::complex<double>> &);
115 template Vector<std::complex<double>, MemorySpace::Default> &
116 Vector<std::complex<double>, MemorySpace::Default>::operator=
117 <std::complex<double>>(const ::Vector<std::complex<double>> &);
118 namespace internal
119 {
120 template class VectorReference<std::complex<double>, MemorySpace::Host>;
121 template class VectorReference<std::complex<double>,
122 MemorySpace::Default>;
123 } // namespace internal
124# endif
125# endif
126 } // namespace TpetraWrappers
127} // namespace LinearAlgebra
128
129# endif
130
131
132#endif
#define DEAL_II_NAMESPACE_OPEN
Definition config.h:38
#define DEAL_II_NAMESPACE_CLOSE
Definition config.h:39