43 #ifndef BELOS_STATUS_TEST_LOGRESNORM_HPP 
   44 #define BELOS_STATUS_TEST_LOGRESNORM_HPP 
   66 template <
class ScalarType, 
class MV, 
class OP>
 
  112   void setMaxIters(
int maxIters) { maxIters_ = maxIters; logResNorm_.reserve( maxIters_ ); }
 
  126   const std::vector<typename Teuchos::ScalarTraits<ScalarType>::magnitudeType>&
 
  135   void print(std::ostream& os, 
int indent = 0) 
const;
 
  148     std::ostringstream oss; 
 
  165   std::vector<typename Teuchos::ScalarTraits<ScalarType>::magnitudeType> logResNorm_;
 
  171   template <
class ScalarType, 
class MV, 
class OP> 
 
  177       maxIters_ = maxIters;
 
  179     logResNorm_.reserve( maxIters_ );
 
  184   template <
class ScalarType, 
class MV, 
class OP>
 
  190     int numRHS = MVT::GetNumberVecs( *(lp.
getRHS()) );
 
  194     if ( (numRHS==1) && (blkSize==1) && (currIters!=nIters_) )
 
  196       std::vector<MagnitudeType> tmp_resvector( 1 );
 
  201         MVT::MvNorm (*residMV, tmp_resvector, 
TwoNorm);
 
  204       logResNorm_.push_back( tmp_resvector[0] );
 
  211   template <
class ScalarType, 
class MV, 
class OP>
 
  216     logResNorm_.reserve( maxIters_ );
 
  219   template <
class ScalarType, 
class MV, 
class OP>
 
  222     for (
int j = 0; j < indent; j ++)
 
  225     os << 
"Logging Absolute Residual 2-Norm" << std::endl;
 
  228   template <
class ScalarType, 
class MV, 
class OP>
 
  231     os << std::left << std::setw(13) << std::setfill(
'.');
 
  233     os << std::left << std::setfill(
' ');
 
virtual Teuchos::RCP< const MV > getNativeResiduals(std::vector< typename Teuchos::ScalarTraits< ScalarType >::magnitudeType > *norms) const =0
Get the residuals native to the solver. 
 
void setMaxIters(int maxIters)
Sets the maximum number of iterations allowed so internal storage can be resized. ...
 
StatusTestLogResNorm(int maxIters)
Constructor. 
 
void print(std::ostream &os, int indent=0) const 
Output formatted description of stopping test to output stream. 
 
Pure virtual base class for defining the status testing capabilities of Belos. 
 
const std::vector< typename Teuchos::ScalarTraits< ScalarType >::magnitudeType > & getLogResNorm() const 
Returns the log of the absolute residual norm from the iteration. 
 
StatusType getStatus() const 
Return the result of the most recent CheckStatus call. 
 
void printStatus(std::ostream &os, StatusType type) const 
Print message for each status specific to this stopping test. 
 
A Belos::StatusTest debugging class for storing the absolute residual norms generated during a solve...
 
Teuchos::RCP< const MV > getRHS() const 
A pointer to the right-hand side B. 
 
A pure virtual class for defining the status tests for the Belos iterative solvers. 
 
int getNumIters() const 
Returns the current number of iterations from the most recent StatusTest call. 
 
StatusType
Whether the StatusTest wants iteration to stop. 
 
Traits class which defines basic operations on multivectors. 
 
Teuchos::ScalarTraits< ScalarType >::magnitudeType MagnitudeType
The type of the magnitude (absolute value) of a ScalarType. 
 
std::string description() const 
Method to return description of the debugging status test. 
 
StatusType checkStatus(Iteration< ScalarType, MV, OP > *iSolver)
Check convergence status of the iterative solver: Unconverged, Converged, Failed. ...
 
virtual int getNumIters() const =0
Get the current iteration count. 
 
A linear system to solve, and its associated information. 
 
virtual ~StatusTestLogResNorm()
Destructor. 
 
virtual const LinearProblem< ScalarType, MV, OP > & getProblem() const =0
Get a constant reference to the linear problem. 
 
const std::vector< int > getLSIndex() const 
(Zero-based) indices of the linear system(s) currently being solved. 
 
int getMaxIters() const 
Returns the maximum number of iterations set in the constructor. 
 
void reset()
Resets the status test to the initial internal state.