#include <LOCA_Epetra_CompactWYOp.H>
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::GlobalData > | globalData |
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. | |
CompactWYOp & | operator= (const CompactWYOp &) |
Private to prohibit copying. |
This class implements the operator as described in the LOCA::BorderedSolver::EpetraHouseholder documentation for solving an extended set of equations. It uses the
factor from a QR factorization using the compact WY representation.
Definition at line 73 of file LOCA_Epetra_CompactWYOp.H.
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.
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] |
LOCA::Epetra::CompactWYOp::CompactWYOp | ( | const CompactWYOp & | ) | [private] |
Private to prohibit copying.
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 is defined and is given by
.
Definition at line 129 of file LOCA_Epetra_CompactWYOp.C.
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 | ) |
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.
void LOCA::Epetra::CompactWYOp::applyCompactWY | ( | const Epetra_MultiVector & | x, | |
Epetra_MultiVector & | result_x, | |||
Epetra_MultiVector & | result_p | |||
) | const |
CompactWYOp& LOCA::Epetra::CompactWYOp::operator= | ( | const CompactWYOp & | ) | [private] |
Private to prohibit copying.
Teuchos::RCP<LOCA::GlobalData> LOCA::Epetra::CompactWYOp::globalData [protected] |
Global data object.
Definition at line 189 of file LOCA_Epetra_CompactWYOp.H.
Referenced by Apply(), ApplyInverse(), and SetUseTranspose().
string LOCA::Epetra::CompactWYOp::label [protected] |
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] |
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().