Commit 814b9d95 authored by Tomáš Oberhuber's avatar Tomáš Oberhuber
Browse files

Adding iterative refinement to GMRES.

parent f64b8713
Loading
Loading
Loading
Loading
+19 −16
Original line number Diff line number Diff line
@@ -203,6 +203,9 @@ bool tnlGMRESSolver< Matrix, Preconditioner > :: solve( const Vector& b, Vector&
         
         //cout << " i = " << i << " vi = " << vi << endl;

         for( IndexType k = 0; k <= i; k++ )
            H[ k + i * ( m + 1 ) ] = 0.0;
         for( IndexType l = 0; l < 2; l++ )
            for( IndexType k = 0; k <= i; k++ )
            {
               vk. bind( &( _v. getData()[ k * _size ] ), _size );
@@ -210,7 +213,7 @@ bool tnlGMRESSolver< Matrix, Preconditioner > :: solve( const Vector& b, Vector&
                * H_{k,i} = ( w, v_k )
                */
               RealType H_k_i = _w. scalarProduct( vk );
            H[ k + i * ( m + 1 ) ] = H_k_i;           
               H[ k + i * ( m + 1 ) ] += H_k_i;           

               /****
                * w = w - H_{k,i} v_k