LOCA::Epetra::LowRankUpdateOp Class Reference

An Epetra operator for implementing the operator $P = J + U V^T$. More...

#include <LOCA_Epetra_LowRankUpdateOp.H>

Inheritance diagram for LOCA::Epetra::LowRankUpdateOp:

Inheritance graph
[legend]
Collaboration diagram for LOCA::Epetra::LowRankUpdateOp:

Collaboration graph
[legend]

List of all members.

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::GlobalDataglobalData
 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.
LowRankUpdateOpoperator= (const LowRankUpdateOp &)
 Private to prohibit copying.


Detailed Description

An Epetra operator for implementing the operator $P = J + U V^T$.

This class implements the Epetra_Operator interface for $P = J + U V^T$ where $J$ is an Epetra_Operator and $U$ and $V$ are Epetra_MultiVectors.

Definition at line 71 of file LOCA_Epetra_LowRankUpdateOp.H.


Constructor & Destructor Documentation

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.

Parameters:
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.

References ipiv, J, JinvU, lapack, localMap, lu, U, and V.

LOCA::Epetra::LowRankUpdateOp::~LowRankUpdateOp (  )  [virtual]

Destructor.

Definition at line 89 of file LOCA_Epetra_LowRankUpdateOp.C.

LOCA::Epetra::LowRankUpdateOp::LowRankUpdateOp ( const LowRankUpdateOp  )  [private]

Private to prohibit copying.


Member Function Documentation

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.

References J, localMap, tmpMat, U, useTranspose, and V.

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 $J$ is defined and is given by $\|J\|_\infty+\|U\|_\infty\|V\|_\infty$.

Reimplemented in LOCA::Epetra::LowRankUpdateRowMatrix.

Definition at line 180 of file LOCA_Epetra_LowRankUpdateOp.C.

References J, U, and V.

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.


Member Data Documentation

Global data object.

Definition at line 157 of file LOCA_Epetra_LowRankUpdateOp.H.

Referenced by ApplyInverse().

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]

Teuchos::RCP<const Epetra_MultiVector> LOCA::Epetra::LowRankUpdateOp::U [protected]

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().

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().


The documentation for this class was generated from the following files:

Generated on Wed Oct 21 14:28:30 2009 for Nonlinear Solver Project by  doxygen 1.5.9