Reference documentation for deal.II version 9.3.3
\(\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\}}\)
precondition_block_ez.cc
Go to the documentation of this file.
1// ---------------------------------------------------------------------
2//
3// Copyright (C) 2003 - 2018 by the deal.II authors
4//
5// This file is part of the deal.II library.
6//
7// The deal.II library is free software; you can use it, redistribute
8// it, and/or modify it under the terms of the GNU Lesser General
9// Public License as published by the Free Software Foundation; either
10// version 2.1 of the License, or (at your option) any later version.
11// The full text of the license can be found in the file LICENSE.md at
12// the top level directory of deal.II.
13//
14// ---------------------------------------------------------------------
15
16#include <deal.II/lac/precondition_block.templates.h>
18
20
21
22// explicit instantiations for "float" PreconditionBlock
23template class PreconditionBlock<SparseMatrixEZ<float>, float>;
24
25// the instantiation for class PreconditionBlock<SparseMatrixEZ<float>, double>
26// is skipped because it does not make sense to have inverse block matrices with
27// higher precision than the matrix itself
28
29
30// explicit instantiations for "double" PreconditionBlock
31template class PreconditionBlock<SparseMatrixEZ<double>, float>;
32
33template class PreconditionBlock<SparseMatrixEZ<double>, double>;
34
35
36/*--------------------- PreconditionBlockJacobi -----------------------*/
37
38
39// explicit instantiations for "float" PreconditionBlock
41
42template void
45 const Vector<float> &) const;
46template void
49 const Vector<double> &) const;
50template void
53 const Vector<float> &) const;
54template void
57 const Vector<double> &) const;
58template void
59PreconditionBlockJacobi<SparseMatrixEZ<float>, float>::vmult_add<float>(
61 const Vector<float> &) const;
62template void
63PreconditionBlockJacobi<SparseMatrixEZ<float>, float>::vmult_add<double>(
65 const Vector<double> &) const;
66template void
67PreconditionBlockJacobi<SparseMatrixEZ<float>, float>::Tvmult_add<float>(
69 const Vector<float> &) const;
70template void
71PreconditionBlockJacobi<SparseMatrixEZ<float>, float>::Tvmult_add<double>(
73 const Vector<double> &) const;
74
76
77template void
80 const Vector<float> &) const;
81template void
84 const Vector<double> &) const;
85template void
88 const Vector<float> &) const;
89template void
92 const Vector<double> &) const;
93template void
96 const Vector<float> &) const;
97template void
98PreconditionBlockJacobi<SparseMatrixEZ<double>, float>::vmult_add<double>(
100 const Vector<double> &) const;
101template void
102PreconditionBlockJacobi<SparseMatrixEZ<double>, float>::Tvmult_add<float>(
104 const Vector<float> &) const;
105template void
106PreconditionBlockJacobi<SparseMatrixEZ<double>, float>::Tvmult_add<double>(
108 const Vector<double> &) const;
109
111
112template void
115 const Vector<float> &) const;
116template void
119 const Vector<double> &) const;
120template void
123 const Vector<float> &) const;
124template void
127 const Vector<double> &) const;
128template void
129PreconditionBlockJacobi<SparseMatrixEZ<double>, double>::vmult_add<float>(
131 const Vector<float> &) const;
132template void
133PreconditionBlockJacobi<SparseMatrixEZ<double>, double>::vmult_add<double>(
135 const Vector<double> &) const;
136template void
137PreconditionBlockJacobi<SparseMatrixEZ<double>, double>::Tvmult_add<float>(
139 const Vector<float> &) const;
140template void
141PreconditionBlockJacobi<SparseMatrixEZ<double>, double>::Tvmult_add<double>(
143 const Vector<double> &) const;
144
145/*--------------------- PreconditionBlockGaussSeidel -----------------------*/
146
147
148// explicit instantiations for "float" PreconditionBlock
149template class PreconditionBlockSOR<SparseMatrixEZ<float>, float>;
150
151template void
154 const Vector<float> &) const;
155template void
156PreconditionBlockSOR<SparseMatrixEZ<float>, float>::vmult<double>(
158 const Vector<double> &) const;
159template void
160PreconditionBlockSOR<SparseMatrixEZ<float>, float>::Tvmult<float>(
162 const Vector<float> &) const;
163template void
164PreconditionBlockSOR<SparseMatrixEZ<float>, float>::Tvmult<double>(
166 const Vector<double> &) const;
167
168
169// the instantiation for class PreconditionBlockSOR<SparseMatrixEZ<float>,
170// double> is skipped because it does not make sense to have inverse block
171// matrices with higher precision than the matrix itself
172
173
174// explicit instantiations for "double" PreconditionBlockSOR
176
177
178template void
181 const Vector<float> &) const;
182template void
185 const Vector<double> &) const;
186template void
189 const Vector<float> &) const;
190template void
191PreconditionBlockSOR<SparseMatrixEZ<double>, float>::Tvmult<double>(
193 const Vector<double> &) const;
194template void
195PreconditionBlockSOR<SparseMatrixEZ<double>, float>::vmult_add<float>(
197 const Vector<float> &) const;
198template void
199PreconditionBlockSOR<SparseMatrixEZ<double>, float>::vmult_add<double>(
201 const Vector<double> &) const;
202template void
203PreconditionBlockSOR<SparseMatrixEZ<double>, float>::Tvmult_add<float>(
205 const Vector<float> &) const;
206template void
207PreconditionBlockSOR<SparseMatrixEZ<double>, float>::Tvmult_add<double>(
209 const Vector<double> &) const;
210
211template class PreconditionBlockSOR<SparseMatrixEZ<double>, double>;
212
213template void
216 const Vector<float> &) const;
217template void
218PreconditionBlockSOR<SparseMatrixEZ<double>, double>::vmult<double>(
220 const Vector<double> &) const;
221template void
222PreconditionBlockSOR<SparseMatrixEZ<double>, double>::Tvmult<float>(
224 const Vector<float> &) const;
225template void
226PreconditionBlockSOR<SparseMatrixEZ<double>, double>::Tvmult<double>(
228 const Vector<double> &) const;
229template void
230PreconditionBlockSOR<SparseMatrixEZ<double>, double>::vmult_add<float>(
232 const Vector<float> &) const;
233template void
234PreconditionBlockSOR<SparseMatrixEZ<double>, double>::vmult_add<double>(
236 const Vector<double> &) const;
237template void
238PreconditionBlockSOR<SparseMatrixEZ<double>, double>::Tvmult_add<float>(
240 const Vector<float> &) const;
241template void
242PreconditionBlockSOR<SparseMatrixEZ<double>, double>::Tvmult_add<double>(
244 const Vector<double> &) const;
245
246
247/*--------------------- PreconditionBlockSSOR -----------------------*/
248
249
250// explicit instantiations for "float" PreconditionBlock
252
253template void
256 const Vector<float> &) const;
257template void
260 const Vector<double> &) const;
261template void
264 const Vector<float> &) const;
265template void
266PreconditionBlockSSOR<SparseMatrixEZ<float>, float>::Tvmult<double>(
268 const Vector<double> &) const;
269
270
271// the instantiation for class PreconditionBlockSSOR<SparseMatrixEZ<float>,
272// double> is skipped because it does not make sense to have inverse block
273// matrices with higher precision than the matrix itself
274
275
276// explicit instantiations for "double" PreconditionBlockSSOR
278
279
280template void
283 const Vector<float> &) const;
284template void
287 const Vector<double> &) const;
288template void
291 const Vector<float> &) const;
292template void
295 const Vector<double> &) const;
296
298
299template void
302 const Vector<float> &) const;
303template void
306 const Vector<double> &) const;
307template void
310 const Vector<float> &) const;
311template void
312PreconditionBlockSSOR<SparseMatrixEZ<double>, double>::Tvmult<double>(
314 const Vector<double> &) const;
315
Definition: vector.h:110
#define DEAL_II_NAMESPACE_OPEN
Definition: config.h:402
#define DEAL_II_NAMESPACE_CLOSE
Definition: config.h:403