#include <NOX_EpetraNew_Scaling.H>
Collaboration diagram for NOX::EpetraNew::Scaling:
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. | |
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.
1.3.9.1