NAME
ConvMonSeq - base class for convergence monitors (vector
sequences)
INCLUDE
include "ConvMonitor.h"
SYNTAX
//-----------------------------------------------------------------------------
class ConvMonSeq : public ConvMonitor
//-----------------------------------------------------------------------------
{
friend class ConvMonitorList;
protected:
bool prev_is_internal; // True if prev_vec is allocated internally
Handle(LinEqVector) prev_vec; // test curr_vec - prev_vec
bool firstcall; // True before first call of satisfied
LinEqVector scratch;
ConvMonSeq (const ConvMonitor_prm& p)
: ConvMonitor (p), firstcall (true) {}
ConvMonSeq (const real conv_tolerance = 1.0e-4,
const Norm_type norm_tp = l2,
const int chunk_size = 100);
public:
~ConvMonSeq () {}
virtual bool ok () const;
virtual bool satisfied ();
virtual real getStorage () const;
virtual void print (Os os) const;
CLASS_INFO
};
KEYWORDS
iterative methods, stopping criterion, convergence monitor
DESCRIPTION
The base class describes an extension to ConvMonitor that permits
the monitoring of a vector sequence, e.g. cheking the difference
of two succeeding iterates . The vectors to be monitored may be
allocated internally if these entities are not already allocated
by the iterative solver.
CONSTRUCTORS AND INITIALIZATION
Same as ConvMonitor.
MEMBER FUNCTIONS
Same as ConvMonitor.
SEE ALSO
class ConvMonitor, class IterativeSolver, class ConvMonitorList.
AUTHOR
Are Magnus Bruaset, SINTEF Applied Mathematics.