Reference documentation for deal.II version Git 840703ecf3 2019-10-14 17:15:20 -0400
\(\newcommand{\dealcoloneq}{\mathrel{\vcenter{:}}=}\)
precondition_block_ez.cc
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>
17 #include <deal.II/lac/sparse_matrix_ez.h>
18 
19 DEAL_II_NAMESPACE_OPEN
20 
21 
22 // explicit instantiations for "float" PreconditionBlock
23 template 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
31 template class PreconditionBlock<SparseMatrixEZ<double>, float>;
32 
33 template class PreconditionBlock<SparseMatrixEZ<double>, double>;
34 
35 
36 /*--------------------- PreconditionBlockJacobi -----------------------*/
37 
38 
39 // explicit instantiations for "float" PreconditionBlock
41 
42 template void
44  Vector<float> &,
45  const Vector<float> &) const;
46 template void
49  const Vector<double> &) const;
50 template void
52  Vector<float> &,
53  const Vector<float> &) const;
54 template void
55 PreconditionBlockJacobi<SparseMatrixEZ<float>, float>::Tvmult<double>(
57  const Vector<double> &) const;
58 template void
59 PreconditionBlockJacobi<SparseMatrixEZ<float>, float>::vmult_add<float>(
60  Vector<float> &,
61  const Vector<float> &) const;
62 template void
63 PreconditionBlockJacobi<SparseMatrixEZ<float>, float>::vmult_add<double>(
65  const Vector<double> &) const;
66 template void
67 PreconditionBlockJacobi<SparseMatrixEZ<float>, float>::Tvmult_add<float>(
68  Vector<float> &,
69  const Vector<float> &) const;
70 template void
71 PreconditionBlockJacobi<SparseMatrixEZ<float>, float>::Tvmult_add<double>(
73  const Vector<double> &) const;
74 
76 
77 template void
79  Vector<float> &,
80  const Vector<float> &) const;
81 template void
84  const Vector<double> &) const;
85 template void
87  Vector<float> &,
88  const Vector<float> &) const;
89 template void
92  const Vector<double> &) const;
93 template void
94 PreconditionBlockJacobi<SparseMatrixEZ<double>, float>::vmult_add<float>(
95  Vector<float> &,
96  const Vector<float> &) const;
97 template void
98 PreconditionBlockJacobi<SparseMatrixEZ<double>, float>::vmult_add<double>(
100  const Vector<double> &) const;
101 template void
102 PreconditionBlockJacobi<SparseMatrixEZ<double>, float>::Tvmult_add<float>(
103  Vector<float> &,
104  const Vector<float> &) const;
105 template void
106 PreconditionBlockJacobi<SparseMatrixEZ<double>, float>::Tvmult_add<double>(
107  Vector<double> &,
108  const Vector<double> &) const;
109 
110 template class PreconditionBlockJacobi<SparseMatrixEZ<double>, double>;
111 
112 template void
114  Vector<float> &,
115  const Vector<float> &) const;
116 template void
117 PreconditionBlockJacobi<SparseMatrixEZ<double>, double>::vmult<double>(
118  Vector<double> &,
119  const Vector<double> &) const;
120 template void
121 PreconditionBlockJacobi<SparseMatrixEZ<double>, double>::Tvmult<float>(
122  Vector<float> &,
123  const Vector<float> &) const;
124 template void
125 PreconditionBlockJacobi<SparseMatrixEZ<double>, double>::Tvmult<double>(
126  Vector<double> &,
127  const Vector<double> &) const;
128 template void
129 PreconditionBlockJacobi<SparseMatrixEZ<double>, double>::vmult_add<float>(
130  Vector<float> &,
131  const Vector<float> &) const;
132 template void
133 PreconditionBlockJacobi<SparseMatrixEZ<double>, double>::vmult_add<double>(
134  Vector<double> &,
135  const Vector<double> &) const;
136 template void
137 PreconditionBlockJacobi<SparseMatrixEZ<double>, double>::Tvmult_add<float>(
138  Vector<float> &,
139  const Vector<float> &) const;
140 template void
141 PreconditionBlockJacobi<SparseMatrixEZ<double>, double>::Tvmult_add<double>(
142  Vector<double> &,
143  const Vector<double> &) const;
144 
145 /*--------------------- PreconditionBlockGaussSeidel -----------------------*/
146 
147 
148 // explicit instantiations for "float" PreconditionBlock
149 template class PreconditionBlockSOR<SparseMatrixEZ<float>, float>;
150 
151 template void
152 PreconditionBlockSOR<SparseMatrixEZ<float>, float>::vmult<float>(
153  Vector<float> &,
154  const Vector<float> &) const;
155 template void
156 PreconditionBlockSOR<SparseMatrixEZ<float>, float>::vmult<double>(
157  Vector<double> &,
158  const Vector<double> &) const;
159 template void
160 PreconditionBlockSOR<SparseMatrixEZ<float>, float>::Tvmult<float>(
161  Vector<float> &,
162  const Vector<float> &) const;
163 template void
164 PreconditionBlockSOR<SparseMatrixEZ<float>, float>::Tvmult<double>(
165  Vector<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
175 template class PreconditionBlockSOR<SparseMatrixEZ<double>, float>;
176 
177 
178 template void
179 PreconditionBlockSOR<SparseMatrixEZ<double>, float>::vmult<float>(
180  Vector<float> &,
181  const Vector<float> &) const;
182 template void
183 PreconditionBlockSOR<SparseMatrixEZ<double>, float>::vmult<double>(
184  Vector<double> &,
185  const Vector<double> &) const;
186 template void
187 PreconditionBlockSOR<SparseMatrixEZ<double>, float>::Tvmult<float>(
188  Vector<float> &,
189  const Vector<float> &) const;
190 template void
191 PreconditionBlockSOR<SparseMatrixEZ<double>, float>::Tvmult<double>(
192  Vector<double> &,
193  const Vector<double> &) const;
194 template void
195 PreconditionBlockSOR<SparseMatrixEZ<double>, float>::vmult_add<float>(
196  Vector<float> &,
197  const Vector<float> &) const;
198 template void
199 PreconditionBlockSOR<SparseMatrixEZ<double>, float>::vmult_add<double>(
200  Vector<double> &,
201  const Vector<double> &) const;
202 template void
203 PreconditionBlockSOR<SparseMatrixEZ<double>, float>::Tvmult_add<float>(
204  Vector<float> &,
205  const Vector<float> &) const;
206 template void
207 PreconditionBlockSOR<SparseMatrixEZ<double>, float>::Tvmult_add<double>(
208  Vector<double> &,
209  const Vector<double> &) const;
210 
211 template class PreconditionBlockSOR<SparseMatrixEZ<double>, double>;
212 
213 template void
214 PreconditionBlockSOR<SparseMatrixEZ<double>, double>::vmult<float>(
215  Vector<float> &,
216  const Vector<float> &) const;
217 template void
218 PreconditionBlockSOR<SparseMatrixEZ<double>, double>::vmult<double>(
219  Vector<double> &,
220  const Vector<double> &) const;
221 template void
222 PreconditionBlockSOR<SparseMatrixEZ<double>, double>::Tvmult<float>(
223  Vector<float> &,
224  const Vector<float> &) const;
225 template void
226 PreconditionBlockSOR<SparseMatrixEZ<double>, double>::Tvmult<double>(
227  Vector<double> &,
228  const Vector<double> &) const;
229 template void
230 PreconditionBlockSOR<SparseMatrixEZ<double>, double>::vmult_add<float>(
231  Vector<float> &,
232  const Vector<float> &) const;
233 template void
234 PreconditionBlockSOR<SparseMatrixEZ<double>, double>::vmult_add<double>(
235  Vector<double> &,
236  const Vector<double> &) const;
237 template void
238 PreconditionBlockSOR<SparseMatrixEZ<double>, double>::Tvmult_add<float>(
239  Vector<float> &,
240  const Vector<float> &) const;
241 template void
242 PreconditionBlockSOR<SparseMatrixEZ<double>, double>::Tvmult_add<double>(
243  Vector<double> &,
244  const Vector<double> &) const;
245 
246 
247 /*--------------------- PreconditionBlockSSOR -----------------------*/
248 
249 
250 // explicit instantiations for "float" PreconditionBlock
251 template class PreconditionBlockSSOR<SparseMatrixEZ<float>, float>;
252 
253 template void
254 PreconditionBlockSSOR<SparseMatrixEZ<float>, float>::vmult<float>(
255  Vector<float> &,
256  const Vector<float> &) const;
257 template void
258 PreconditionBlockSSOR<SparseMatrixEZ<float>, float>::vmult<double>(
259  Vector<double> &,
260  const Vector<double> &) const;
261 template void
262 PreconditionBlockSSOR<SparseMatrixEZ<float>, float>::Tvmult<float>(
263  Vector<float> &,
264  const Vector<float> &) const;
265 template void
266 PreconditionBlockSSOR<SparseMatrixEZ<float>, float>::Tvmult<double>(
267  Vector<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
277 template class PreconditionBlockSSOR<SparseMatrixEZ<double>, float>;
278 
279 
280 template void
282  Vector<float> &,
283  const Vector<float> &) const;
284 template void
285 PreconditionBlockSSOR<SparseMatrixEZ<double>, float>::vmult<double>(
286  Vector<double> &,
287  const Vector<double> &) const;
288 template void
289 PreconditionBlockSSOR<SparseMatrixEZ<double>, float>::Tvmult<float>(
290  Vector<float> &,
291  const Vector<float> &) const;
292 template void
293 PreconditionBlockSSOR<SparseMatrixEZ<double>, float>::Tvmult<double>(
294  Vector<double> &,
295  const Vector<double> &) const;
296 
297 template class PreconditionBlockSSOR<SparseMatrixEZ<double>, double>;
298 
299 template void
300 PreconditionBlockSSOR<SparseMatrixEZ<double>, double>::vmult<float>(
301  Vector<float> &,
302  const Vector<float> &) const;
303 template void
304 PreconditionBlockSSOR<SparseMatrixEZ<double>, double>::vmult<double>(
305  Vector<double> &,
306  const Vector<double> &) const;
307 template void
308 PreconditionBlockSSOR<SparseMatrixEZ<double>, double>::Tvmult<float>(
309  Vector<float> &,
310  const Vector<float> &) const;
311 template void
312 PreconditionBlockSSOR<SparseMatrixEZ<double>, double>::Tvmult<double>(
313  Vector<double> &,
314  const Vector<double> &) const;
315 
316 DEAL_II_NAMESPACE_CLOSE