3 #ifndef DUNE_PRECONDITIONERS_HH
4 #define DUNE_PRECONDITIONERS_HH
12 #include <dune/common/unused.hh>
66 template<
class O,
int c>
68 public Preconditioner<typename O::domain_type, typename O::range_type>
90 : inverse_operator_(inverse_operator)
100 inverse_operator_.apply(v, copy, res);
126 template<
class M,
class X,
class Y,
int l=1>
152 : _A_(A), _n(n), _w(w)
162 virtual void pre (X& x, Y& b)
164 DUNE_UNUSED_PARAMETER(x);
165 DUNE_UNUSED_PARAMETER(b);
174 virtual void apply (X& v,
const Y& d)
176 for (
int i=0; i<_n; i++) {
189 DUNE_UNUSED_PARAMETER(x);
214 template<
class M,
class X,
class Y,
int l=1>
240 : _A_(A), _n(n), _w(w)
250 virtual void pre (X& x, Y& b)
252 DUNE_UNUSED_PARAMETER(x);
253 DUNE_UNUSED_PARAMETER(b);
261 virtual void apply (X& v,
const Y& d)
263 this->
template apply<true>(v,d);
274 template<
bool forward>
278 for (
int i=0; i<_n; i++) {
282 for (
int i=0; i<_n; i++) {
294 DUNE_UNUSED_PARAMETER(x);
317 template<
class M,
class X,
class Y,
int l=1>
343 : _A_(A), _n(n), _w(w)
353 virtual void pre (X& x, Y& b)
355 DUNE_UNUSED_PARAMETER(x);
356 DUNE_UNUSED_PARAMETER(b);
364 virtual void apply (X& v,
const Y& d)
366 for (
int i=0; i<_n; i++) {
376 virtual void post (X& x)
378 DUNE_UNUSED_PARAMETER(x);
401 template<
class M,
class X,
class Y,
int l=1>
427 : _A_(A), _n(n), _w(w)
437 virtual void pre (X& x, Y& b)
439 DUNE_UNUSED_PARAMETER(x);
440 DUNE_UNUSED_PARAMETER(b);
448 virtual void apply (X& v,
const Y& d)
450 for (
int i=0; i<_n; i++) {
460 virtual void post (X& x)
462 DUNE_UNUSED_PARAMETER(x);
487 template<
class M,
class X,
class Y,
int l=1>
523 virtual void pre (X& x, Y& b)
525 DUNE_UNUSED_PARAMETER(x);
526 DUNE_UNUSED_PARAMETER(b);
534 virtual void apply (X& v,
const Y& d)
545 virtual void post (X& x)
547 DUNE_UNUSED_PARAMETER(x);
571 template<
class M,
class X,
class Y,
int l=1>
597 : ILU(A.N(),A.M(),M::row_wise)
609 virtual void pre (X& x, Y& b)
611 DUNE_UNUSED_PARAMETER(x);
612 DUNE_UNUSED_PARAMETER(b);
620 virtual void apply (X& v,
const Y& d)
631 virtual void post (X& x)
633 DUNE_UNUSED_PARAMETER(x);
655 template<
class X,
class Y>
686 virtual void pre (X& x, Y& b)
688 DUNE_UNUSED_PARAMETER(x);
689 DUNE_UNUSED_PARAMETER(b);
697 virtual void apply (X& v,
const Y& d)
708 virtual void post (X& x)
710 DUNE_UNUSED_PARAMETER(x);