deal.II version 9.7.1
\(\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
60 const Vector<float> &) const;
61template void
64 const Vector<double> &) const;
65template void
68 const Vector<float> &) const;
69template void
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
99 const Vector<double> &) const;
100template void
103 const Vector<float> &) const;
104template void
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
130 const Vector<float> &) const;
131template void
134 const Vector<double> &) const;
135template void
138 const Vector<float> &) const;
139template void
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
196 const Vector<float> &) const;
197template void
200 const Vector<double> &) const;
201template void
204 const Vector<float> &) const;
205template void
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
231 const Vector<float> &) const;
232template void
235 const Vector<double> &) const;
236template void
239 const Vector<float> &) const;
240template void
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:40
#define DEAL_II_NAMESPACE_CLOSE
Definition config.h:41
void vmult_add(OutVector &dst, const InVector &src) const
void Tvmult_add(OutVector &dst, const InVector &src) const