Index

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.