Commit 1ea24af9 authored by Jakub Klinkovský's avatar Jakub Klinkovský
Browse files

Improved refreshing of iterative solver monitor's state

This will ensure that in verbose mode, the final state of the linear
system solvers is always printed. Previously this was the case only when
refresh rate was equal to 1.
parent 0058a250
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -193,7 +193,7 @@ bool tnlBICGStabSolver< Matrix, Preconditioner > :: solve( const Vector& b, Vect
         this->setResidue( ResidueGetter :: getResidue( *matrix, b, x, bNorm ) );
   }
   //this->setResidue( ResidueGetter :: getResidue( *matrix, b, x, bNorm ) );
   this->refreshSolverMonitor();
   this->refreshSolverMonitor( true );
   return this->checkConvergence();
};

+1 −1
Original line number Diff line number Diff line
@@ -142,7 +142,7 @@ solve( const Vector& b, Vector& x )
         this -> setResidue( ResidueGetter :: getResidue( *matrix, b, x, bNorm ) );
   }
   this -> setResidue( ResidueGetter :: getResidue( *matrix, b, x, bNorm ) );
   this -> refreshSolverMonitor();
   this -> refreshSolverMonitor( true );
   return this->checkConvergence();
};

+1 −1
Original line number Diff line number Diff line
@@ -289,7 +289,7 @@ bool tnlGMRESSolver< Matrix, Preconditioner > :: solve( const Vector& b, Vector&
      //cout << "residue = " << beta / normb << endl;

   }
   this->refreshSolverMonitor();
   this->refreshSolverMonitor( true );
   return this->checkConvergence();
};

+3 −2
Original line number Diff line number Diff line
@@ -154,8 +154,9 @@ bool tnlTFQMRSolver< Matrix, Preconditioner > :: solve( const Vector& b, Vector&
      this -> refreshSolverMonitor();
   }
   this -> setResidue( ResidueGetter :: getResidue( *matrix, b, x, bNorm ) );
   this -> refreshSolverMonitor();
      if( this -> getResidue() > this -> getConvergenceResidue() ) return false;
   this -> refreshSolverMonitor( true );
   if( this -> getResidue() > this -> getConvergenceResidue() )
      return false;
   return true;
};

+2 −1
Original line number Diff line number Diff line
@@ -107,9 +107,10 @@ bool tnlSORSolver< Matrix, Preconditioner > :: solve( const Vector& b,
                                      x,
                                      this->getOmega() );
      this -> setResidue( ResidueGetter :: getResidue( *matrix, x, b, bNorm ) );
      this -> refreshSolverMonitor();
   }
   this -> setResidue( ResidueGetter :: getResidue( *matrix, x, b, bNorm ) );
   this -> refreshSolverMonitor();
   this -> refreshSolverMonitor( true );
   return this->checkConvergence();
};

Loading