NOX::Epetra::Scaling Class Reference

Object to control scaling of a linear system. More...

#include <NOX_Epetra_Scaling.H>

Collaboration diagram for NOX::Epetra::Scaling:

[legend]
List of all members.

Public Types

enum  SourceType { None, RowSum, UserDefined }
 Describes where the scaling vector comes from.
enum  ScaleType { Left, Right }
 Describes the type of scaling to apply.

Public Member Functions

 Scaling ()
 Constructor.
virtual ~Scaling ()
 Virtual destructor.
virtual void addUserScaling (ScaleType type, Epetra_Vector &D)
 Add a user supplied diagonal scale vector to the scaling object.
virtual void addRowSumScaling (ScaleType type, Epetra_Vector &D)
 Add "Row Sum" scaling to the scaling object. The supplied vector is used to store the current row sum vector.
virtual void computeScaling (const Epetra_LinearProblem &problem)
 Computes Row Sum scaling diagonal vectors. Only needs to be called if a row sum scaling has been rewuested.
virtual void scaleLinearSystem (Epetra_LinearProblem &problem)
 Scales the linear system.
virtual void unscaleLinearSystem (Epetra_LinearProblem &problem)
 Remove the scaling from the linear system.
virtual void applyRightScaling (const Epetra_Vector &input, Epetra_Vector &result)
 Applies any RIGHT scaling vectors to an input vector.
virtual void applyLeftScaling (const Epetra_Vector &input, Epetra_Vector &result)
 Applies any LEFT scaling vectors to an input vector.
virtual void print (ostream &os)
 Printing.

Detailed Description

Object to control scaling of a linear system.

Scaling of the linear system can affect the Nonlinear solves if using an inexact Newton method. We must account for computed norms.

Currently this assumes a diagonal scaling only! Once epetra can do matrix-matrix multiplies we will expand this class.


The documentation for this class was generated from the following files:
Generated on Thu Sep 18 12:42:28 2008 for NOX by doxygen 1.3.9.1