deal.II version GIT relicensing-2287-g6548a49e0a 2024-12-20 18: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
precondition_block_ez.cc
Go to the documentation of this file.
1// ------------------------------------------------------------------------
2//
3// SPDX-License-Identifier: LGPL-2.1-or-later
4// Copyright (C) 2003 - 2018 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
15#include <deal.II/lac/precondition_block.templates.h>
17
19
20
21// explicit instantiations for "float" PreconditionBlock
22template class PreconditionBlock<SparseMatrixEZ<float>, float>;
23
24// the instantiation for class PreconditionBlock<SparseMatrixEZ<float>, double>
25// is skipped because it does not make sense to have inverse block matrices with
26// higher precision than the matrix itself
27
28
29// explicit instantiations for "double" PreconditionBlock
30template class PreconditionBlock<SparseMatrixEZ<double>, float>;
31
32template class PreconditionBlock<SparseMatrixEZ<double>, double>;
33
34
35/*--------------------- PreconditionBlockJacobi -----------------------*/
36
37
38// explicit instantiations for "float" PreconditionBlock
40
41template void
44 const Vector<float> &) const;
45template void
48 const Vector<double> &) const;
49template void
52 const Vector<float> &) const;
53template void
56 const Vector<double> &) const;
57template void
58PreconditionBlockJacobi<SparseMatrixEZ<float>, float>::vmult_add<float>(
60 const Vector<float> &) const;
61template void
62PreconditionBlockJacobi<SparseMatrixEZ<float>, float>::vmult_add<double>(
64 const Vector<double> &) const;
65template void
66PreconditionBlockJacobi<SparseMatrixEZ<float>, float>::Tvmult_add<float>(
68 const Vector<float> &) const;
69template void
70PreconditionBlockJacobi<SparseMatrixEZ<float>, float>::Tvmult_add<double>(
72 const Vector<double> &) const;
73
75
76template void
79 const Vector<float> &) const;
80template void
83 const Vector<double> &) const;
84template void
87 const Vector<float> &) const;
88template void
91 const Vector<double> &) const;
92template void
95 const Vector<float> &) const;
96template void
97PreconditionBlockJacobi<SparseMatrixEZ<double>, float>::vmult_add<double>(
99 const Vector<double> &) const;
100template void
101PreconditionBlockJacobi<SparseMatrixEZ<double>, float>::Tvmult_add<float>(
103 const Vector<float> &) const;
104template void
105PreconditionBlockJacobi<SparseMatrixEZ<double>, float>::Tvmult_add<double>(
107 const Vector<double> &) const;
108
110
111template void
114 const Vector<float> &) const;
115template void
118 const Vector<double> &) const;
119template void
122 const Vector<float> &) const;
123template void
126 const Vector<double> &) const;
127template void
128PreconditionBlockJacobi<SparseMatrixEZ<double>, double>::vmult_add<float>(
130 const Vector<float> &) const;
131template void
132PreconditionBlockJacobi<SparseMatrixEZ<double>, double>::vmult_add<double>(
134 const Vector<double> &) const;
135template void
136PreconditionBlockJacobi<SparseMatrixEZ<double>, double>::Tvmult_add<float>(
138 const Vector<float> &) const;
139template void
140PreconditionBlockJacobi<SparseMatrixEZ<double>, double>::Tvmult_add<double>(
142 const Vector<double> &) const;
143
144/*--------------------- PreconditionBlockGaussSeidel -----------------------*/
145
146
147// explicit instantiations for "float" PreconditionBlock
148template class PreconditionBlockSOR<SparseMatrixEZ<float>, float>;
149
150template void
153 const Vector<float> &) const;
154template void
155PreconditionBlockSOR<SparseMatrixEZ<float>, float>::vmult<double>(
157 const Vector<double> &) const;
158template void
159PreconditionBlockSOR<SparseMatrixEZ<float>, float>::Tvmult<float>(
161 const Vector<float> &) const;
162template void
163PreconditionBlockSOR<SparseMatrixEZ<float>, float>::Tvmult<double>(
165 const Vector<double> &) const;
166
167
168// the instantiation for class PreconditionBlockSOR<SparseMatrixEZ<float>,
169// double> is skipped because it does not make sense to have inverse block
170// matrices with higher precision than the matrix itself
171
172
173// explicit instantiations for "double" PreconditionBlockSOR
175
176
177template void
180 const Vector<float> &) const;
181template void
184 const Vector<double> &) const;
185template void
188 const Vector<float> &) const;
189template void
190PreconditionBlockSOR<SparseMatrixEZ<double>, float>::Tvmult<double>(
192 const Vector<double> &) const;
193template void
194PreconditionBlockSOR<SparseMatrixEZ<double>, float>::vmult_add<float>(
196 const Vector<float> &) const;
197template void
198PreconditionBlockSOR<SparseMatrixEZ<double>, float>::vmult_add<double>(
200 const Vector<double> &) const;
201template void
202PreconditionBlockSOR<SparseMatrixEZ<double>, float>::Tvmult_add<float>(
204 const Vector<float> &) const;
205template void
206PreconditionBlockSOR<SparseMatrixEZ<double>, float>::Tvmult_add<double>(
208 const Vector<double> &) const;
209
210template class PreconditionBlockSOR<SparseMatrixEZ<double>, double>;
211
212template void
215 const Vector<float> &) const;
216template void
217PreconditionBlockSOR<SparseMatrixEZ<double>, double>::vmult<double>(
219 const Vector<double> &) const;
220template void
221PreconditionBlockSOR<SparseMatrixEZ<double>, double>::Tvmult<float>(
223 const Vector<float> &) const;
224template void
225PreconditionBlockSOR<SparseMatrixEZ<double>, double>::Tvmult<double>(
227 const Vector<double> &) const;
228template void
229PreconditionBlockSOR<SparseMatrixEZ<double>, double>::vmult_add<float>(
231 const Vector<float> &) const;
232template void
233PreconditionBlockSOR<SparseMatrixEZ<double>, double>::vmult_add<double>(
235 const Vector<double> &) const;
236template void
237PreconditionBlockSOR<SparseMatrixEZ<double>, double>::Tvmult_add<float>(
239 const Vector<float> &) const;
240template void
241PreconditionBlockSOR<SparseMatrixEZ<double>, double>::Tvmult_add<double>(
243 const Vector<double> &) const;
244
245
246/*--------------------- PreconditionBlockSSOR -----------------------*/
247
248
249// explicit instantiations for "float" PreconditionBlock
251
252template void
255 const Vector<float> &) const;
256template void
259 const Vector<double> &) const;
260template void
263 const Vector<float> &) const;
264template void
265PreconditionBlockSSOR<SparseMatrixEZ<float>, float>::Tvmult<double>(
267 const Vector<double> &) const;
268
269
270// the instantiation for class PreconditionBlockSSOR<SparseMatrixEZ<float>,
271// double> is skipped because it does not make sense to have inverse block
272// matrices with higher precision than the matrix itself
273
274
275// explicit instantiations for "double" PreconditionBlockSSOR
277
278
279template void
282 const Vector<float> &) const;
283template void
286 const Vector<double> &) const;
287template void
290 const Vector<float> &) const;
291template void
294 const Vector<double> &) const;
295
297
298template void
301 const Vector<float> &) const;
302template void
305 const Vector<double> &) const;
306template void
309 const Vector<float> &) const;
310template void
311PreconditionBlockSSOR<SparseMatrixEZ<double>, double>::Tvmult<double>(
313 const Vector<double> &) const;
314
#define DEAL_II_NAMESPACE_OPEN
Definition config.h:498
#define DEAL_II_NAMESPACE_CLOSE
Definition config.h:499