// $Id: richardson.h,v 1.1.1.1 2000/11/02 08:47:17 fritzi Exp $ // This file is part of the DEAL Library // DEAL is Copyright(1995) by // Roland Becker, Guido Kanschat, Franz-Theo Suttmeier #ifndef __richardson_h #define __richardson_h #include #ifndef __iteration_h #include #endif ////////// template inline int richardson(MATRIX& A, VECTOR& x, VECTOR& b, MEM& mem, IterationInfo& info) { int it, reached=0; double res; VECTOR& r= mem.v(0); r.reinit(x); VECTOR& d= mem.v(1); d.reinit(x); for (it=0;!reached;it++) { res = A.residual(r,x,b); reached = info.check_residual(it,res); if (reached) continue; A.precondition(d,r); x.add(d); } if (reached<0) return 1; return 0; } #endif