NAME
CMAbsResidual - absolute convergence monitor for residual vectors
INCLUDE
include "ConvMonitor.h"
SYNTAX
//-----------------------------------------------------------------------------
class CMAbsResidual : public ConvMonitor
//-----------------------------------------------------------------------------
{
friend class ConvMonitorList;
protected:
bool firstcall;
Handle(LinEqVector) orig_res; // Internal storage of original residual,
// used when the target vector is computed.
Residual_type residual_tp;
public:
CMAbsResidual (const ConvMonitor_prm& p)
: ConvMonitor (p), firstcall (true) { residual_tp = p.residual_tp; }
CMAbsResidual (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);
~CMAbsResidual () {}
virtual void init (Handle(LinEqCommBlk)& communication);
virtual bool satisfied ();
virtual void performance (ConvStatistics& convStat);
virtual String description () const;
virtual void print (Os os) const;
CLASS_INFO
};
KEYWORDS
iterative methods, absolute stopping criterion, convergence moni
tor, residual
DESCRIPTION
Monitors the behaviour of a residual vector imported from an
IterativeSolver via a LinEqCommBlk, i.e. no internal storage. The
convergence test is absolute, , where `$v^{k}$$$$r^{k}$$s^{k}$ or
and S is a scaling obtained from spectral properties (if this
information is available).
CONSTRUCTORS AND INITIALIZATION
Same as ConvMonitor. Note that the parameter residual_tp
determines whether the monitor uses the original residual, the
left preconditioned one or the pseudo-residual.
MEMBER FUNCTIONS
Same as ConvMonitor.
SEE ALSO
class ConvMonitor, class IterativeSolver, class ConvMonitorList.
AUTHOR
Are Magnus Bruaset, SINTEF Applied Mathematics.