#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. | |
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. | |
virtual const char * | Label () const |
Returns a character 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. | |
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. | |
Private Member Functions | |
LowRankUpdateOp (const LowRankUpdateOp &) | |
Private to prohibit copying. | |
LowRankUpdateOp & | operator= (const LowRankUpdateOp &) |
Private to prohibit copying. |
This class implements the Epetra_Operator interface for where
is an Epetra_Operator and
and
are Epetra_MultiVectors.
Definition at line 71 of file LOCA_Epetra_LowRankUpdateOp.H.
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 |
Definition at line 50 of file LOCA_Epetra_LowRankUpdateOp.C.
LOCA::Epetra::LowRankUpdateOp::~LowRankUpdateOp | ( | ) | [virtual] |
LOCA::Epetra::LowRankUpdateOp::LowRankUpdateOp | ( | const LowRankUpdateOp & | ) | [private] |
Private to prohibit copying.
int LOCA::Epetra::LowRankUpdateOp::SetUseTranspose | ( | bool | UseTranspose | ) | [virtual] |
Set to true if the transpose of the operator is requested.
Definition at line 94 of file LOCA_Epetra_LowRankUpdateOp.C.
References J, and useTranspose.
int LOCA::Epetra::LowRankUpdateOp::Apply | ( | const Epetra_MultiVector & | Input, | |
Epetra_MultiVector & | Result | |||
) | const [virtual] |
Returns the result of a Epetra_Operator applied to a Epetra_MultiVector Input in Result as described above.
Definition at line 101 of file LOCA_Epetra_LowRankUpdateOp.C.
int LOCA::Epetra::LowRankUpdateOp::ApplyInverse | ( | const Epetra_MultiVector & | X, | |
Epetra_MultiVector & | Y | |||
) | const [virtual] |
This method does nothing.
Definition at line 139 of file LOCA_Epetra_LowRankUpdateOp.C.
References globalData, ipiv, J, JinvU, lapack, localMap, lu, tmpMat, U, useTranspose, and V.
double LOCA::Epetra::LowRankUpdateOp::NormInf | ( | ) | const [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
.
Reimplemented in LOCA::Epetra::LowRankUpdateRowMatrix.
Definition at line 180 of file LOCA_Epetra_LowRankUpdateOp.C.
const char * LOCA::Epetra::LowRankUpdateOp::Label | ( | ) | const [virtual] |
Returns a character string describing the operator.
Definition at line 200 of file LOCA_Epetra_LowRankUpdateOp.C.
References label.
bool LOCA::Epetra::LowRankUpdateOp::UseTranspose | ( | ) | const [virtual] |
Returns the current UseTranspose setting. Always returns false.
Definition at line 206 of file LOCA_Epetra_LowRankUpdateOp.C.
References useTranspose.
bool LOCA::Epetra::LowRankUpdateOp::HasNormInf | ( | ) | const [virtual] |
Returns true if the this object can provide an approximate Inf-norm, false otherwise.
Definition at line 212 of file LOCA_Epetra_LowRankUpdateOp.C.
References J.
const Epetra_Comm & LOCA::Epetra::LowRankUpdateOp::Comm | ( | ) | const [virtual] |
Returns a reference to the Epetra_Comm communicator associated with this operator.
Definition at line 218 of file LOCA_Epetra_LowRankUpdateOp.C.
References J.
const Epetra_Map & LOCA::Epetra::LowRankUpdateOp::OperatorDomainMap | ( | ) | const [virtual] |
Returns the Epetra_Map object associated with the domain of this matrix operator.
Definition at line 223 of file LOCA_Epetra_LowRankUpdateOp.C.
References J.
const Epetra_Map & LOCA::Epetra::LowRankUpdateOp::OperatorRangeMap | ( | ) | const [virtual] |
Returns the Epetra_Map object associated with the range of this matrix operator.
Definition at line 229 of file LOCA_Epetra_LowRankUpdateOp.C.
References J.
LowRankUpdateOp& LOCA::Epetra::LowRankUpdateOp::operator= | ( | const LowRankUpdateOp & | ) | [private] |
Private to prohibit copying.
Teuchos::RCP<LOCA::GlobalData> LOCA::Epetra::LowRankUpdateOp::globalData [protected] |
Global data object.
Definition at line 157 of file LOCA_Epetra_LowRankUpdateOp.H.
Referenced by ApplyInverse().
string LOCA::Epetra::LowRankUpdateOp::label [protected] |
Label for operator.
Definition at line 160 of file LOCA_Epetra_LowRankUpdateOp.H.
Referenced by Label().
Epetra_LocalMap LOCA::Epetra::LowRankUpdateOp::localMap [protected] |
Local map for generating temporary matrices.
Definition at line 163 of file LOCA_Epetra_LowRankUpdateOp.H.
Referenced by Apply(), ApplyInverse(), LowRankUpdateOp(), and LOCA::Epetra::LowRankUpdateRowMatrix::Multiply().
Teuchos::RCP<Epetra_Operator> LOCA::Epetra::LowRankUpdateOp::J [protected] |
Stores operator representing J.
Definition at line 166 of file LOCA_Epetra_LowRankUpdateOp.H.
Referenced by Apply(), ApplyInverse(), Comm(), HasNormInf(), LowRankUpdateOp(), NormInf(), OperatorDomainMap(), OperatorRangeMap(), and SetUseTranspose().
Teuchos::RCP<const Epetra_MultiVector> LOCA::Epetra::LowRankUpdateOp::U [protected] |
Stores multivector representing U.
Definition at line 169 of file LOCA_Epetra_LowRankUpdateOp.H.
Referenced by Apply(), ApplyInverse(), LOCA::Epetra::LowRankUpdateRowMatrix::computeUV(), LowRankUpdateOp(), LOCA::Epetra::LowRankUpdateRowMatrix::Multiply(), and NormInf().
Teuchos::RCP<const Epetra_MultiVector> LOCA::Epetra::LowRankUpdateOp::V [protected] |
Stores multivector representing V.
Definition at line 172 of file LOCA_Epetra_LowRankUpdateOp.H.
Referenced by Apply(), ApplyInverse(), LowRankUpdateOp(), LOCA::Epetra::LowRankUpdateRowMatrix::Multiply(), and NormInf().
bool LOCA::Epetra::LowRankUpdateOp::useTranspose [protected] |
Flag indicating whether to use the transpose.
Definition at line 175 of file LOCA_Epetra_LowRankUpdateOp.H.
Referenced by Apply(), ApplyInverse(), SetUseTranspose(), and UseTranspose().
Teuchos::RCP<Epetra_MultiVector> LOCA::Epetra::LowRankUpdateOp::tmpMat [mutable, protected] |
Temporary matrix.
Definition at line 178 of file LOCA_Epetra_LowRankUpdateOp.H.
Referenced by Apply(), ApplyInverse(), and LOCA::Epetra::LowRankUpdateRowMatrix::Multiply().
Teuchos::RCP<Epetra_MultiVector> LOCA::Epetra::LowRankUpdateOp::JinvU [protected] |
Stores J^{-1}*U.
Definition at line 181 of file LOCA_Epetra_LowRankUpdateOp.H.
Referenced by ApplyInverse(), and LowRankUpdateOp().
Teuchos::RCP<Epetra_MultiVector> LOCA::Epetra::LowRankUpdateOp::lu [protected] |
Stores LU factorization of I + V^T*J^{-1}*U.
Definition at line 184 of file LOCA_Epetra_LowRankUpdateOp.H.
Referenced by ApplyInverse(), and LowRankUpdateOp().
std::vector<int> LOCA::Epetra::LowRankUpdateOp::ipiv [protected] |
Stores pivots for LU factorization.
Definition at line 187 of file LOCA_Epetra_LowRankUpdateOp.H.
Referenced by ApplyInverse(), and LowRankUpdateOp().
Teuchos::LAPACK<int,double> LOCA::Epetra::LowRankUpdateOp::lapack [protected] |
Lapack wrappers.
Definition at line 190 of file LOCA_Epetra_LowRankUpdateOp.H.
Referenced by ApplyInverse(), and LowRankUpdateOp().