NOX
Development
|
Object to control scaling of vectors and linear systems. More...
#include <NOX_Epetra_Scaling.H>
Public Types | |
enum | SourceType { None, RowSum, ColSum, 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, const Teuchos::RCP< Epetra_Vector > &D) |
Add a user supplied diagonal scale vector to the scaling object. | |
virtual void | addRowSumScaling (ScaleType type, const Teuchos::RCP< 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 | addColSumScaling (ScaleType type, const Teuchos::RCP< Epetra_Vector > &D) |
Add "Col Sum" scaling to the scaling object. The supplied vector is used to store the current column sum vector. | |
virtual void | computeScaling (const Epetra_LinearProblem &problem) |
Computes Row Sum scaling diagonal vectors. Only needs to be called if a row or column sum scaling has been requested. | |
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 (std::ostream &os) |
Printing. | |
Object to control scaling of vectors and linear systems.
Currently this assumes a diagonal scaling only! Once epetra can do matrix-matrix multiplies we will expand this class.