Epetra_LinearProblem: The Epetra Linear Problem Class. More...
#include <Epetra_LinearProblem.h>
Public Member Functions | |
Constructors/Destructor | |
Epetra_LinearProblem (void) | |
Epetra_LinearProblem Default Constructor. More... | |
Epetra_LinearProblem (Epetra_RowMatrix *A, Epetra_MultiVector *X, Epetra_MultiVector *B) | |
Epetra_LinearProblem Constructor to pass in an operator as a matrix. More... | |
Epetra_LinearProblem (Epetra_Operator *A, Epetra_MultiVector *X, Epetra_MultiVector *B) | |
Epetra_LinearProblem Constructor to pass in a basic Epetra_Operator. More... | |
Epetra_LinearProblem (const Epetra_LinearProblem &Problem) | |
Epetra_LinearProblem Copy Constructor. More... | |
virtual | ~Epetra_LinearProblem (void) |
Epetra_LinearProblem Destructor. More... | |
Integrity check method | |
int | CheckInput () const |
Check input parameters for existence and size consistency. More... | |
Computational methods | |
int | LeftScale (const Epetra_Vector &D) |
Perform left scaling of a linear problem. More... | |
int | RightScale (const Epetra_Vector &D) |
Perform right scaling of a linear problem. More... | |
Accessor methods | |
Epetra_Operator * | GetOperator () const |
Get a pointer to the operator A. | |
Epetra_RowMatrix * | GetMatrix () const |
Get a pointer to the matrix A. | |
Epetra_MultiVector * | GetLHS () const |
Get a pointer to the left-hand-side X. | |
Epetra_MultiVector * | GetRHS () const |
Get a pointer to the right-hand-side B. | |
ProblemDifficultyLevel | GetPDL () const |
Get problem difficulty level. | |
bool | IsOperatorSymmetric () const |
Get operator symmetry bool. | |
Set methods | |
enum | ProblemDifficultyLevel { easy, moderate, hard, unsure } |
void | AssertSymmetric () |
void | SetPDL (ProblemDifficultyLevel PDL) |
Set problem difficulty level. More... | |
void | SetOperator (Epetra_RowMatrix *A) |
Set Operator A of linear problem AX = B using an Epetra_RowMatrix. More... | |
void | SetOperator (Epetra_Operator *A) |
Set Operator A of linear problem AX = B using an Epetra_Operator. More... | |
void | SetLHS (Epetra_MultiVector *X) |
Set left-hand-side X of linear problem AX = B. More... | |
void | SetRHS (Epetra_MultiVector *B) |
Set right-hand-side B of linear problem AX = B. More... | |
Epetra_LinearProblem: The Epetra Linear Problem Class.
The Epetra_LinearProblem class is a wrapper that encapsulates the general information needed for solving a linear system of equations. Currently it accepts a Epetra matrix, initial guess and RHS and returns the solution. the elapsed time for each calling processor.
Epetra_LinearProblem::Epetra_LinearProblem | ( | void | ) |
Epetra_LinearProblem Default Constructor.
Creates an empty Epetra_LinearProblem instance. The operator A, left-hand-side X and right-hand-side B must be set use the SetOperator(), SetLHS() and SetRHS() methods respectively.
Epetra_LinearProblem::Epetra_LinearProblem | ( | Epetra_RowMatrix * | A, |
Epetra_MultiVector * | X, | ||
Epetra_MultiVector * | B | ||
) |
Epetra_LinearProblem Constructor to pass in an operator as a matrix.
Creates a Epetra_LinearProblem instance where the operator is passed in as a matrix.
Epetra_LinearProblem::Epetra_LinearProblem | ( | Epetra_Operator * | A, |
Epetra_MultiVector * | X, | ||
Epetra_MultiVector * | B | ||
) |
Epetra_LinearProblem Constructor to pass in a basic Epetra_Operator.
Creates a Epetra_LinearProblem instance for the case where an operator is not necessarily a matrix.
Epetra_LinearProblem::Epetra_LinearProblem | ( | const Epetra_LinearProblem & | Problem | ) |
Epetra_LinearProblem Copy Constructor.
Makes copy of an existing Epetra_LinearProblem instance.
|
virtual |
Epetra_LinearProblem Destructor.
Completely deletes a Epetra_LinearProblem object.
int Epetra_LinearProblem::CheckInput | ( | ) | const |
Check input parameters for existence and size consistency.
Returns 0 if all input parameters are valid. Returns +1 if operator is not a matrix. This is not necessarily an error, but no scaling can be done if the user passes in an Epetra_Operator that is not an Epetra_Matrix
int Epetra_LinearProblem::LeftScale | ( | const Epetra_Vector & | D | ) |
Perform left scaling of a linear problem.
Applies the scaling vector D to the left side of the matrix A() and to the right hand side B(). Note that the operator must be an Epetra_RowMatrix, not just an Epetra_Operator (the base class of Epetra_RowMatrix).
In | D - Vector containing scaling values. D[i] will be applied to the ith row of A() and B(). |
int Epetra_LinearProblem::RightScale | ( | const Epetra_Vector & | D | ) |
Perform right scaling of a linear problem.
Applies the scaling vector D to the right side of the matrix A(). Apply the inverse of D to the initial guess. Note that the operator must be an Epetra_RowMatrix, not just an Epetra_Operator (the base class of Epetra_RowMatrix).
In | D - Vector containing scaling values. D[i] will be applied to the ith row of A(). 1/D[i] will be applied to the ith row of B(). |
|
inline |
Set left-hand-side X of linear problem AX = B.
Sets a pointer to a Epetra_MultiVector. No copy of the object is made.
|
inline |
Set Operator A of linear problem AX = B using an Epetra_RowMatrix.
Sets a pointer to a Epetra_RowMatrix. No copy of the operator is made.
|
inline |
Set Operator A of linear problem AX = B using an Epetra_Operator.
Sets a pointer to a Epetra_Operator. No copy of the operator is made.
|
inline |
Set problem difficulty level.
Sets Aztec options and parameters based on a definition of easy moderate or hard problem. Relieves the user from explicitly setting a large number of individual parameter values. This function can be used in conjunction with the SetOptions() and SetParams() functions.
|
inline |
Set right-hand-side B of linear problem AX = B.
Sets a pointer to a Epetra_MultiVector. No copy of the object is made.