IterativeSolver.cpp
1 #include "SeldonFlag.hxx"
2 
3 #include "SeldonSolverHeader.hxx"
4 #include "SeldonSolverInline.hxx"
5 
6 #ifdef SELDON_WITH_MPI
7 #include "SeldonDistributedHeader.hxx"
8 #include "SeldonDistributedInline.hxx"
9 #endif
10 
11 #ifndef SELDON_WITH_COMPILED_LIBRARY
12 #include "computation/solver/iterative/Iterative.cxx"
13 #include "computation/solver/preconditioner/Precond_Ssor.cxx"
14 #endif
15 
16 namespace Seldon
17 {
18  SELDON_EXTERN template class Iteration<Real_wp>;
19  SELDON_EXTERN template int Iteration<Real_wp>::Init(const Vector<Real_wp>&);
20  SELDON_EXTERN template int Iteration<Real_wp>::Init(const Vector<Complex_wp >&);
21  SELDON_EXTERN template bool Iteration<Real_wp>::Finished(const Vector<Real_wp>&) const;
22  SELDON_EXTERN template bool Iteration<Real_wp>::Finished(const Vector<Complex_wp >&) const;
23 
24 #ifdef SELDON_WITH_MPI
25  SELDON_EXTERN template int Iteration<Real_wp>::Init(const DistributedVector<Real_wp>&);
26  SELDON_EXTERN template int Iteration<Real_wp>::Init(const DistributedVector<Complex_wp >&);
27  SELDON_EXTERN template bool Iteration<Real_wp>::Finished(const DistributedVector<Real_wp>&) const;
28  SELDON_EXTERN template bool Iteration<Real_wp>::Finished(const DistributedVector<Complex_wp >&) const;
29 #endif
30 
31 #ifdef SELDON_WITH_PRECONDITIONING
32  SELDON_EXTERN template class SorPreconditioner<Real_wp>;
33  SELDON_EXTERN template class SorPreconditioner<Complex_wp >;
34 
35  SELDON_EXTERN template void SorPreconditioner<Real_wp>::SolveGen(const SeldonTranspose&, const VirtualMatrix<Real_wp>&, const Vector<Real_wp>&, Vector<Real_wp>&, bool);
36  SELDON_EXTERN template void SorPreconditioner<Real_wp>::SolveGen(const SeldonTranspose&, const VirtualMatrix<Real_wp>&, const Vector<Complex_wp>&, Vector<Complex_wp>&, bool);
37  SELDON_EXTERN template void SorPreconditioner<Complex_wp>::SolveGen(const SeldonTranspose&, const VirtualMatrix<Complex_wp>&, const Vector<Complex_wp>&, Vector<Complex_wp>&, bool);
38 #endif
39 
40  SELDON_EXTERN template int BiCg(const VirtualMatrix<Real_wp>&, Vector<Real_wp>&, const Vector<Real_wp>&,
41  Preconditioner_Base<Real_wp>&, Iteration<Real_wp>&);
42 
43  SELDON_EXTERN template int BiCg(const VirtualMatrix<Complex_wp >&, Vector<Complex_wp >&, const Vector<Complex_wp >&,
44  Preconditioner_Base<Complex_wp >&, Iteration<Real_wp>&);
45 
46  SELDON_EXTERN template int BiCgStab(const VirtualMatrix<Real_wp>&, Vector<Real_wp>&, const Vector<Real_wp>&,
47  Preconditioner_Base<Real_wp>&, Iteration<Real_wp>&);
48 
49  SELDON_EXTERN template int BiCgStab(const VirtualMatrix<Complex_wp >&, Vector<Complex_wp >&, const Vector<Complex_wp >&,
50  Preconditioner_Base<Complex_wp >&, Iteration<Real_wp>&);
51 
52  SELDON_EXTERN template int BiCgStabl(const VirtualMatrix<Real_wp>&, Vector<Real_wp>&, const Vector<Real_wp>&,
53  Preconditioner_Base<Real_wp>&, Iteration<Real_wp>&);
54 
55  SELDON_EXTERN template int BiCgStabl(const VirtualMatrix<Complex_wp >&, Vector<Complex_wp >&, const Vector<Complex_wp >&,
56  Preconditioner_Base<Complex_wp >&, Iteration<Real_wp>&);
57 
58  SELDON_EXTERN template int BiCgcr(const VirtualMatrix<Real_wp>&, Vector<Real_wp>&, const Vector<Real_wp>&,
59  Preconditioner_Base<Real_wp>&, Iteration<Real_wp>&);
60 
61  SELDON_EXTERN template int BiCgcr(const VirtualMatrix<Complex_wp >&, Vector<Complex_wp >&, const Vector<Complex_wp >&,
62  Preconditioner_Base<Complex_wp >&, Iteration<Real_wp>&);
63 
64  SELDON_EXTERN template int Cg(const VirtualMatrix<Real_wp>&, Vector<Real_wp>&, const Vector<Real_wp>&,
65  Preconditioner_Base<Real_wp>&, Iteration<Real_wp>&);
66 
67  SELDON_EXTERN template int Cg(const VirtualMatrix<Complex_wp >&, Vector<Complex_wp >&, const Vector<Complex_wp >&,
68  Preconditioner_Base<Complex_wp >&, Iteration<Real_wp>&);
69 
70  SELDON_EXTERN template int Cgne(const VirtualMatrix<Real_wp>&, Vector<Real_wp>&, const Vector<Real_wp>&,
71  Preconditioner_Base<Real_wp>&, Iteration<Real_wp>&);
72 
73  SELDON_EXTERN template int Cgne(const VirtualMatrix<Complex_wp >&, Vector<Complex_wp >&, const Vector<Complex_wp >&,
74  Preconditioner_Base<Complex_wp >&, Iteration<Real_wp>&);
75 
76  SELDON_EXTERN template int Cgs(const VirtualMatrix<Real_wp>&, Vector<Real_wp>&, const Vector<Real_wp>&,
77  Preconditioner_Base<Real_wp>&, Iteration<Real_wp>&);
78 
79  SELDON_EXTERN template int Cgs(const VirtualMatrix<Complex_wp >&, Vector<Complex_wp >&, const Vector<Complex_wp >&,
80  Preconditioner_Base<Complex_wp >&, Iteration<Real_wp>&);
81 
82  SELDON_EXTERN template int CoCg(const VirtualMatrix<Real_wp>&, Vector<Real_wp>&, const Vector<Real_wp>&,
83  Preconditioner_Base<Real_wp>&, Iteration<Real_wp>&);
84 
85  SELDON_EXTERN template int CoCg(const VirtualMatrix<Complex_wp >&, Vector<Complex_wp >&, const Vector<Complex_wp >&,
86  Preconditioner_Base<Complex_wp >&, Iteration<Real_wp>&);
87 
88  SELDON_EXTERN template int Gcr(const VirtualMatrix<Real_wp>&, Vector<Real_wp>&, const Vector<Real_wp>&,
89  Preconditioner_Base<Real_wp>&, Iteration<Real_wp>&);
90 
91  SELDON_EXTERN template int Gcr(const VirtualMatrix<Complex_wp >&, Vector<Complex_wp >&, const Vector<Complex_wp >&,
92  Preconditioner_Base<Complex_wp >&, Iteration<Real_wp>&);
93 
94 #ifdef SELDON_WITH_BLAS
95  SELDON_EXTERN template int Gmres(const VirtualMatrix<Real_wp>&, Vector<Real_wp>&, const Vector<Real_wp>&,
96  Preconditioner_Base<Real_wp>&, Iteration<Real_wp>&);
97 
98  SELDON_EXTERN template int Gmres(const VirtualMatrix<Complex_wp >&, Vector<Complex_wp >&, const Vector<Complex_wp >&,
99  Preconditioner_Base<Complex_wp >&, Iteration<Real_wp>&);
100 #endif
101 
102  SELDON_EXTERN template int Lsqr(const VirtualMatrix<Real_wp>&, Vector<Real_wp>&, const Vector<Real_wp>&,
103  Preconditioner_Base<Real_wp>&, Iteration<Real_wp>&);
104 
105  SELDON_EXTERN template int Lsqr(const VirtualMatrix<Complex_wp >&, Vector<Complex_wp >&, const Vector<Complex_wp >&,
106  Preconditioner_Base<Complex_wp >&, Iteration<Real_wp>&);
107 
108  SELDON_EXTERN template int MinRes(const VirtualMatrix<Real_wp>&, Vector<Real_wp>&, const Vector<Real_wp>&,
109  Preconditioner_Base<Real_wp>&, Iteration<Real_wp>&);
110 
111  SELDON_EXTERN template int MinRes(const VirtualMatrix<Complex_wp >&, Vector<Complex_wp >&, const Vector<Complex_wp >&,
112  Preconditioner_Base<Complex_wp >&, Iteration<Real_wp>&);
113 
114  SELDON_EXTERN template int QCgs(const VirtualMatrix<Real_wp>&, Vector<Real_wp>&, const Vector<Real_wp>&,
115  Preconditioner_Base<Real_wp>&, Iteration<Real_wp>&);
116 
117  SELDON_EXTERN template int QCgs(const VirtualMatrix<Complex_wp >&, Vector<Complex_wp >&, const Vector<Complex_wp >&,
118  Preconditioner_Base<Complex_wp >&, Iteration<Real_wp>&);
119 
120  SELDON_EXTERN template int Qmr(const VirtualMatrix<Real_wp>&, Vector<Real_wp>&, const Vector<Real_wp>&,
121  Preconditioner_Base<Real_wp>&, Iteration<Real_wp>&);
122 
123  SELDON_EXTERN template int Qmr(const VirtualMatrix<Complex_wp >&, Vector<Complex_wp >&, const Vector<Complex_wp >&,
124  Preconditioner_Base<Complex_wp >&, Iteration<Real_wp>&);
125 
126  SELDON_EXTERN template int QmrSym(const VirtualMatrix<Real_wp>&, Vector<Real_wp>&, const Vector<Real_wp>&,
127  Preconditioner_Base<Real_wp>&, Iteration<Real_wp>&);
128 
129  SELDON_EXTERN template int QmrSym(const VirtualMatrix<Complex_wp >&, Vector<Complex_wp >&, const Vector<Complex_wp >&,
130  Preconditioner_Base<Complex_wp >&, Iteration<Real_wp>&);
131 
132  SELDON_EXTERN template int Symmlq(const VirtualMatrix<Real_wp>&, Vector<Real_wp>&, const Vector<Real_wp>&,
133  Preconditioner_Base<Real_wp>&, Iteration<Real_wp>&);
134 
135  SELDON_EXTERN template int Symmlq(const VirtualMatrix<Complex_wp >&, Vector<Complex_wp >&, const Vector<Complex_wp >&,
136  Preconditioner_Base<Complex_wp >&, Iteration<Real_wp>&);
137 
138  SELDON_EXTERN template int TfQmr(const VirtualMatrix<Real_wp>&, Vector<Real_wp>&, const Vector<Real_wp>&,
139  Preconditioner_Base<Real_wp>&, Iteration<Real_wp>&);
140 
141  SELDON_EXTERN template int TfQmr(const VirtualMatrix<Complex_wp >&, Vector<Complex_wp >&, const Vector<Complex_wp >&,
142  Preconditioner_Base<Complex_wp >&, Iteration<Real_wp>&);
143 
144 
145  // distributed vectors
146 #ifdef SELDON_WITH_MPI
147  SELDON_EXTERN template int BiCg(const VirtualMatrix<Real_wp>&, DistributedVector<Real_wp>&, const DistributedVector<Real_wp>&,
148  Preconditioner_Base<Real_wp>&, Iteration<Real_wp>&);
149 
150  SELDON_EXTERN template int BiCg(const VirtualMatrix<Complex_wp >&, DistributedVector<Complex_wp >&, const DistributedVector<Complex_wp >&,
151  Preconditioner_Base<Complex_wp >&, Iteration<Real_wp>&);
152 
153  SELDON_EXTERN template int BiCgStab(const VirtualMatrix<Real_wp>&, DistributedVector<Real_wp>&, const DistributedVector<Real_wp>&,
154  Preconditioner_Base<Real_wp>&, Iteration<Real_wp>&);
155 
156  SELDON_EXTERN template int BiCgStab(const VirtualMatrix<Complex_wp >&, DistributedVector<Complex_wp >&, const DistributedVector<Complex_wp >&,
157  Preconditioner_Base<Complex_wp >&, Iteration<Real_wp>&);
158 
159  SELDON_EXTERN template int BiCgStabl(const VirtualMatrix<Real_wp>&, DistributedVector<Real_wp>&, const DistributedVector<Real_wp>&,
160  Preconditioner_Base<Real_wp>&, Iteration<Real_wp>&);
161 
162  SELDON_EXTERN template int BiCgStabl(const VirtualMatrix<Complex_wp >&, DistributedVector<Complex_wp >&, const DistributedVector<Complex_wp >&,
163  Preconditioner_Base<Complex_wp >&, Iteration<Real_wp>&);
164 
165  SELDON_EXTERN template int BiCgcr(const VirtualMatrix<Real_wp>&, DistributedVector<Real_wp>&, const DistributedVector<Real_wp>&,
166  Preconditioner_Base<Real_wp>&, Iteration<Real_wp>&);
167 
168  SELDON_EXTERN template int BiCgcr(const VirtualMatrix<Complex_wp >&, DistributedVector<Complex_wp >&, const DistributedVector<Complex_wp >&,
169  Preconditioner_Base<Complex_wp >&, Iteration<Real_wp>&);
170 
171  SELDON_EXTERN template int Cg(const VirtualMatrix<Real_wp>&, DistributedVector<Real_wp>&, const DistributedVector<Real_wp>&,
172  Preconditioner_Base<Real_wp>&, Iteration<Real_wp>&);
173 
174  SELDON_EXTERN template int Cg(const VirtualMatrix<Complex_wp >&, DistributedVector<Complex_wp >&, const DistributedVector<Complex_wp >&,
175  Preconditioner_Base<Complex_wp >&, Iteration<Real_wp>&);
176 
177  SELDON_EXTERN template int Cgne(const VirtualMatrix<Real_wp>&, DistributedVector<Real_wp>&, const DistributedVector<Real_wp>&,
178  Preconditioner_Base<Real_wp>&, Iteration<Real_wp>&);
179 
180  SELDON_EXTERN template int Cgne(const VirtualMatrix<Complex_wp >&, DistributedVector<Complex_wp >&, const DistributedVector<Complex_wp >&,
181  Preconditioner_Base<Complex_wp >&, Iteration<Real_wp>&);
182 
183  SELDON_EXTERN template int Cgs(const VirtualMatrix<Real_wp>&, DistributedVector<Real_wp>&, const DistributedVector<Real_wp>&,
184  Preconditioner_Base<Real_wp>&, Iteration<Real_wp>&);
185 
186  SELDON_EXTERN template int Cgs(const VirtualMatrix<Complex_wp >&, DistributedVector<Complex_wp >&, const DistributedVector<Complex_wp >&,
187  Preconditioner_Base<Complex_wp >&, Iteration<Real_wp>&);
188 
189  SELDON_EXTERN template int CoCg(const VirtualMatrix<Real_wp>&, DistributedVector<Real_wp>&, const DistributedVector<Real_wp>&,
190  Preconditioner_Base<Real_wp>&, Iteration<Real_wp>&);
191 
192  SELDON_EXTERN template int CoCg(const VirtualMatrix<Complex_wp >&, DistributedVector<Complex_wp >&, const DistributedVector<Complex_wp >&,
193  Preconditioner_Base<Complex_wp >&, Iteration<Real_wp>&);
194 
195  SELDON_EXTERN template int Gcr(const VirtualMatrix<Real_wp>&, DistributedVector<Real_wp>&, const DistributedVector<Real_wp>&,
196  Preconditioner_Base<Real_wp>&, Iteration<Real_wp>&);
197 
198  SELDON_EXTERN template int Gcr(const VirtualMatrix<Complex_wp >&, DistributedVector<Complex_wp >&, const DistributedVector<Complex_wp >&,
199  Preconditioner_Base<Complex_wp >&, Iteration<Real_wp>&);
200 
201 #ifdef SELDON_WITH_BLAS
202  SELDON_EXTERN template int Gmres(const VirtualMatrix<Real_wp>&, DistributedVector<Real_wp>&, const DistributedVector<Real_wp>&,
203  Preconditioner_Base<Real_wp>&, Iteration<Real_wp>&);
204 
205  SELDON_EXTERN template int Gmres(const VirtualMatrix<Complex_wp >&, DistributedVector<Complex_wp >&, const DistributedVector<Complex_wp >&,
206  Preconditioner_Base<Complex_wp >&, Iteration<Real_wp>&);
207 #endif
208 
209  SELDON_EXTERN template int Lsqr(const VirtualMatrix<Real_wp>&, DistributedVector<Real_wp>&, const DistributedVector<Real_wp>&,
210  Preconditioner_Base<Real_wp>&, Iteration<Real_wp>&);
211 
212  SELDON_EXTERN template int Lsqr(const VirtualMatrix<Complex_wp >&, DistributedVector<Complex_wp >&, const DistributedVector<Complex_wp >&,
213  Preconditioner_Base<Complex_wp >&, Iteration<Real_wp>&);
214 
215  SELDON_EXTERN template int MinRes(const VirtualMatrix<Real_wp>&, DistributedVector<Real_wp>&, const DistributedVector<Real_wp>&,
216  Preconditioner_Base<Real_wp>&, Iteration<Real_wp>&);
217 
218  SELDON_EXTERN template int MinRes(const VirtualMatrix<Complex_wp >&, DistributedVector<Complex_wp >&, const DistributedVector<Complex_wp >&,
219  Preconditioner_Base<Complex_wp >&, Iteration<Real_wp>&);
220 
221  SELDON_EXTERN template int QCgs(const VirtualMatrix<Real_wp>&, DistributedVector<Real_wp>&, const DistributedVector<Real_wp>&,
222  Preconditioner_Base<Real_wp>&, Iteration<Real_wp>&);
223 
224  SELDON_EXTERN template int QCgs(const VirtualMatrix<Complex_wp >&, DistributedVector<Complex_wp >&, const DistributedVector<Complex_wp >&,
225  Preconditioner_Base<Complex_wp >&, Iteration<Real_wp>&);
226 
227  SELDON_EXTERN template int Qmr(const VirtualMatrix<Real_wp>&, DistributedVector<Real_wp>&, const DistributedVector<Real_wp>&,
228  Preconditioner_Base<Real_wp>&, Iteration<Real_wp>&);
229 
230  SELDON_EXTERN template int Qmr(const VirtualMatrix<Complex_wp >&, DistributedVector<Complex_wp >&, const DistributedVector<Complex_wp >&,
231  Preconditioner_Base<Complex_wp >&, Iteration<Real_wp>&);
232 
233  SELDON_EXTERN template int QmrSym(const VirtualMatrix<Real_wp>&, DistributedVector<Real_wp>&, const DistributedVector<Real_wp>&,
234  Preconditioner_Base<Real_wp>&, Iteration<Real_wp>&);
235 
236  SELDON_EXTERN template int QmrSym(const VirtualMatrix<Complex_wp >&, DistributedVector<Complex_wp >&, const DistributedVector<Complex_wp >&,
237  Preconditioner_Base<Complex_wp >&, Iteration<Real_wp>&);
238 
239  SELDON_EXTERN template int Symmlq(const VirtualMatrix<Real_wp>&, DistributedVector<Real_wp>&, const DistributedVector<Real_wp>&,
240  Preconditioner_Base<Real_wp>&, Iteration<Real_wp>&);
241 
242  SELDON_EXTERN template int Symmlq(const VirtualMatrix<Complex_wp >&, DistributedVector<Complex_wp >&, const DistributedVector<Complex_wp >&,
243  Preconditioner_Base<Complex_wp >&, Iteration<Real_wp>&);
244 
245  SELDON_EXTERN template int TfQmr(const VirtualMatrix<Real_wp>&, DistributedVector<Real_wp>&, const DistributedVector<Real_wp>&,
246  Preconditioner_Base<Real_wp>&, Iteration<Real_wp>&);
247 
248  SELDON_EXTERN template int TfQmr(const VirtualMatrix<Complex_wp >&, DistributedVector<Complex_wp >&, const DistributedVector<Complex_wp >&,
249  Preconditioner_Base<Complex_wp >&, Iteration<Real_wp>&);
250 #endif
251 
252 }
Seldon::QCgs
int QCgs(const Matrix1 &A, Vector1 &x, const Vector1 &b, Preconditioner &M, Iteration< Titer > &iter)
Solves linear system using Quasi-minimized Conjugate Gradient Squared.
Definition: QCgs.cxx:53
Seldon::TfQmr
int TfQmr(const Matrix1 &A, Vector1 &x, const Vector1 &b, Preconditioner &M, Iteration< Titer > &iter)
Solves a linear system by using Transpose Free Quasi-Minimal Residual.
Definition: TfQmr.cxx:51
Seldon::Cgs
int Cgs(const Matrix1 &A, Vector1 &x, const Vector1 &b, Preconditioner &M, Iteration< Titer > &iter)
Solves linear system using Conjugate Gradient Squared (CGS)
Definition: Cgs.cxx:52
Seldon::Iteration::Init
int Init(const Vector1 &r)
Initialization with the right hand side.
Definition: Iterative.cxx:218
Seldon::Cg
int Cg(const Matrix1 &A, Vector1 &x, const Vector1 &b, Preconditioner &M, Iteration< Titer > &iter)
Solves a linear system by using Conjugate Gradient (CG)
Definition: Cg.cxx:52
Seldon::BiCgcr
int BiCgcr(const Matrix1 &A, Vector1 &x, const Vector1 &b, Preconditioner &M, Iteration< Titer > &iter)
Solves a linear system by using BiCgCr.
Definition: BiCgcr.cxx:52
Seldon::Gmres
int Gmres(const MatrixSparse &A, Vector1 &x, const Vector1 &b, Preconditioner &M, Iteration< Titer > &outer)
Solves a linear system by using Generalized Minimum Residual (GMRES)
Definition: Gmres.cxx:51
Seldon::MinRes
int MinRes(const Matrix1 &A, Vector1 &x, const Vector1 &b, Preconditioner &M, Iteration< Titer > &iter)
Solves a linear system by using Minimum Residual (MinRes)
Definition: MinRes.cxx:53
Seldon::Cgne
int Cgne(const Matrix1 &A, Vector1 &x, const Vector1 &b, Preconditioner &M, Iteration< Titer > &iter)
Solves a linear system using Conjugate Gradient Normal Equation (CGNE)
Definition: Cgne.cxx:50
Seldon::Symmlq
int Symmlq(const Matrix1 &A, Vector1 &x, const Vector1 &b, Preconditioner &M, Iteration< Titer > &iter)
Solves a linear system by using Symmetric LQ (SymmLQ)
Definition: Symmlq.cxx:52
Seldon::CoCg
int CoCg(const Matrix1 &A, Vector1 &x, const Vector1 &b, Preconditioner &M, Iteration< Titer > &iter)
Solves a linear system by using Conjugate Orthogonal Conjugate Gradient.
Definition: CoCg.cxx:51
Seldon::Qmr
int Qmr(const Matrix1 &A, Vector1 &x, const Vector1 &b, Preconditioner &M, Iteration< Titer > &iter)
Solves a linear system by using Quasi-Minimal Residual (QMR)
Definition: Qmr.cxx:48
Seldon::Lsqr
int Lsqr(const Matrix1 &A, Vector1 &x, const Vector1 &b, Preconditioner &M, Iteration< Titer > &iter)
Solves a linear system by using Least Squares (LSQR)
Definition: Lsqr.cxx:47
Seldon::BiCg
int BiCg(const Matrix1 &A, Vector1 &x, const Vector1 &b, Preconditioner &M, Iteration< Titer > &iter)
Solves a linear system by using BiConjugate Gradient (BICG)
Definition: BiCg.cxx:53
Seldon::QmrSym
int QmrSym(const Matrix1 &A, Vector1 &x, const Vector1 &b, Preconditioner &M, Iteration< Titer > &iter)
Solves linear system using Symmetric Quasi-Minimal Residual (SQMR)
Definition: QmrSym.cxx:48
Seldon
Seldon namespace.
Definition: Array.cxx:24
Seldon::BiCgStabl
int BiCgStabl(const Matrix1 &A, Vector1 &x, const Vector1 &b, Preconditioner &M, Iteration< Titer > &iter)
Implements BiConjugate Gradient Stabilized (BICG-STAB(l))
Definition: BiCgStabl.cxx:50
Seldon::Gcr
int Gcr(const Matrix1 &A, Vector1 &x, const Vector1 &b, Preconditioner &M, Iteration< Titer > &outer)
Solves a linear system by using Generalized Conjugate Residual (GCR)
Definition: Gcr.cxx:52
Seldon::Iteration::Finished
bool Finished(const Vector1 &r) const
Returns true if the iterative solver has reached its end.
Definition: Iterative.cxx:264
Seldon::BiCgStab
int BiCgStab(const Matrix1 &A, Vector1 &x, const Vector1 &b, Preconditioner &M, Iteration< Titer > &iter)
Implements BiConjugate Gradient Stabilized (BICG-STAB)
Definition: BiCgStab.cxx:50