Reference documentation for deal.II version GIT relicensing-437-g81ec864850 2024-04-19 07:30:02+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: LGPL-2.1-or-later
4// Copyright (C) 2015 - 2023 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
16#include <deal.II/lac/read_write_vector.templates.h>
17
19
20#include "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
29#define TEMPL_COPY_CONSTRUCTOR(S1, S2) \
30 template ReadWriteVector<S1> &ReadWriteVector<S1>::operator= \
31 <S2>(const ReadWriteVector<S2> &)
32
33 TEMPL_COPY_CONSTRUCTOR(double, float);
34 TEMPL_COPY_CONSTRUCTOR(float, double);
35#ifdef DEAL_II_WITH_COMPLEX_VALUES
36 TEMPL_COPY_CONSTRUCTOR(std::complex<double>, std::complex<float>);
37 TEMPL_COPY_CONSTRUCTOR(std::complex<float>, std::complex<double>);
38#endif
39
40#undef TEMPL_COPY_CONSTRUCTOR
41
42#ifndef DOXYGEN
43 template void
47 const std::shared_ptr<const Utilities::MPI::CommunicationPatternBase> &);
48 template void
52 const std::shared_ptr<const Utilities::MPI::CommunicationPatternBase> &);
53
54 template void
58 const std::shared_ptr<const Utilities::MPI::CommunicationPatternBase> &);
59 template void
63 const std::shared_ptr<const Utilities::MPI::CommunicationPatternBase> &);
64# ifdef DEAL_II_WITH_COMPLEX_VALUES
65 template void
67 const distributed::Vector<std::complex<float>, ::MemorySpace::Host>
68 &,
70 const std::shared_ptr<const Utilities::MPI::CommunicationPatternBase> &);
71
72 template void
74 const distributed::Vector<std::complex<double>, ::MemorySpace::Host>
75 &,
77 const std::shared_ptr<const Utilities::MPI::CommunicationPatternBase> &);
78# endif
79
80
81
82# ifdef HAVE_TPETRA_INST_FLOAT
83 template void
87 const std::shared_ptr<const Utilities::MPI::CommunicationPatternBase> &);
88# endif
89# ifdef HAVE_TPETRA_INST_DOUBLE
90 template void
94 const std::shared_ptr<const Utilities::MPI::CommunicationPatternBase> &);
95# endif
96# ifdef DEAL_II_WITH_COMPLEX_VALUES
97# ifdef HAVE_TPETRA_INST_COMPLEX_FLOAT
98 template void
100 const LinearAlgebra::TpetraWrappers::Vector<std::complex<float>> &,
102 const std::shared_ptr<const Utilities::MPI::CommunicationPatternBase> &);
103# endif
104# ifdef HAVE_TPETRA_INST_COMPLEX_DOUBLE
105 template void
106 ReadWriteVector<std::complex<double>>::import_elements(
107 const LinearAlgebra::TpetraWrappers::Vector<std::complex<double>> &,
109 const std::shared_ptr<const Utilities::MPI::CommunicationPatternBase> &);
110# endif
111# endif
112
113#endif
114} // namespace LinearAlgebra
115
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:502
#define DEAL_II_NAMESPACE_CLOSE
Definition config.h:503
#define TEMPL_COPY_CONSTRUCTOR(S1, S2)