Reference documentation for deal.II version GIT e22cb6a53e 2023-09-21 14:00: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\}}\)
affine_constraints.cc
Go to the documentation of this file.
1 // ---------------------------------------------------------------------
2 //
3 // Copyright (C) 1998 - 2023 by the deal.II authors
4 //
5 // This file is part of the deal.II library.
6 //
7 // The deal.II library is free software; you can use it, redistribute
8 // it, and/or modify it under the terms of the GNU Lesser General
9 // Public License as published by the Free Software Foundation; either
10 // version 2.1 of the License, or (at your option) any later version.
11 // The full text of the license can be found in the file LICENSE.md at
12 // the top level directory of deal.II.
13 //
14 // ---------------------------------------------------------------------
15 
17 #include <deal.II/lac/affine_constraints.templates.h>
18 
19 
21 
22 #include "affine_constraints.inst"
23 
24 /*
25  * Note: You probably do not want to add your custom instantiation down
26  * here but use affine_constraints.inst.in instead. We use the following
27  * three macros for PETSc and Trilinos types because we lack a mechanism
28  * for iterating over two "zipped" lists (we have to match trilinos/petsc
29  * matrix and vector types).
30  */
31 
32 #define INSTANTIATE_DLTG_VECTOR(VectorType) \
33  template void AffineConstraints<VectorType::value_type>::condense< \
34  VectorType>(const VectorType &, VectorType &) const; \
35  template void \
36  AffineConstraints<VectorType::value_type>::condense<VectorType>( \
37  VectorType &) const; \
38  template void \
39  AffineConstraints<VectorType::value_type>::distribute_local_to_global< \
40  VectorType>( \
41  const Vector<VectorType::value_type> &, \
42  const std::vector<AffineConstraints<VectorType::value_type>::size_type> &, \
43  VectorType &, \
44  const FullMatrix<VectorType::value_type> &) const; \
45  template void \
46  AffineConstraints<VectorType::value_type>::distribute_local_to_global< \
47  VectorType>( \
48  const Vector<VectorType::value_type> &, \
49  const std::vector<AffineConstraints<VectorType::value_type>::size_type> &, \
50  const std::vector<AffineConstraints<VectorType::value_type>::size_type> &, \
51  VectorType &, \
52  const FullMatrix<VectorType::value_type> &, \
53  bool) const
54 
55 #define INSTANTIATE_DLTG_VECTORMATRIX(MatrixType, VectorType) \
56  template void AffineConstraints<MatrixType::value_type>:: \
57  distribute_local_to_global<MatrixType, VectorType>( \
58  const FullMatrix<MatrixType::value_type> &, \
59  const Vector<VectorType::value_type> &, \
60  const std::vector<AffineConstraints::size_type> &, \
61  MatrixType &, \
62  VectorType &, \
63  bool, \
64  std::integral_constant<bool, false>) const
65 
66 #define INSTANTIATE_DLTG_BLOCK_VECTORMATRIX(MatrixType, VectorType) \
67  template void AffineConstraints<MatrixType::value_type>:: \
68  distribute_local_to_global<MatrixType, VectorType>( \
69  const FullMatrix<MatrixType::value_type> &, \
70  const Vector<VectorType::value_type> &, \
71  const std::vector<AffineConstraints::size_type> &, \
72  MatrixType &, \
73  VectorType &, \
74  bool, \
75  std::integral_constant<bool, true>) const
76 
77 #define INSTANTIATE_DLTG_MATRIX(MatrixType) \
78  template void \
79  AffineConstraints<MatrixType::value_type>::distribute_local_to_global< \
80  MatrixType>(const FullMatrix<MatrixType::value_type> &, \
81  const std::vector<AffineConstraints::size_type> &, \
82  const std::vector<AffineConstraints::size_type> &, \
83  MatrixType &) const; \
84  template void \
85  AffineConstraints<MatrixType::value_type>::distribute_local_to_global< \
86  MatrixType>(const FullMatrix<MatrixType::value_type> &, \
87  const std::vector<AffineConstraints::size_type> &, \
88  const AffineConstraints<MatrixType::value_type> &, \
89  const std::vector<AffineConstraints::size_type> &, \
90  MatrixType &) const
91 
92 #ifdef DEAL_II_WITH_PETSC
95 
103 
108 
112 # ifndef DOXYGEN
113 # ifdef DEAL_II_PETSC_WITH_COMPLEX
114 template void
115 ::AffineConstraints<double>::distribute<
118 # endif
119 # endif
120 #endif
121 
122 #ifdef DEAL_II_WITH_TRILINOS
124 
130 
138 
141 
142 # ifndef DOXYGEN
143 # if defined(DEAL_II_TRILINOS_WITH_TPETRA) && defined(HAVE_TPETRA_INST_FLOAT)
144 // FIXME: This mixed variant is needed for multigrid and matrix free.
145 template void
146 ::AffineConstraints<double>::distribute<
149 # endif
150 # endif
151 #endif
152 
153 #ifndef DOXYGEN
154 namespace internal
155 {
156  namespace AffineConstraintsImplementation
157  {
158  template void
159  set_zero_all(
160  const std::vector<types::global_dof_index> &cm,
162 
163  template void
164  set_zero_all(
165  const std::vector<types::global_dof_index> &cm,
167  } // namespace AffineConstraintsImplementation
168 } // namespace internal
169 
170 template void
174 
175 template void
179 #endif
180 
#define INSTANTIATE_DLTG_VECTORMATRIX(MatrixType, VectorType)
#define INSTANTIATE_DLTG_VECTOR(VectorType)
#define INSTANTIATE_DLTG_BLOCK_VECTORMATRIX(MatrixType, VectorType)
#define INSTANTIATE_DLTG_MATRIX(MatrixType)
Definition: vector.h:110
#define DEAL_II_NAMESPACE_OPEN
Definition: config.h:477
#define DEAL_II_NAMESPACE_CLOSE
Definition: config.h:478