deal.II version GIT relicensing-2291-g668cd86249 2024-12-24 11:30:00+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: LGPL-2.1-or-later
4// Copyright (C) 2018 - 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/affine_constraints.templates.h>
17
18
20
21#include "affine_constraints.inst"
22
23/*
24 * Note: You probably do not want to add your custom instantiation down
25 * here but use affine_constraints.inst.in instead. We use the following
26 * three macros for PETSc and Trilinos types because we lack a mechanism
27 * for iterating over two "zipped" lists (we have to match trilinos/petsc
28 * matrix and vector types).
29 */
30
31#define INSTANTIATE_DLTG_VECTOR(VectorType) \
32 template void AffineConstraints<VectorType::value_type>::condense< \
33 VectorType>(const VectorType &, VectorType &) const; \
34 template void \
35 AffineConstraints<VectorType::value_type>::condense<VectorType>( \
36 VectorType &) const; \
37 template void \
38 AffineConstraints<VectorType::value_type>::distribute_local_to_global< \
39 VectorType>( \
40 const Vector<VectorType::value_type> &, \
41 const std::vector<AffineConstraints<VectorType::value_type>::size_type> &, \
42 VectorType &, \
43 const FullMatrix<VectorType::value_type> &) const; \
44 template void \
45 AffineConstraints<VectorType::value_type>::distribute_local_to_global< \
46 VectorType>( \
47 const Vector<VectorType::value_type> &, \
48 const std::vector<AffineConstraints<VectorType::value_type>::size_type> &, \
49 const std::vector<AffineConstraints<VectorType::value_type>::size_type> &, \
50 VectorType &, \
51 const FullMatrix<VectorType::value_type> &, \
52 bool) const
53
54#define INSTANTIATE_DLTG_VECTORMATRIX(MatrixType, VectorType) \
55 template void AffineConstraints<MatrixType::value_type>:: \
56 distribute_local_to_global<MatrixType, VectorType>( \
57 const FullMatrix<MatrixType::value_type> &, \
58 const Vector<VectorType::value_type> &, \
59 const std::vector<AffineConstraints::size_type> &, \
60 MatrixType &, \
61 VectorType &, \
62 bool, \
63 std::bool_constant<false>) const
64
65#define INSTANTIATE_DLTG_BLOCK_VECTORMATRIX(MatrixType, VectorType) \
66 template void AffineConstraints<MatrixType::value_type>:: \
67 distribute_local_to_global<MatrixType, VectorType>( \
68 const FullMatrix<MatrixType::value_type> &, \
69 const Vector<VectorType::value_type> &, \
70 const std::vector<AffineConstraints::size_type> &, \
71 MatrixType &, \
72 VectorType &, \
73 bool, \
74 std::bool_constant<true>) const
75
76#define INSTANTIATE_DLTG_MATRIX(MatrixType) \
77 template void \
78 AffineConstraints<MatrixType::value_type>::distribute_local_to_global< \
79 MatrixType>(const FullMatrix<MatrixType::value_type> &, \
80 const std::vector<AffineConstraints::size_type> &, \
81 const std::vector<AffineConstraints::size_type> &, \
82 MatrixType &) const; \
83 template void \
84 AffineConstraints<MatrixType::value_type>::distribute_local_to_global< \
85 MatrixType>(const FullMatrix<MatrixType::value_type> &, \
86 const std::vector<AffineConstraints::size_type> &, \
87 const AffineConstraints<MatrixType::value_type> &, \
88 const std::vector<AffineConstraints::size_type> &, \
89 MatrixType &) const
90
91#ifdef DEAL_II_WITH_PETSC
94
102
107
111# ifndef DOXYGEN
112# ifdef DEAL_II_PETSC_WITH_COMPLEX
113template void
114::AffineConstraints<double>::distribute<
117# endif
118# endif
119#endif
120
121#ifdef DEAL_II_WITH_TRILINOS
123
129
137
140
141# ifndef DOXYGEN
142# if defined(DEAL_II_TRILINOS_WITH_TPETRA) && defined(HAVE_TPETRA_INST_FLOAT)
143// FIXME: This mixed variant is needed for multigrid and matrix free.
144template void
145::AffineConstraints<double>::distribute<
148 const;
149template void
150::AffineConstraints<double>::distribute<
153 const;
154# endif
155# endif
156#endif
157
158#ifndef DOXYGEN
159namespace internal
160{
161 namespace AffineConstraintsImplementation
162 {
163 template void
164 set_zero_all(
165 const std::vector<types::global_dof_index> &cm,
167
168 template void
169 set_zero_all(
170 const std::vector<types::global_dof_index> &cm,
172 } // namespace AffineConstraintsImplementation
173} // namespace internal
174
175template void
179
180template void
184#endif
185
#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:498
#define DEAL_II_NAMESPACE_CLOSE
Definition config.h:499