NAME
CMRelResidual - relative convergence monitor for residual vectors
INCLUDE
include "ConvMonitor.h"
SYNTAX
//-----------------------------------------------------------------------------
class CMRelResidual : public CMAbsResidual
//-----------------------------------------------------------------------------
{
friend class ConvMonitorList;
protected:
// True if basevalue uses (preconditioned) rhs rather than v^{0}
bool rel_to_rhs;
public:
CMRelResidual (const ConvMonitor_prm& p)
: CMAbsResidual (p) { rel_to_rhs = p.rel_to_rhs; }
CMRelResidual (const real conv_tolerance = 1.0e-4,
const Residual_type residual_tp = ORIGINAL_RES,
const Norm_type norm_tp = l2,
const int chunk_size = 100);
~CMRelResidual () {}
virtual void getScaling (String& scale) const;
virtual real getScaling () const;
virtual void init (Handle(LinEqCommBlk)& communication);
virtual void performance (ConvStatistics& convStat);
virtual String description () const;
virtual void print (Os os) const;
CLASS_INFO
};
KEYWORDS
iterative methods, relative stopping criterion, convergence moni
tor, residual
DESCRIPTION
Monitors the behaviour of a residual vector imported from an
IterativeSolver via a LinEqCommBlk object, i.e. no internal stor
age. The convergence test is relative, `$S(,
where equals one of the kth residuals , or and S is a scaling
obtained from spectral properties (if this information is avail
able).
CONSTRUCTORS AND INITIALIZATION
Same as CMAbsResidual.
MEMBER FUNCTIONS
Same as CMAbsResidual.
SEE ALSO
class CMAbsResidual, class IterativeSolver, class ConvMoni
torList.
AUTHOR
Are Magnus Bruaset, SINTEF Applied Mathematics.