Reference documentation for deal.II version 9.0.0
precondition_block_ez.cc
1 // ---------------------------------------------------------------------
2 //
3 // Copyright (C) 2003 - 2014 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 at
12 // the top level of the deal.II distribution.
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> is skipped
26 // 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 PreconditionBlockJacobi<SparseMatrixEZ<float>, float>::vmult<float>
43 (Vector<float> &, const Vector<float> &) const;
44 template void PreconditionBlockJacobi<SparseMatrixEZ<float>, float>::vmult<double>
45 (Vector<double> &, const Vector<double> &) const;
46 template void PreconditionBlockJacobi<SparseMatrixEZ<float>, float>::Tvmult<float>
47 (Vector<float> &, const Vector<float> &) const;
48 template void PreconditionBlockJacobi<SparseMatrixEZ<float>, float>::Tvmult<double>
49 (Vector<double> &, const Vector<double> &) const;
50 template void PreconditionBlockJacobi<SparseMatrixEZ<float>, float>::vmult_add<float>
51 (Vector<float> &, const Vector<float> &) const;
52 template void PreconditionBlockJacobi<SparseMatrixEZ<float>, float>::vmult_add<double>
53 (Vector<double> &, const Vector<double> &) const;
54 template void PreconditionBlockJacobi<SparseMatrixEZ<float>, float>::Tvmult_add<float>
55 (Vector<float> &, const Vector<float> &) const;
56 template void PreconditionBlockJacobi<SparseMatrixEZ<float>, float>::Tvmult_add<double>
57 (Vector<double> &, const Vector<double> &) const;
58 
60 
61 template void PreconditionBlockJacobi<SparseMatrixEZ<double>, float>::vmult<float>
62 (Vector<float> &, const Vector<float> &) const;
63 template void PreconditionBlockJacobi<SparseMatrixEZ<double>, float>::vmult<double>
64 (Vector<double> &, const Vector<double> &) const;
65 template void PreconditionBlockJacobi<SparseMatrixEZ<double>, float>::Tvmult<float>
66 (Vector<float> &, const Vector<float> &) const;
67 template void PreconditionBlockJacobi<SparseMatrixEZ<double>, float>::Tvmult<double>
68 (Vector<double> &, const Vector<double> &) const;
69 template void PreconditionBlockJacobi<SparseMatrixEZ<double>, float>::vmult_add<float>
70 (Vector<float> &, const Vector<float> &) const;
71 template void PreconditionBlockJacobi<SparseMatrixEZ<double>, float>::vmult_add<double>
72 (Vector<double> &, const Vector<double> &) const;
73 template void PreconditionBlockJacobi<SparseMatrixEZ<double>, float>::Tvmult_add<float>
74 (Vector<float> &, const Vector<float> &) const;
75 template void PreconditionBlockJacobi<SparseMatrixEZ<double>, float>::Tvmult_add<double>
76 (Vector<double> &, const Vector<double> &) const;
77 
79 
80 template void PreconditionBlockJacobi<SparseMatrixEZ<double>, double>::vmult<float>
81 (Vector<float> &, const Vector<float> &) const;
82 template void PreconditionBlockJacobi<SparseMatrixEZ<double>, double>::vmult<double>
83 (Vector<double> &, const Vector<double> &) const;
84 template void PreconditionBlockJacobi<SparseMatrixEZ<double>, double>::Tvmult<float>
85 (Vector<float> &, const Vector<float> &) const;
86 template void PreconditionBlockJacobi<SparseMatrixEZ<double>, double>::Tvmult<double>
87 (Vector<double> &, const Vector<double> &) const;
88 template void PreconditionBlockJacobi<SparseMatrixEZ<double>, double>::vmult_add<float>
89 (Vector<float> &, const Vector<float> &) const;
90 template void PreconditionBlockJacobi<SparseMatrixEZ<double>, double>::vmult_add<double>
91 (Vector<double> &, const Vector<double> &) const;
92 template void PreconditionBlockJacobi<SparseMatrixEZ<double>, double>::Tvmult_add<float>
93 (Vector<float> &, const Vector<float> &) const;
94 template void PreconditionBlockJacobi<SparseMatrixEZ<double>, double>::Tvmult_add<double>
95 (Vector<double> &, const Vector<double> &) const;
96 
97 /*--------------------- PreconditionBlockGaussSeidel -----------------------*/
98 
99 
100 // explicit instantiations for "float" PreconditionBlock
101 template class PreconditionBlockSOR<SparseMatrixEZ<float>, float>;
102 
103 template void PreconditionBlockSOR<SparseMatrixEZ<float>, float>::vmult<float> (
104  Vector<float> &, const Vector<float> &) const;
105 template void PreconditionBlockSOR<SparseMatrixEZ<float>, float>::vmult<double> (
106  Vector<double> &, const Vector<double> &) const;
107 template void PreconditionBlockSOR<SparseMatrixEZ<float>, float>::Tvmult<float> (
108  Vector<float> &, const Vector<float> &) const;
109 template void PreconditionBlockSOR<SparseMatrixEZ<float>, float>::Tvmult<double> (
110  Vector<double> &, const Vector<double> &) const;
111 
112 
113 // the instantiation for class PreconditionBlockSOR<SparseMatrixEZ<float>, double> is skipped
114 // because it does not make sense to have inverse block matrices with
115 // higher precision than the matrix itself
116 
117 
118 // explicit instantiations for "double" PreconditionBlockSOR
119 template class PreconditionBlockSOR<SparseMatrixEZ<double>, float>;
120 
121 
122 template void PreconditionBlockSOR<SparseMatrixEZ<double>, float>::vmult<float> (
123  Vector<float> &, const Vector<float> &) const;
124 template void PreconditionBlockSOR<SparseMatrixEZ<double>, float>::vmult<double> (
125  Vector<double> &, const Vector<double> &) const;
126 template void PreconditionBlockSOR<SparseMatrixEZ<double>, float>::Tvmult<float> (
127  Vector<float> &, const Vector<float> &) const;
128 template void PreconditionBlockSOR<SparseMatrixEZ<double>, float>::Tvmult<double> (
129  Vector<double> &, const Vector<double> &) const;
130 template void PreconditionBlockSOR<SparseMatrixEZ<double>, float>::vmult_add<float> (
131  Vector<float> &, const Vector<float> &) const;
132 template void PreconditionBlockSOR<SparseMatrixEZ<double>, float>::vmult_add<double> (
133  Vector<double> &, const Vector<double> &) const;
134 template void PreconditionBlockSOR<SparseMatrixEZ<double>, float>::Tvmult_add<float> (
135  Vector<float> &, const Vector<float> &) const;
136 template void PreconditionBlockSOR<SparseMatrixEZ<double>, float>::Tvmult_add<double> (
137  Vector<double> &, const Vector<double> &) const;
138 
139 template class PreconditionBlockSOR<SparseMatrixEZ<double>, double>;
140 
141 template void PreconditionBlockSOR<SparseMatrixEZ<double>, double>::vmult<float> (
142  Vector<float> &, const Vector<float> &) const;
143 template void PreconditionBlockSOR<SparseMatrixEZ<double>, double>::vmult<double> (
144  Vector<double> &, const Vector<double> &) const;
145 template void PreconditionBlockSOR<SparseMatrixEZ<double>, double>::Tvmult<float> (
146  Vector<float> &, const Vector<float> &) const;
147 template void PreconditionBlockSOR<SparseMatrixEZ<double>, double>::Tvmult<double> (
148  Vector<double> &, const Vector<double> &) const;
149 template void PreconditionBlockSOR<SparseMatrixEZ<double>, double>::vmult_add<float> (
150  Vector<float> &, const Vector<float> &) const;
151 template void PreconditionBlockSOR<SparseMatrixEZ<double>, double>::vmult_add<double> (
152  Vector<double> &, const Vector<double> &) const;
153 template void PreconditionBlockSOR<SparseMatrixEZ<double>, double>::Tvmult_add<float> (
154  Vector<float> &, const Vector<float> &) const;
155 template void PreconditionBlockSOR<SparseMatrixEZ<double>, double>::Tvmult_add<double> (
156  Vector<double> &, const Vector<double> &) const;
157 
158 
159 /*--------------------- PreconditionBlockSSOR -----------------------*/
160 
161 
162 // explicit instantiations for "float" PreconditionBlock
163 template class PreconditionBlockSSOR<SparseMatrixEZ<float>, float>;
164 
165 template void PreconditionBlockSSOR<SparseMatrixEZ<float>, float>::vmult<float> (
166  Vector<float> &, const Vector<float> &) const;
167 template void PreconditionBlockSSOR<SparseMatrixEZ<float>, float>::vmult<double> (
168  Vector<double> &, const Vector<double> &) const;
169 template void PreconditionBlockSSOR<SparseMatrixEZ<float>, float>::Tvmult<float> (
170  Vector<float> &, const Vector<float> &) const;
171 template void PreconditionBlockSSOR<SparseMatrixEZ<float>, float>::Tvmult<double> (
172  Vector<double> &, const Vector<double> &) const;
173 
174 
175 // the instantiation for class PreconditionBlockSSOR<SparseMatrixEZ<float>, double> is skipped
176 // because it does not make sense to have inverse block matrices with
177 // higher precision than the matrix itself
178 
179 
180 // explicit instantiations for "double" PreconditionBlockSSOR
181 template class PreconditionBlockSSOR<SparseMatrixEZ<double>, float>;
182 
183 
184 template void PreconditionBlockSSOR<SparseMatrixEZ<double>, float>::vmult<float> (
185  Vector<float> &, const Vector<float> &) const;
186 template void PreconditionBlockSSOR<SparseMatrixEZ<double>, float>::vmult<double> (
187  Vector<double> &, const Vector<double> &) const;
188 template void PreconditionBlockSSOR<SparseMatrixEZ<double>, float>::Tvmult<float> (
189  Vector<float> &, const Vector<float> &) const;
190 template void PreconditionBlockSSOR<SparseMatrixEZ<double>, float>::Tvmult<double> (
191  Vector<double> &, const Vector<double> &) const;
192 
193 template class PreconditionBlockSSOR<SparseMatrixEZ<double>, double>;
194 
195 template void PreconditionBlockSSOR<SparseMatrixEZ<double>, double>::vmult<float> (
196  Vector<float> &, const Vector<float> &) const;
197 template void PreconditionBlockSSOR<SparseMatrixEZ<double>, double>::vmult<double> (
198  Vector<double> &, const Vector<double> &) const;
199 template void PreconditionBlockSSOR<SparseMatrixEZ<double>, double>::Tvmult<float> (
200  Vector<float> &, const Vector<float> &) const;
201 template void PreconditionBlockSSOR<SparseMatrixEZ<double>, double>::Tvmult<double> (
202  Vector<double> &, const Vector<double> &) const;
203 
204 DEAL_II_NAMESPACE_CLOSE