|
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.
1.8.5