LOCA::Epetra::CompactWYOp Class Reference

An Epetra operator for solving extended sets of equations using Householder transformations. More...

#include <LOCA_Epetra_CompactWYOp.H>

Collaboration diagram for LOCA::Epetra::CompactWYOp:

Collaboration graph
[legend]

List of all members.

Public Member Functions

 CompactWYOp (const Teuchos::RCP< LOCA::GlobalData > &global_data, const Teuchos::RCP< const Epetra_Operator > &jacOperator, const Teuchos::RCP< const Epetra_MultiVector > &A_multiVec, const Teuchos::RCP< const Epetra_MultiVector > &Y_x_multiVec, const Teuchos::RCP< const NOX::Abstract::MultiVector::DenseMatrix > &Y_p_matrix, const Teuchos::RCP< const NOX::Abstract::MultiVector::DenseMatrix > &T_matrix)
 Constructor.
virtual ~CompactWYOp ()
 Destructor.
virtual int SetUseTranspose (bool UseTranspose)
 The operator currently does not support a transpose.
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.
void init (const Epetra_MultiVector &x)
 Initialize operator. Call this before starting a linear solve. The Epetra_MultiVector argument x must be of the same size and distribution as arguments to Apply().
void finish ()
 Finish up solve. Call this after a linear solve is finished to inform the operator that the solve is completed.
void applyCompactWY (const Epetra_MultiVector &x, Epetra_MultiVector &result_x, Epetra_MultiVector &result_p) const
 Applies the operator Q with a zero parameter component on input.

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< const
Epetra_Operator > 
J
 Stores operator representing J.
Teuchos::RCP< const
Epetra_MultiVector > 
A
 Stores multivector representing A.
Teuchos::RCP< const
Epetra_MultiVector > 
Y_x
 Stores multivector representing solution component of Y.
Epetra_MultiVector Y_p
 Stores multivector representing parameter component of Y.
Epetra_MultiVector T
 Stores multivector representing T.
Epetra_MultiVector * tmpMat1
 Temporary matrix.
Epetra_MultiVector * tmpMV
 Temporary multivec.
Teuchos::BLAS< int, double > dblas
 BLAS wrappers, used for triangular matrix-matrix products.

Private Member Functions

 CompactWYOp (const CompactWYOp &)
 Private to prohibit copying.
CompactWYOpoperator= (const CompactWYOp &)
 Private to prohibit copying.


Detailed Description

An Epetra operator for solving extended sets of equations using Householder transformations.

This class implements the $P$ operator as described in the LOCA::BorderedSolver::EpetraHouseholder documentation for solving an extended set of equations. It uses the $Q$ factor from a QR factorization using the compact WY representation.

Definition at line 73 of file LOCA_Epetra_CompactWYOp.H.


Constructor & Destructor Documentation

LOCA::Epetra::CompactWYOp::CompactWYOp ( const Teuchos::RCP< LOCA::GlobalData > &  global_data,
const Teuchos::RCP< const Epetra_Operator > &  jacOperator,
const Teuchos::RCP< const Epetra_MultiVector > &  A_multiVec,
const Teuchos::RCP< const Epetra_MultiVector > &  Y_x_multiVec,
const Teuchos::RCP< const NOX::Abstract::MultiVector::DenseMatrix > &  Y_p_matrix,
const Teuchos::RCP< const NOX::Abstract::MultiVector::DenseMatrix > &  T_matrix 
)

Constructor.

Parameters:
global_data [in] The global data object
jacOperator [in] Jacobian operator J
A_multiVec [in] Multivector representing A
Y_x_multiVec [in] Multivector representing the solution component of the Y matrix in the compact WY representation
Y_p_matrix [in] Matrix representing the parameter component of the Y matrix in the compact WY representation
T_matrix [in] Matrix representing the T matrix in the compact WY representation.

Definition at line 50 of file LOCA_Epetra_CompactWYOp.C.

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

Destructor.

Definition at line 73 of file LOCA_Epetra_CompactWYOp.C.

References tmpMat1, and tmpMV.

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

Private to prohibit copying.


Member Function Documentation

int LOCA::Epetra::CompactWYOp::SetUseTranspose ( bool  UseTranspose  )  [virtual]

The operator currently does not support a transpose.

Setting this to true throws an error.

Definition at line 82 of file LOCA_Epetra_CompactWYOp.C.

References globalData.

int LOCA::Epetra::CompactWYOp::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 95 of file LOCA_Epetra_CompactWYOp.C.

References A, applyCompactWY(), globalData, J, tmpMat1, and tmpMV.

int LOCA::Epetra::CompactWYOp::ApplyInverse ( const Epetra_MultiVector &  X,
Epetra_MultiVector &  Y 
) const [virtual]

This method does nothing.

Definition at line 119 of file LOCA_Epetra_CompactWYOp.C.

References globalData.

double LOCA::Epetra::CompactWYOp::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+\|A\|_\infty$.

Definition at line 129 of file LOCA_Epetra_CompactWYOp.C.

References A, and J.

const char * LOCA::Epetra::CompactWYOp::Label (  )  const [virtual]

Returns a character string describing the operator.

Definition at line 145 of file LOCA_Epetra_CompactWYOp.C.

References label.

