#include <LOCA_BorderedSolver_EpetraAugmented.H>


Public Member Functions | |
| EpetraAugmented (const Teuchos::RCP< LOCA::GlobalData > &global_data, const Teuchos::RCP< LOCA::Parameter::SublistParser > &topParams, const Teuchos::RCP< Teuchos::ParameterList > &solverParams) | |
| Constructor. | |
| virtual | ~EpetraAugmented () |
| Destructor. | |
| virtual void | setMatrixBlocks (const Teuchos::RCP< const LOCA::BorderedSolver::AbstractOperator > &op, const Teuchos::RCP< const NOX::Abstract::MultiVector > &blockA, const Teuchos::RCP< const LOCA::MultiContinuation::ConstraintInterface > &blockB, const Teuchos::RCP< const NOX::Abstract::MultiVector::DenseMatrix > &blockC) |
| Set blocks. | |
| virtual NOX::Abstract::Group::ReturnType | initForSolve () |
| Intialize solver for a solve. | |
| virtual NOX::Abstract::Group::ReturnType | initForTransposeSolve () |
| Intialize solver for a transpose solve. | |
| virtual NOX::Abstract::Group::ReturnType | apply (const NOX::Abstract::MultiVector &X, const NOX::Abstract::MultiVector::DenseMatrix &Y, NOX::Abstract::MultiVector &U, NOX::Abstract::MultiVector::DenseMatrix &V) const |
| Computed extended matrix-multivector product. | |
| virtual NOX::Abstract::Group::ReturnType | applyTranspose (const NOX::Abstract::MultiVector &X, const NOX::Abstract::MultiVector::DenseMatrix &Y, NOX::Abstract::MultiVector &U, NOX::Abstract::MultiVector::DenseMatrix &V) const |
| Computed extended matrix transpose-multivector product. | |
| virtual NOX::Abstract::Group::ReturnType | applyInverse (Teuchos::ParameterList ¶ms, const NOX::Abstract::MultiVector *F, const NOX::Abstract::MultiVector::DenseMatrix *G, NOX::Abstract::MultiVector &X, NOX::Abstract::MultiVector::DenseMatrix &Y) const |
| Solves the extended system using the technique described above. | |
| virtual NOX::Abstract::Group::ReturnType | applyInverseTranspose (Teuchos::ParameterList ¶ms, const NOX::Abstract::MultiVector *F, const NOX::Abstract::MultiVector::DenseMatrix *G, NOX::Abstract::MultiVector &X, NOX::Abstract::MultiVector::DenseMatrix &Y) const |
| Solves the transpose of the extended system as defined above. | |
Protected Attributes | |
| Teuchos::RCP< LOCA::GlobalData > | globalData |
| Global data object. | |
| Teuchos::RCP < Teuchos::ParameterList > | solverParams |
| Solver parameters. | |
| Teuchos::RCP< LOCA::Epetra::Group > | grp |
| Pointer to group storing J. | |
|
Teuchos::RCP< const LOCA::BorderedSolver::AbstractOperator > | op |
| Teuchos::RCP< const NOX::Abstract::MultiVector > | A |
| Pointer to A block. | |
| Teuchos::RCP< const NOX::Abstract::MultiVector > | B |
| Pointer to B block. | |
| Teuchos::RCP< const NOX::Abstract::MultiVector::DenseMatrix > | C |
| Pointer to C block. | |
| Teuchos::RCP< const LOCA::MultiContinuation::ConstraintInterfaceMVDX > | constraints |
| Pointer to constraint interface. | |
| int | numConstraints |
| Number of constraint equations. | |
| bool | isZeroA |
| flag indicating whether A block is zero | |
| bool | isZeroB |
| flag indicating whether B block is zero | |
| bool | isZeroC |
| flag indicating whether C block is zero | |
Private Member Functions | |
| EpetraAugmented (const EpetraAugmented &) | |
| Private to prohibit copying. | |
| EpetraAugmented & | operator= (const EpetraAugmented &) |
| Private to prohibit copying. | |
This class solves the extended system of equations
by forming an augmented Epetra_Operator representing
by creating a new Epetra_Map for the additional equations.
Definition at line 94 of file LOCA_BorderedSolver_EpetraAugmented.H.
| LOCA::BorderedSolver::EpetraAugmented::EpetraAugmented | ( | const Teuchos::RCP< LOCA::GlobalData > & | global_data, | |
| const Teuchos::RCP< LOCA::Parameter::SublistParser > & | topParams, | |||
| const Teuchos::RCP< Teuchos::ParameterList > & | solverParams | |||
| ) |
Constructor.
| global_data | [in] Global data object | |
| topParams | [in] Parsed top-level parameter list | |
| solverParams | [in] Bordered solver parameters. Currently none are referenced. |
Definition at line 55 of file LOCA_BorderedSolver_EpetraAugmented.C.
| LOCA::BorderedSolver::EpetraAugmented::~EpetraAugmented | ( | ) | [virtual] |
| LOCA::BorderedSolver::EpetraAugmented::EpetraAugmented | ( | const EpetraAugmented & | ) | [private] |
Private to prohibit copying.
| void LOCA::BorderedSolver::EpetraAugmented::setMatrixBlocks | ( | const Teuchos::RCP< const LOCA::BorderedSolver::AbstractOperator > & | op, | |
| const Teuchos::RCP< const NOX::Abstract::MultiVector > & | blockA, | |||
| const Teuchos::RCP< const LOCA::MultiContinuation::ConstraintInterface > & | blockB, | |||
| const Teuchos::RCP< const NOX::Abstract::MultiVector::DenseMatrix > & | blockC | |||
| ) | [virtual] |
Set blocks.
The blockA or blockC pointer may be null if either is zero. Whether block B is zero will be determined by querying blockB via ConstraintInterface::isConstraintDerivativesXZero.
Implements LOCA::BorderedSolver::AbstractStrategy.
Definition at line 79 of file LOCA_BorderedSolver_EpetraAugmented.C.
References A, B, C, constraints, globalData, grp, isZeroA, isZeroB, isZeroC, and numConstraints.
| NOX::Abstract::Group::ReturnType LOCA::BorderedSolver::EpetraAugmented::initForSolve | ( | ) | [virtual] |
Intialize solver for a solve.
This should be called after setMatrixBlocks(), but before applyInverse().
Implements LOCA::BorderedSolver::AbstractStrategy.
Definition at line 163 of file LOCA_BorderedSolver_EpetraAugmented.C.
References NOX::Abstract::Group::Ok.
| NOX::Abstract::Group::ReturnType LOCA::BorderedSolver::EpetraAugmented::initForTransposeSolve | ( | ) | [virtual] |
Intialize solver for a transpose solve.
This should be called after setMatrixBlocks(), but before applyInverseTranspose().
Implements LOCA::BorderedSolver::AbstractStrategy.
Definition at line 169 of file LOCA_BorderedSolver_EpetraAugmented.C.
References NOX::Abstract::Group::Ok.
| NOX::Abstract::Group::ReturnType LOCA::BorderedSolver::EpetraAugmented::apply | ( | const NOX::Abstract::MultiVector & | X, | |
| const NOX::Abstract::MultiVector::DenseMatrix & | Y, | |||
| NOX::Abstract::MultiVector & | U, | |||
| NOX::Abstract::MultiVector::DenseMatrix & | V | |||
| ) | const [virtual] |
Computed extended matrix-multivector product.
Computes
Implements LOCA::BorderedSolver::AbstractStrategy.
Definition at line 176 of file LOCA_BorderedSolver_EpetraAugmented.C.
References A, C, constraints, NOX::Abstract::Group::Failed, grp, isZeroA, isZeroB, isZeroC, and NOX::Abstract::MultiVector::update().
| NOX::Abstract::Group::ReturnType LOCA::BorderedSolver::EpetraAugmented::applyTranspose | ( | const NOX::Abstract::MultiVector & | X, | |
| const NOX::Abstract::MultiVector::DenseMatrix & | Y, | |||
| NOX::Abstract::MultiVector & | U, | |||
| NOX::Abstract::MultiVector::DenseMatrix & | V | |||
| ) | const [virtual] |
Computed extended matrix transpose-multivector product.
Computes
Implements LOCA::BorderedSolver::AbstractStrategy.
Definition at line 209 of file LOCA_BorderedSolver_EpetraAugmented.C.
References A, C, constraints, NOX::Abstract::Group::Failed, grp, isZeroA, isZeroB, isZeroC, and NOX::Abstract::MultiVector::multiply().
| NOX::Abstract::Group::ReturnType LOCA::BorderedSolver::EpetraAugmented::applyInverse | ( | Teuchos::ParameterList & | params, | |
| const NOX::Abstract::MultiVector * | F, | |||
| const NOX::Abstract::MultiVector::DenseMatrix * | G, | |||
| NOX::Abstract::MultiVector & | X, | |||
| NOX::Abstract::MultiVector::DenseMatrix & | Y | |||
| ) | const [virtual] |
Solves the extended system using the technique described above.
The params argument is the linear solver parameters. If isZeroF or isZeroG is true, than the corresponding F or G pointers may be NULL.
Note that if either the A or B blocks are zero, the system is solved using a simple block elimination scheme instead of the Householder scheme.
Implements LOCA::BorderedSolver::AbstractStrategy.
Definition at line 242 of file LOCA_BorderedSolver_EpetraAugmented.C.
References A, B, LOCA::Epetra::AugmentedOp::buildEpetraAugmentedMultiVec(), C, constraints, NOX::Epetra::MultiVector::CreateView, NOX::DeepCopy, globalData, grp, LOCA::Epetra::AugmentedOp::init(), NOX::Abstract::MultiVector::init(), isZeroA, isZeroB, NOX::Abstract::Group::NotConverged, NOX::Epetra::MultiVector::numVectors(), NOX::Abstract::Group::Ok, LOCA::Epetra::AugmentedOp::setEpetraAugmentedMultiVec(), LOCA::BorderedSolver::UpperTriangularBlockElimination::solve(), and LOCA::BorderedSolver::LowerTriangularBlockElimination::solve().
| virtual NOX::Abstract::Group::ReturnType LOCA::BorderedSolver::EpetraAugmented::applyInverseTranspose | ( | Teuchos::ParameterList & | params, | |
| const NOX::Abstract::MultiVector * | F, | |||
| const NOX::Abstract::MultiVector::DenseMatrix * | G, | |||
| NOX::Abstract::MultiVector & | X, | |||
| NOX::Abstract::MultiVector::DenseMatrix & | Y | |||
| ) | const [inline, virtual] |
Solves the transpose of the extended system as defined above.
The params argument is the linear solver parameters.
Implements LOCA::BorderedSolver::AbstractStrategy.
Definition at line 228 of file LOCA_BorderedSolver_EpetraAugmented.H.
References NOX::Abstract::Group::NotDefined.
| EpetraAugmented& LOCA::BorderedSolver::EpetraAugmented::operator= | ( | const EpetraAugmented & | ) | [private] |
Private to prohibit copying.
Teuchos::RCP<LOCA::GlobalData> LOCA::BorderedSolver::EpetraAugmented::globalData [protected] |
Global data object.
Definition at line 247 of file LOCA_BorderedSolver_EpetraAugmented.H.
Referenced by applyInverse(), and setMatrixBlocks().
Teuchos::RCP<Teuchos::ParameterList> LOCA::BorderedSolver::EpetraAugmented::solverParams [protected] |
Teuchos::RCP<LOCA::Epetra::Group> LOCA::BorderedSolver::EpetraAugmented::grp [protected] |
Pointer to group storing J.
Definition at line 253 of file LOCA_BorderedSolver_EpetraAugmented.H.
Referenced by apply(), applyInverse(), applyTranspose(), and setMatrixBlocks().
Teuchos::RCP<const NOX::Abstract::MultiVector> LOCA::BorderedSolver::EpetraAugmented::A [protected] |
Pointer to A block.
Definition at line 259 of file LOCA_BorderedSolver_EpetraAugmented.H.
Referenced by apply(), applyInverse(), applyTranspose(), and setMatrixBlocks().
Teuchos::RCP<const NOX::Abstract::MultiVector> LOCA::BorderedSolver::EpetraAugmented::B [protected] |
Pointer to B block.
Definition at line 262 of file LOCA_BorderedSolver_EpetraAugmented.H.
Referenced by applyInverse(), and setMatrixBlocks().
Teuchos::RCP<const NOX::Abstract::MultiVector::DenseMatrix> LOCA::BorderedSolver::EpetraAugmented::C [protected] |
Pointer to C block.
Definition at line 265 of file LOCA_BorderedSolver_EpetraAugmented.H.
Referenced by apply(), applyInverse(), applyTranspose(), and setMatrixBlocks().
Teuchos::RCP<const LOCA::MultiContinuation::ConstraintInterfaceMVDX> LOCA::BorderedSolver::EpetraAugmented::constraints [protected] |
Pointer to constraint interface.
Definition at line 268 of file LOCA_BorderedSolver_EpetraAugmented.H.
Referenced by apply(), applyInverse(), applyTranspose(), and setMatrixBlocks().
int LOCA::BorderedSolver::EpetraAugmented::numConstraints [protected] |
Number of constraint equations.
Definition at line 271 of file LOCA_BorderedSolver_EpetraAugmented.H.
Referenced by setMatrixBlocks().
bool LOCA::BorderedSolver::EpetraAugmented::isZeroA [protected] |
flag indicating whether A block is zero
Definition at line 274 of file LOCA_BorderedSolver_EpetraAugmented.H.
Referenced by apply(), applyInverse(), applyTranspose(), and setMatrixBlocks().
bool LOCA::BorderedSolver::EpetraAugmented::isZeroB [protected] |
flag indicating whether B block is zero
Definition at line 277 of file LOCA_BorderedSolver_EpetraAugmented.H.
Referenced by apply(), applyInverse(), applyTranspose(), and setMatrixBlocks().
bool LOCA::BorderedSolver::EpetraAugmented::isZeroC [protected] |
flag indicating whether C block is zero
Definition at line 280 of file LOCA_BorderedSolver_EpetraAugmented.H.
Referenced by apply(), applyTranspose(), and setMatrixBlocks().
1.5.9