Reference documentation for deal.II version 9.5.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
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
114template 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.
145template void
146::AffineConstraints<double>::distribute<
149# endif
150# endif
151#endif
152
153#ifndef DOXYGEN
154namespace 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
170template void
174
175template 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)
#define DEAL_II_NAMESPACE_OPEN
Definition config.h:472
#define DEAL_II_NAMESPACE_CLOSE
Definition config.h:473