NOX Development
|
Bordered system solver strategy for nested bordered systems. More...
#include <LOCA_BorderedSolver_Nested.H>
Public Member Functions | |
Nested (const Teuchos::RCP< LOCA::GlobalData > &global_data, const Teuchos::RCP< LOCA::Parameter::SublistParser > &topParams, const Teuchos::RCP< Teuchos::ParameterList > &solverParams) | |
Constructor. | |
virtual | ~Nested () |
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 as defined above using bordering. | |
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 using bordering. | |
![]() | |
AbstractStrategy () | |
Constructor. | |
virtual | ~AbstractStrategy () |
Destructor. | |
virtual void | setMatrixBlocksMultiVecConstraint (const Teuchos::RCP< const LOCA::BorderedSolver::AbstractOperator > &op, const Teuchos::RCP< const NOX::Abstract::MultiVector > &blockA, const Teuchos::RCP< const NOX::Abstract::MultiVector > &blockB, const Teuchos::RCP< const NOX::Abstract::MultiVector::DenseMatrix > &blockC) |
Set blocks with multivector constraint. | |
Protected Attributes | |
Teuchos::RCP< LOCA::GlobalData > | globalData |
Global data object. | |
Teuchos::RCP< Teuchos::ParameterList > | solverParams |
Solver parameters. | |
Teuchos::RCP< LOCA::BorderedSolver::AbstractStrategy > | solver |
Underlying solver. | |
Teuchos::RCP< const LOCA::BorderedSystem::AbstractGroup > | grp |
Pointer to group storing J. | |
Teuchos::RCP< const NOX::Abstract::Group > | unbordered_grp |
Pointer to unbordered group. | |
int | myWidth |
Width for bordered rows/columns. | |
int | underlyingWidth |
Underling width. | |
int | numConstraints |
Number of my constraints. | |
Bordered system solver strategy for nested bordered systems.
This class implements a bordered solver strategy for the bordered system
when solverParams
pass through the constructor. This sublist should specify the "Bordered Solver Method" for the solver as well as any other parameters for that method, and any method that can be instantiated through the LOCA::Factory is available.
Note that the operator representing
LOCA::BorderedSolver::Nested::Nested | ( | 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 as described above |
References globalData, solver, and solverParams.
|
virtual |
Computed extended matrix-multivector product.
Computes
Implements LOCA::BorderedSolver::AbstractStrategy.
References NOX::Abstract::MultiVector::numVectors().
|
virtual |
Solves the extended system as defined above using bordering.
The params argument is the linear solver parameters. If isZeroF or isZeroG is true, than the corresponding F or G pointers may be NULL.
Implements LOCA::BorderedSolver::AbstractStrategy.
References NOX::Abstract::MultiVector::init(), and NOX::Abstract::MultiVector::numVectors().
|
virtual |
Solves the transpose of the extended system as defined above using bordering.
The params argument is the linear solver parameters. If isZeroF or isZeroG is true, than the corresponding F or G pointers may be NULL.
Implements LOCA::BorderedSolver::AbstractStrategy.
References NOX::Abstract::MultiVector::init(), and NOX::Abstract::MultiVector::numVectors().
|
virtual |
Computed extended matrix transpose-multivector product.
Computes
Implements LOCA::BorderedSolver::AbstractStrategy.
References NOX::Abstract::MultiVector::numVectors().
|
virtual |
Intialize solver for a solve.
This should be called after setMatrixBlocks(), but before applyInverse().
Implements LOCA::BorderedSolver::AbstractStrategy.
|
virtual |
Intialize solver for a transpose solve.
This should be called after setMatrixBlocks(), but before applyInverseTranspose().
Implements LOCA::BorderedSolver::AbstractStrategy.
|
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.