deal.II version GIT relicensing-6842-g793a97d2aa 2026-10-02 14:00: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
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
47 const distributed::Vector<float, ::MemorySpace::Host> &,
49 const std::shared_ptr<const Utilities::MPI::CommunicationPatternBase> &);
50 template void
52 const distributed::Vector<float, ::MemorySpace::Default> &,
54 const std::shared_ptr<const Utilities::MPI::CommunicationPatternBase> &);
55
56 template void
58 const distributed::Vector<double, ::MemorySpace::Host> &,
60 const std::shared_ptr<const Utilities::MPI::CommunicationPatternBase> &);
61 template void
63 const distributed::Vector<double, ::MemorySpace::Default> &,
65 const std::shared_ptr<const Utilities::MPI::CommunicationPatternBase> &);
66# ifdef DEAL_II_WITH_COMPLEX_VALUES
67 template void
68 ReadWriteVector<std::complex<float>>::import_elements(
69 const distributed::Vector<std::complex<float>, ::MemorySpace::Host>
70 &,
72 const std::shared_ptr<const Utilities::MPI::CommunicationPatternBase> &);
73
74 template void
75 ReadWriteVector<std::complex<double>>::import_elements(
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
89 const std::shared_ptr<const Utilities::MPI::CommunicationPatternBase> &);
90 template void
93 &,
95 template void
99 const std::shared_ptr<const Utilities::MPI::CommunicationPatternBase> &);
100 template void
105 template void
109 const std::shared_ptr<const Utilities::MPI::CommunicationPatternBase> &);
110 template void
113 &,
115 template void
119 const std::shared_ptr<const Utilities::MPI::CommunicationPatternBase> &);
120 template void
125# endif
126# ifdef DEAL_II_TRILINOS_WITH_TPETRA_INST_DOUBLE
127 template void
131 const std::shared_ptr<const Utilities::MPI::CommunicationPatternBase> &);
132 template void
135 &,
137 template void
141 const std::shared_ptr<const Utilities::MPI::CommunicationPatternBase> &);
142 template void
147 template void
151 const std::shared_ptr<const Utilities::MPI::CommunicationPatternBase> &);
152 template void
155 &,
157 template void
161 const std::shared_ptr<const Utilities::MPI::CommunicationPatternBase> &);
162 template void
167# endif
168# ifdef DEAL_II_WITH_COMPLEX_VALUES
169# ifdef DEAL_II_TRILINOS_WITH_TPETRA_INST_COMPLEX_FLOAT
170 template void
171 ReadWriteVector<std::complex<float>>::import_elements(
172 const LinearAlgebra::TpetraWrappers::Vector<std::complex<float>,
175 const std::shared_ptr<const Utilities::MPI::CommunicationPatternBase> &);
176 template void
177 ReadWriteVector<std::complex<float>>::import_elements(
178 const LinearAlgebra::TpetraWrappers::BlockVector<std::complex<float>,
181 template void
182 ReadWriteVector<std::complex<float>>::import_elements(
183 const LinearAlgebra::TpetraWrappers::Vector<std::complex<float>,
186 const std::shared_ptr<const Utilities::MPI::CommunicationPatternBase> &);
187 template void
188 ReadWriteVector<std::complex<float>>::import_elements(
189 const LinearAlgebra::TpetraWrappers::BlockVector<std::complex<float>,
192 template void
193 ReadWriteVector<std::complex<double>>::import_elements(
194 const LinearAlgebra::TpetraWrappers::Vector<std::complex<float>,
197 const std::shared_ptr<const Utilities::MPI::CommunicationPatternBase> &);
198 template void
199 ReadWriteVector<std::complex<double>>::import_elements(
200 const LinearAlgebra::TpetraWrappers::BlockVector<std::complex<float>,
203 template void
204 ReadWriteVector<std::complex<double>>::import_elements(
205 const LinearAlgebra::TpetraWrappers::Vector<std::complex<float>,
208 const std::shared_ptr<const Utilities::MPI::CommunicationPatternBase> &);
209 template void
210 ReadWriteVector<std::complex<double>>::import_elements(
211 const LinearAlgebra::TpetraWrappers::BlockVector<std::complex<float>,
214# endif
215# ifdef DEAL_II_TRILINOS_WITH_TPETRA_INST_COMPLEX_DOUBLE
216 template void
217 ReadWriteVector<std::complex<double>>::import_elements(
218 const LinearAlgebra::TpetraWrappers::Vector<std::complex<double>,
221 const std::shared_ptr<const Utilities::MPI::CommunicationPatternBase> &);
222 template void
223 ReadWriteVector<std::complex<double>>::import_elements(
224 const LinearAlgebra::TpetraWrappers::BlockVector<std::complex<double>,
227 template void
228 ReadWriteVector<std::complex<double>>::import_elements(
229 const LinearAlgebra::TpetraWrappers::Vector<std::complex<double>,
232 const std::shared_ptr<const Utilities::MPI::CommunicationPatternBase> &);
233 template void
234 ReadWriteVector<std::complex<double>>::import_elements(
235 const LinearAlgebra::TpetraWrappers::BlockVector<std::complex<double>,
238 template void
239 ReadWriteVector<std::complex<float>>::import_elements(
240 const LinearAlgebra::TpetraWrappers::Vector<std::complex<double>,
243 const std::shared_ptr<const Utilities::MPI::CommunicationPatternBase> &);
244 template void
245 ReadWriteVector<std::complex<float>>::import_elements(
246 const LinearAlgebra::TpetraWrappers::BlockVector<std::complex<double>,
249 template void
250 ReadWriteVector<std::complex<float>>::import_elements(
251 const LinearAlgebra::TpetraWrappers::Vector<std::complex<double>,
254 const std::shared_ptr<const Utilities::MPI::CommunicationPatternBase> &);
255 template void
256 ReadWriteVector<std::complex<float>>::import_elements(
257 const LinearAlgebra::TpetraWrappers::BlockVector<std::complex<double>,
260# endif
261# endif
262
263#endif
264} // namespace LinearAlgebra
265
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