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
read_write_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) 2015 - 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
14#include <deal.II/lac/read_write_vector.templates.h>
15
16#include <complex>
17
19
20#include "lac/read_write_vector.inst"
21
22namespace LinearAlgebra
23{
24 // do a few functions that currently don't fit the scheme because they have
25 // two template arguments that need to be different (the case of same
26 // arguments is covered by the default copy constructor and copy operator that
27 // is declared separately)
28#ifndef DOXYGEN
29
30# define TEMPL_COPY_CONSTRUCTOR(S1, S2) \
31 template ReadWriteVector<S1> &ReadWriteVector<S1>::operator= \
32 <S2>(const ReadWriteVector<S2> &)
33
34 TEMPL_COPY_CONSTRUCTOR(double, float);
35 TEMPL_COPY_CONSTRUCTOR(float, double);
36# ifdef DEAL_II_WITH_COMPLEX_VALUES
37 TEMPL_COPY_CONSTRUCTOR(std::complex<double>, std::complex<float>);
38 TEMPL_COPY_CONSTRUCTOR(std::complex<float>, std::complex<double>);
39# endif
40
41# undef TEMPL_COPY_CONSTRUCTOR
42
43
44
45 template void
49 const std::shared_ptr<const Utilities::MPI::CommunicationPatternBase> &);
50 template void
54 const std::shared_ptr<const Utilities::MPI::CommunicationPatternBase> &);
55
56 template void
60 const std::shared_ptr<const Utilities::MPI::CommunicationPatternBase> &);
61 template void
65 const std::shared_ptr<const Utilities::MPI::CommunicationPatternBase> &);
66# ifdef DEAL_II_WITH_COMPLEX_VALUES
67 template void
69 const distributed::Vector<std::complex<float>, ::MemorySpace::Host>
70 &,
72 const std::shared_ptr<const Utilities::MPI::CommunicationPatternBase> &);
73
74 template void
76 const distributed::Vector<std::complex<double>, ::MemorySpace::Host>
77 &,
79 const std::shared_ptr<const Utilities::MPI::CommunicationPatternBase> &);
80# endif
81
82
83
84# ifdef DEAL_II_TRILINOS_WITH_TPETRA_INST_FLOAT
85 template void
87 const LinearAlgebra::TpetraWrappers::Vector<float, MemorySpace::Host> &,
89 const std::shared_ptr<const Utilities::MPI::CommunicationPatternBase> &);
90 template void
92 const LinearAlgebra::TpetraWrappers::Vector<float, MemorySpace::Default> &,
94 const std::shared_ptr<const Utilities::MPI::CommunicationPatternBase> &);
95 template void
97 const LinearAlgebra::TpetraWrappers::Vector<float, MemorySpace::Host> &,
99 const std::shared_ptr<const Utilities::MPI::CommunicationPatternBase> &);
100 template void
102 const LinearAlgebra::TpetraWrappers::Vector<float, MemorySpace::Default> &,
104 const std::shared_ptr<const Utilities::MPI::CommunicationPatternBase> &);
105# endif
106# ifdef DEAL_II_TRILINOS_WITH_TPETRA_INST_DOUBLE
107 template void
109 const LinearAlgebra::TpetraWrappers::Vector<double, MemorySpace::Host> &,
111 const std::shared_ptr<const Utilities::MPI::CommunicationPatternBase> &);
112 template void
114 const LinearAlgebra::TpetraWrappers::Vector<double, MemorySpace::Default> &,
116 const std::shared_ptr<const Utilities::MPI::CommunicationPatternBase> &);
117 template void
119 const LinearAlgebra::TpetraWrappers::Vector<double, MemorySpace::Host> &,
121 const std::shared_ptr<const Utilities::MPI::CommunicationPatternBase> &);
122 template void
124 const LinearAlgebra::TpetraWrappers::Vector<double, MemorySpace::Default> &,
126 const std::shared_ptr<const Utilities::MPI::CommunicationPatternBase> &);
127# endif
128# ifdef DEAL_II_WITH_COMPLEX_VALUES
129# ifdef DEAL_II_TRILINOS_WITH_TPETRA_INST_COMPLEX_FLOAT
130 template void
131 ReadWriteVector<std::complex<float>>::import_elements(
132 const LinearAlgebra::TpetraWrappers::Vector<std::complex<float>,
133 MemorySpace::Host> &,
135 const std::shared_ptr<const Utilities::MPI::CommunicationPatternBase> &);
136 template void
137 ReadWriteVector<std::complex<float>>::import_elements(
138 const LinearAlgebra::TpetraWrappers::Vector<std::complex<float>,
139 MemorySpace::Default> &,
141 const std::shared_ptr<const Utilities::MPI::CommunicationPatternBase> &);
142 template void
143 ReadWriteVector<std::complex<double>>::import_elements(
144 const LinearAlgebra::TpetraWrappers::Vector<std::complex<float>,
145 MemorySpace::Host> &,
147 const std::shared_ptr<const Utilities::MPI::CommunicationPatternBase> &);
148 template void
149 ReadWriteVector<std::complex<double>>::import_elements(
150 const LinearAlgebra::TpetraWrappers::Vector<std::complex<float>,
151 MemorySpace::Default> &,
153 const std::shared_ptr<const Utilities::MPI::CommunicationPatternBase> &);
154# endif
155# ifdef DEAL_II_TRILINOS_WITH_TPETRA_INST_COMPLEX_DOUBLE
156 template void
157 ReadWriteVector<std::complex<double>>::import_elements(
158 const LinearAlgebra::TpetraWrappers::Vector<std::complex<double>,
159 MemorySpace::Host> &,
161 const std::shared_ptr<const Utilities::MPI::CommunicationPatternBase> &);
162 template void
163 ReadWriteVector<std::complex<double>>::import_elements(
164 const LinearAlgebra::TpetraWrappers::Vector<std::complex<double>,
165 MemorySpace::Default> &,
167 const std::shared_ptr<const Utilities::MPI::CommunicationPatternBase> &);
168 template void
169 ReadWriteVector<std::complex<float>>::import_elements(
170 const LinearAlgebra::TpetraWrappers::Vector<std::complex<double>,
171 MemorySpace::Host> &,
173 const std::shared_ptr<const Utilities::MPI::CommunicationPatternBase> &);
174 template void
175 ReadWriteVector<std::complex<float>>::import_elements(
176 const LinearAlgebra::TpetraWrappers::Vector<std::complex<double>,
177 MemorySpace::Default> &,
179 const std::shared_ptr<const Utilities::MPI::CommunicationPatternBase> &);
180# endif
181# endif
182
183#endif
184} // namespace LinearAlgebra
185
void import_elements(const ::Vector< Number > &vec, VectorOperation::values operation, const std::shared_ptr< const Utilities::MPI::CommunicationPatternBase > &communication_pattern={})
#define DEAL_II_NAMESPACE_OPEN
Definition config.h:38
#define DEAL_II_NAMESPACE_CLOSE
Definition config.h:39