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
affine_constraints.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) 2018 - 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/affine_constraints.templates.h>
15
16#include <complex>
17
19
20#include "lac/affine_constraints.inst"
21
22/*
23 * Note: You probably do not want to add your custom instantiation down
24 * here but use affine_constraints.inst.in instead. We use the following
25 * three macros for PETSc and Trilinos types because we lack a mechanism
26 * for iterating over two "zipped" lists (we have to match trilinos/petsc
27 * matrix and vector types).
28 */
29
30#define INSTANTIATE_DLTG_VECTOR(VectorType) \
31 template void AffineConstraints<VectorType::value_type>::condense< \
32 VectorType>(const VectorType &, VectorType &) const; \
33 template void \
34 AffineConstraints<VectorType::value_type>::condense<VectorType>( \
35 VectorType &) const; \
36 template void \
37 AffineConstraints<VectorType::value_type>::distribute_local_to_global< \
38 VectorType>( \
39 const Vector<VectorType::value_type> &, \
40 const std::vector<AffineConstraints<VectorType::value_type>::size_type> &, \
41 VectorType &, \
42 const FullMatrix<VectorType::value_type> &) const; \
43 template void \
44 AffineConstraints<VectorType::value_type>::distribute_local_to_global< \
45 VectorType>( \
46 const Vector<VectorType::value_type> &, \
47 const std::vector<AffineConstraints<VectorType::value_type>::size_type> &, \
48 const std::vector<AffineConstraints<VectorType::value_type>::size_type> &, \
49 VectorType &, \
50 const FullMatrix<VectorType::value_type> &, \
51 bool) const
52
53#define INSTANTIATE_DLTG_VECTORMATRIX(MatrixType, VectorType) \
54 template void AffineConstraints<MatrixType::value_type>:: \
55 distribute_local_to_global<MatrixType, VectorType>( \
56 const FullMatrix<MatrixType::value_type> &, \
57 const Vector<VectorType::value_type> &, \
58 const std::vector<AffineConstraints::size_type> &, \
59 MatrixType &, \
60 VectorType &, \
61 bool, \
62 std::bool_constant<false>) const
63
64#define INSTANTIATE_DLTG_BLOCK_VECTORMATRIX(MatrixType, VectorType) \
65 template void AffineConstraints<MatrixType::value_type>:: \
66 distribute_local_to_global<MatrixType, VectorType>( \
67 const FullMatrix<MatrixType::value_type> &, \
68 const Vector<VectorType::value_type> &, \
69 const std::vector<AffineConstraints::size_type> &, \
70 MatrixType &, \
71 VectorType &, \
72 bool, \
73 std::bool_constant<true>) const
74
75#define INSTANTIATE_DLTG_MATRIX(MatrixType) \
76 template void \
77 AffineConstraints<MatrixType::value_type>::distribute_local_to_global< \
78 MatrixType>(const FullMatrix<MatrixType::value_type> &, \
79 const std::vector<AffineConstraints::size_type> &, \
80 const std::vector<AffineConstraints::size_type> &, \
81 MatrixType &) const; \
82 template void \
83 AffineConstraints<MatrixType::value_type>::distribute_local_to_global< \
84 MatrixType>(const FullMatrix<MatrixType::value_type> &, \
85 const std::vector<AffineConstraints::size_type> &, \
86 const AffineConstraints<MatrixType::value_type> &, \
87 const std::vector<AffineConstraints::size_type> &, \
88 MatrixType &) const
89
90#ifdef DEAL_II_WITH_PETSC
93
105
110
115# ifndef DOXYGEN
116# ifdef DEAL_II_PETSC_WITH_COMPLEX
117template void
118::AffineConstraints<double>::distribute<
121# endif
122# endif
123#endif
124
125#ifdef DEAL_II_WITH_TRILINOS
126# if defined(DEAL_II_TRILINOS_WITH_EPETRA)
128
134
142
145# endif
146
147# ifndef DOXYGEN
148# if defined(DEAL_II_TRILINOS_WITH_TPETRA) && \
149 defined(DEAL_II_TRILINOS_WITH_TPETRA_INST_FLOAT)
150// FIXME: This mixed variant is needed for multigrid and matrix free.
151template void
152::AffineConstraints<double>::distribute<
155 const;
156template void
157::AffineConstraints<double>::distribute<
160 const;
161# endif
162# endif
163#endif
164
165#ifndef DOXYGEN
166namespace internal
167{
168 namespace AffineConstraintsImplementation
169 {
170 template void
171 set_zero_all(
172 const std::vector<types::global_dof_index> &cm,
174
175 template void
176 set_zero_all(
177 const std::vector<types::global_dof_index> &cm,
179 } // namespace AffineConstraintsImplementation
180} // namespace internal
181
182template void
186
187template void
191#endif
192
#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:38
#define DEAL_II_NAMESPACE_CLOSE
Definition config.h:39