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
precondition_block_ez.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) 2003 - 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
13#include <deal.II/base/config.h>
14
15#include <deal.II/base/table.h>
16
18#include <deal.II/lac/precondition_block.templates.h>
20
21#include <ostream>
22
24
25
26// explicit instantiations for "float" PreconditionBlock
27template class PreconditionBlock<SparseMatrixEZ<float>, float>;
28
29// the instantiation for class PreconditionBlock<SparseMatrixEZ<float>, double>
30// is skipped because it does not make sense to have inverse block matrices with
31// higher precision than the matrix itself
32
33
34// explicit instantiations for "double" PreconditionBlock
35template class PreconditionBlock<SparseMatrixEZ<double>, float>;
36
37template class PreconditionBlock<SparseMatrixEZ<double>, double>;
38
39
40/*--------------------- PreconditionBlockJacobi -----------------------*/
41
42
43// explicit instantiations for "float" PreconditionBlock
45
46template void
49 const Vector<float> &) const;
50template void
53 const Vector<double> &) const;
54template void
57 const Vector<float> &) const;
58template void
61 const Vector<double> &) const;
62template void
63PreconditionBlockJacobi<SparseMatrixEZ<float>, float>::vmult_add<float>(
65 const Vector<float> &) const;
66template void
67PreconditionBlockJacobi<SparseMatrixEZ<float>, float>::vmult_add<double>(
69 const Vector<double> &) const;
70template void
71PreconditionBlockJacobi<SparseMatrixEZ<float>, float>::Tvmult_add<float>(
73 const Vector<float> &) const;
74template void
75PreconditionBlockJacobi<SparseMatrixEZ<float>, float>::Tvmult_add<double>(
77 const Vector<double> &) const;
78
80
81template void
84 const Vector<float> &) const;
85template void
88 const Vector<double> &) const;
89template void
92 const Vector<float> &) const;
93template void
96 const Vector<double> &) const;
97template void
100 const Vector<float> &) const;
101template void
102PreconditionBlockJacobi<SparseMatrixEZ<double>, float>::vmult_add<double>(
104 const Vector<double> &) const;
105template void
106PreconditionBlockJacobi<SparseMatrixEZ<double>, float>::Tvmult_add<float>(
108 const Vector<float> &) const;
109template void
110PreconditionBlockJacobi<SparseMatrixEZ<double>, float>::Tvmult_add<double>(
112 const Vector<double> &) const;
113
115
116template void
119 const Vector<float> &) const;
120template void
123 const Vector<double> &) const;
124template void
127 const Vector<float> &) const;
128template void
131 const Vector<double> &) const;
132template void
133PreconditionBlockJacobi<SparseMatrixEZ<double>, double>::vmult_add<float>(
135 const Vector<float> &) const;
136template void
137PreconditionBlockJacobi<SparseMatrixEZ<double>, double>::vmult_add<double>(
139 const Vector<double> &) const;
140template void
141PreconditionBlockJacobi<SparseMatrixEZ<double>, double>::Tvmult_add<float>(
143 const Vector<float> &) const;
144template void
145PreconditionBlockJacobi<SparseMatrixEZ<double>, double>::Tvmult_add<double>(
147 const Vector<double> &) const;
148
149/*--------------------- PreconditionBlockGaussSeidel -----------------------*/
150
151
152// explicit instantiations for "float" PreconditionBlock
153template class PreconditionBlockSOR<SparseMatrixEZ<float>, float>;
154
155template void
158 const Vector<float> &) const;
159template void
160PreconditionBlockSOR<SparseMatrixEZ<float>, float>::vmult<double>(
162 const Vector<double> &) const;
163template void
164PreconditionBlockSOR<SparseMatrixEZ<float>, float>::Tvmult<float>(
166 const Vector<float> &) const;
167template void
168PreconditionBlockSOR<SparseMatrixEZ<float>, float>::Tvmult<double>(
170 const Vector<double> &) const;
171
172
173// the instantiation for class PreconditionBlockSOR<SparseMatrixEZ<float>,
174// double> is skipped because it does not make sense to have inverse block
175// matrices with higher precision than the matrix itself
176
177
178// explicit instantiations for "double" PreconditionBlockSOR
180
181
182template void
185 const Vector<float> &) const;
186template void
189 const Vector<double> &) const;
190template void
193 const Vector<float> &) const;
194template void
195PreconditionBlockSOR<SparseMatrixEZ<double>, float>::Tvmult<double>(
197 const Vector<double> &) const;
198template void
199PreconditionBlockSOR<SparseMatrixEZ<double>, float>::vmult_add<float>(
201 const Vector<float> &) const;
202template void
203PreconditionBlockSOR<SparseMatrixEZ<double>, float>::vmult_add<double>(
205 const Vector<double> &) const;
206template void
207PreconditionBlockSOR<SparseMatrixEZ<double>, float>::Tvmult_add<float>(
209 const Vector<float> &) const;
210template void
211PreconditionBlockSOR<SparseMatrixEZ<double>, float>::Tvmult_add<double>(
213 const Vector<double> &) const;
214
215template class PreconditionBlockSOR<SparseMatrixEZ<double>, double>;
216
217template void
220 const Vector<float> &) const;
221template void
222PreconditionBlockSOR<SparseMatrixEZ<double>, double>::vmult<double>(
224 const Vector<double> &) const;
225template void
226PreconditionBlockSOR<SparseMatrixEZ<double>, double>::Tvmult<float>(
228 const Vector<float> &) const;
229template void
230PreconditionBlockSOR<SparseMatrixEZ<double>, double>::Tvmult<double>(
232 const Vector<double> &) const;
233template void
234PreconditionBlockSOR<SparseMatrixEZ<double>, double>::vmult_add<float>(
236 const Vector<float> &) const;
237template void
238PreconditionBlockSOR<SparseMatrixEZ<double>, double>::vmult_add<double>(
240 const Vector<double> &) const;
241template void
242PreconditionBlockSOR<SparseMatrixEZ<double>, double>::Tvmult_add<float>(
244 const Vector<float> &) const;
245template void
246PreconditionBlockSOR<SparseMatrixEZ<double>, double>::Tvmult_add<double>(
248 const Vector<double> &) const;
249
250
251/*--------------------- PreconditionBlockSSOR -----------------------*/
252
253
254// explicit instantiations for "float" PreconditionBlock
256
257template void
260 const Vector<float> &) const;
261template void
264 const Vector<double> &) const;
265template void
268 const Vector<float> &) const;
269template void
270PreconditionBlockSSOR<SparseMatrixEZ<float>, float>::Tvmult<double>(
272 const Vector<double> &) const;
273
274
275// the instantiation for class PreconditionBlockSSOR<SparseMatrixEZ<float>,
276// double> is skipped because it does not make sense to have inverse block
277// matrices with higher precision than the matrix itself
278
279
280// explicit instantiations for "double" PreconditionBlockSSOR
282
283
284template void
287 const Vector<float> &) const;
288template void
291 const Vector<double> &) const;
292template void
295 const Vector<float> &) const;
296template void
299 const Vector<double> &) const;
300
302
303template void
306 const Vector<float> &) const;
307template void
310 const Vector<double> &) const;
311template void
314 const Vector<float> &) const;
315template void
316PreconditionBlockSSOR<SparseMatrixEZ<double>, double>::Tvmult<double>(
318 const Vector<double> &) const;
319
#define DEAL_II_NAMESPACE_OPEN
Definition config.h:38
#define DEAL_II_NAMESPACE_CLOSE
Definition config.h:39