NOX
Development
|
An Epetra operator for implementing the operator . More...
#include <LOCA_Epetra_LowRankUpdateOp.H>
Public Member Functions | |
LowRankUpdateOp (const Teuchos::RCP< LOCA::GlobalData > &global_data, const Teuchos::RCP< Epetra_Operator > &jacOperator, const Teuchos::RCP< const Epetra_MultiVector > &U_multiVec, const Teuchos::RCP< const Epetra_MultiVector > &V_multiVec, bool setup_for_solve) | |
Constructor. More... | |
virtual | ~LowRankUpdateOp () |
Destructor. | |
virtual int | SetUseTranspose (bool UseTranspose) |
Set to true if the transpose of the operator is requested. | |
virtual int | Apply (const Epetra_MultiVector &Input, Epetra_MultiVector &Result) const |
Returns the result of a Epetra_Operator applied to a Epetra_MultiVector Input in Result as described above. | |
virtual int | ApplyInverse (const Epetra_MultiVector &X, Epetra_MultiVector &Y) const |
This method does nothing. | |
virtual double | NormInf () const |
Returns an approximate infinity norm of the operator matrix. More... | |
virtual const char * | Label () const |
Returns a character std::string describing the operator. | |
virtual bool | UseTranspose () const |
Returns the current UseTranspose setting. Always returns false. | |
virtual bool | HasNormInf () const |
Returns true if the this object can provide an approximate Inf-norm, false otherwise. | |
virtual const Epetra_Comm & | Comm () const |
Returns a reference to the Epetra_Comm communicator associated with this operator. | |
virtual const Epetra_Map & | OperatorDomainMap () const |
Returns the Epetra_Map object associated with the domain of this matrix operator. | |
virtual const Epetra_Map & | OperatorRangeMap () const |
Returns the Epetra_Map object associated with the range of this matrix operator. | |
Protected Attributes | |
Teuchos::RCP< LOCA::GlobalData > | globalData |
Global data object. | |
std::string | label |
Label for operator. | |
Epetra_LocalMap | localMap |
Local map for generating temporary matrices. | |
Teuchos::RCP< Epetra_Operator > | J |
Stores operator representing J. | |
Teuchos::RCP< const Epetra_MultiVector > | U |
Stores multivector representing U. | |
Teuchos::RCP< const Epetra_MultiVector > | V |
Stores multivector representing V. | |
bool | useTranspose |
Flag indicating whether to use the transpose. | |
Teuchos::RCP< Epetra_MultiVector > | tmpMat |
Temporary matrix. | |
Teuchos::RCP< Epetra_MultiVector > | JinvU |
Stores J^{-1}*U. | |
Teuchos::RCP< Epetra_MultiVector > | lu |
Stores LU factorization of I + V^T*J^{-1}*U. | |
std::vector< int > | ipiv |
Stores pivots for LU factorization. | |
Teuchos::LAPACK< int, double > | lapack |
Lapack wrappers. | |
An Epetra operator for implementing the operator .
This class implements the Epetra_Operator interface for where is an Epetra_Operator and and are Epetra_MultiVectors.
LOCA::Epetra::LowRankUpdateOp::LowRankUpdateOp | ( | const Teuchos::RCP< LOCA::GlobalData > & | global_data, |
const Teuchos::RCP< Epetra_Operator > & | jacOperator, | ||
const Teuchos::RCP< const Epetra_MultiVector > & | U_multiVec, | ||
const Teuchos::RCP< const Epetra_MultiVector > & | V_multiVec, | ||
bool | setup_for_solve | ||
) |
Constructor.
global_data | [in] The global data object |
jacOperator | [in] Jacobian operator J |
U_multiVec | [in] Multivector representing U |
V_multiVec | [in] Multivector representing V |
References Epetra_Operator::ApplyInverse(), Teuchos::LAPACK< OrdinalType, ScalarType >::GETRF(), ipiv, J, JinvU, lapack, localMap, lu, Teuchos::rcp(), U, and V.
|
virtual |
Returns an approximate infinity norm of the operator matrix.
This is defined only if NormInf() of the underlying operator is defined and is given by .
Implements Epetra_Operator.
Reimplemented in LOCA::Epetra::LowRankUpdateRowMatrix.