bool LOCA::Epetra::CompactWYOp::UseTranspose (  )  const [virtual]

Returns the current UseTranspose setting. Always returns false.

Definition at line 151 of file LOCA_Epetra_CompactWYOp.C.

bool LOCA::Epetra::CompactWYOp::HasNormInf (  )  const [virtual]

Returns true if the this object can provide an approximate Inf-norm, false otherwise.

Definition at line 157 of file LOCA_Epetra_CompactWYOp.C.

References J.

const Epetra_Comm & LOCA::Epetra::CompactWYOp::Comm (  )  const [virtual]

Returns a reference to the Epetra_Comm communicator associated with this operator.

Definition at line 163 of file LOCA_Epetra_CompactWYOp.C.

References J.

const Epetra_Map & LOCA::Epetra::CompactWYOp::OperatorDomainMap (  )  const [virtual]

Returns the Epetra_Map object associated with the domain of this matrix operator.

Definition at line 168 of file LOCA_Epetra_CompactWYOp.C.

References J.

const Epetra_Map & LOCA::Epetra::CompactWYOp::OperatorRangeMap (  )  const [virtual]

Returns the Epetra_Map object associated with the range of this matrix operator.

Definition at line 174 of file LOCA_Epetra_CompactWYOp.C.

References J.

void LOCA::Epetra::CompactWYOp::init ( const Epetra_MultiVector &  x  ) 

Initialize operator. Call this before starting a linear solve. The Epetra_MultiVector argument x must be of the same size and distribution as arguments to Apply().

Definition at line 180 of file LOCA_Epetra_CompactWYOp.C.

References localMap, tmpMat1, and tmpMV.

void LOCA::Epetra::CompactWYOp::finish (  ) 

Finish up solve. Call this after a linear solve is finished to inform the operator that the solve is completed.

Definition at line 195 of file LOCA_Epetra_CompactWYOp.C.

References tmpMat1, and tmpMV.

void LOCA::Epetra::CompactWYOp::applyCompactWY ( const Epetra_MultiVector &  x,
Epetra_MultiVector &  result_x,
Epetra_MultiVector &  result_p 
) const

Applies the operator Q with a zero parameter component on input.

Definition at line 207 of file LOCA_Epetra_CompactWYOp.C.

References dblas, T, Y_p, and Y_x.

Referenced by Apply().

CompactWYOp& LOCA::Epetra::CompactWYOp::operator= ( const CompactWYOp  )  [private]

Private to prohibit copying.


Member Data Documentation

Global data object.

Definition at line 189 of file LOCA_Epetra_CompactWYOp.H.

Referenced by Apply(), ApplyInverse(), and SetUseTranspose().

Label for operator.

Definition at line 192 of file LOCA_Epetra_CompactWYOp.H.

Referenced by Label().

Epetra_LocalMap LOCA::Epetra::CompactWYOp::localMap [protected]

Local map for generating temporary matrices.

Definition at line 195 of file LOCA_Epetra_CompactWYOp.H.

Referenced by init().

Teuchos::RCP<const Epetra_Operator> LOCA::Epetra::CompactWYOp::J [protected]

Stores operator representing J.

Definition at line 198 of file LOCA_Epetra_CompactWYOp.H.

Referenced by Apply(), Comm(), HasNormInf(), NormInf(), OperatorDomainMap(), and OperatorRangeMap().

Teuchos::RCP<const Epetra_MultiVector> LOCA::Epetra::CompactWYOp::A [protected]

Stores multivector representing A.

Definition at line 201 of file LOCA_Epetra_CompactWYOp.H.

Referenced by Apply(), and NormInf().

Teuchos::RCP<const Epetra_MultiVector> LOCA::Epetra::CompactWYOp::Y_x [protected]

Stores multivector representing solution component of Y.

Definition at line 204 of file LOCA_Epetra_CompactWYOp.H.

Referenced by applyCompactWY().

Epetra_MultiVector LOCA::Epetra::CompactWYOp::Y_p [protected]

Stores multivector representing parameter component of Y.

Definition at line 207 of file LOCA_Epetra_CompactWYOp.H.

Referenced by applyCompactWY().

Epetra_MultiVector LOCA::Epetra::CompactWYOp::T [protected]

Stores multivector representing T.

Definition at line 210 of file LOCA_Epetra_CompactWYOp.H.

Referenced by applyCompactWY().

Epetra_MultiVector* LOCA::Epetra::CompactWYOp::tmpMat1 [protected]

Temporary matrix.

Definition at line 213 of file LOCA_Epetra_CompactWYOp.H.

Referenced by Apply(), finish(), init(), and ~CompactWYOp().

Epetra_MultiVector* LOCA::Epetra::CompactWYOp::tmpMV [protected]

Temporary multivec.

Definition at line 216 of file LOCA_Epetra_CompactWYOp.H.

Referenced by Apply(), finish(), init(), and ~CompactWYOp().

Teuchos::BLAS<int,double> LOCA::Epetra::CompactWYOp::dblas [protected]

BLAS wrappers, used for triangular matrix-matrix products.

Definition at line 219 of file LOCA_Epetra_CompactWYOp.H.

Referenced by applyCompactWY().


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

Generated on Thu Dec 17 11:02:47 2009 for Nonlinear Solver Project by  doxygen 1.5.9