Diffpack Documentation


Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members   Search  

CMRelMixResidual Class Reference

relative convergence monitor based on mixed residuals. More...

#include <ConvMonitor.h>

Inheritance diagram for CMRelMixResidual::

CMAbsResidual ConvMonitor HandleId List of all members.

Public Methods

 CMRelMixResidual (const ConvMonitor_prm &p)
 CMRelMixResidual (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)
 ~CMRelMixResidual ()
virtual void getScaling (String &scale) const
virtual real getScaling () const
virtual void init (Handle(LinEqCommBlk) &communication)
virtual bool satisfied ()
virtual void performance (ConvStatistics &convStat)
virtual String description () const
virtual void print (Os os) const

Protected Attributes

bool rel_to_rhs
Handle(LinEqVectorr

Detailed Description

relative convergence monitor based on mixed residuals.

NAME: CMRelMixResidual - relative convergence monitor based on mixed residuals

DESCRIPTION:

Monitors the behaviour of the unpreconditioned residual "r" compared to a possibly preconditioned one. Both vectors are obtained from an "IterativeSolver" via a "LinEqCommBlk" object, i.e. no internal storage. The convergence test is relative, `$S\cdot((r^{k},v^{k})/(r^{0},v^{0})) \leq \varepsilon$`, where `$v^{k}$` equals one of the `$`k`$`th residuals `$r^{k}$`, `$s^{k}$` or `$z^{k}$` and `$`S`$` is a scaling obtained from spectral properties (if this information is available).

Note that if preconditioned residuals are used, the preconditioning operator should be SPD to provide a uniformly positive measure.


Constructor & Destructor Documentation

CMRelMixResidual::CMRelMixResidual ( const ConvMonitor_prm & p )
 

See class "CMAbsResidual".

CMRelMixResidual::CMRelMixResidual ( 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 )
 

See documentation of one of the overloaded constructor.

CMRelMixResidual::~CMRelMixResidual ( ) [inline]
 


Member Function Documentation

String CMRelMixResidual::description ( ) const [virtual]
 

Reimplemented from CMAbsResidual.

real CMRelMixResidual::getScaling ( ) const [virtual]
 

Reimplemented from ConvMonitor.

void CMRelMixResidual::getScaling ( String & scale ) const [virtual]
 

Reimplemented from ConvMonitor.

void CMRelMixResidual::init ( Handle(LinEqCommBlk) & communication ) [virtual]
 

set up communication link via the "LinEqCommBlk" object referred to by "communication".

Reimplemented from CMAbsResidual.

void CMRelMixResidual::performance ( ConvStatistics & convStat ) [virtual]
 

fill out relevant parts of a "LinEqStatBlk" object for performance report.

Reimplemented from CMAbsResidual.

void CMRelMixResidual::print ( Os os ) const [virtual]
 

Reimplemented from CMAbsResidual.

bool CMRelMixResidual::satisfied ( ) [virtual]
 

monitor the test value and return true if the condition is met.

Reimplemented from CMAbsResidual.


Friends And Related Function Documentation

class ConvMonitorList [friend]
 

Reimplemented from CMAbsResidual.


Member Data Documentation

Handle(LinEqVector) CMRelMixResidual::r [protected]
 

bool CMRelMixResidual::rel_to_rhs [protected]
 


The documentation for this class was generated from the following file:
Copyright © 2003 inuTech GmbH. All rights reserved.