NOX
Development
|
Bordered system solver strategy for nested bordered systems. More...
#include <LOCA_BorderedSolver_Nested.H>
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 itself has this block form. It combines the blocks for , , and and then instantiates a solver as specified by the "Nested Bordered Solver" sublist of the 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 must implement the LOCA::BorderedSolver::BorderedOperator interface, and the constraint object representing must be of type LOCA::MultiContinuation::ConstraintInterfaceMVDX.
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, LOCA::GlobalData::locaFactory, Teuchos::rcp(), solver, solverParams, and Teuchos::ParameterList::sublist().
|
virtual |
Computed extended matrix-multivector product.
Computes
Implements LOCA::BorderedSolver::AbstractStrategy.
References Teuchos::SerialDenseMatrix< OrdinalType, ScalarType >::assign(), NOX::Abstract::MultiVector::numVectors(), and Teuchos::View.
|
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 Teuchos::SerialDenseMatrix< OrdinalType, ScalarType >::assign(), Teuchos::RCP< T >::get(), NOX::Abstract::MultiVector::init(), NOX::Abstract::MultiVector::numVectors(), Teuchos::SerialDenseMatrix< OrdinalType, ScalarType >::putScalar(), and Teuchos::View.
|
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 Teuchos::SerialDenseMatrix< OrdinalType, ScalarType >::assign(), Teuchos::RCP< T >::get(), NOX::Abstract::MultiVector::init(), NOX::Abstract::MultiVector::numVectors(), Teuchos::SerialDenseMatrix< OrdinalType, ScalarType >::putScalar(), and Teuchos::View.
|
virtual |
Computed extended matrix transpose-multivector product.
Computes
Implements LOCA::BorderedSolver::AbstractStrategy.
References Teuchos::SerialDenseMatrix< OrdinalType, ScalarType >::assign(), NOX::Abstract::MultiVector::numVectors(), and Teuchos::View.
|
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.
References Teuchos::SerialDenseMatrix< OrdinalType, ScalarType >::assign(), Teuchos::RCP< T >::get(), LOCA::MultiContinuation::ConstraintInterfaceMVDX::getDX(), LOCA::BorderedSolver::JacobianOperator::getGroup(), NOX::Abstract::MultiVector::init(), LOCA::MultiContinuation::ConstraintInterface::isDXZero(), Teuchos::SerialDenseMatrix< OrdinalType, ScalarType >::numRows(), NOX::Abstract::MultiVector::numVectors(), Teuchos::SerialDenseMatrix< OrdinalType, ScalarType >::putScalar(), Teuchos::rcp(), NOX::Abstract::MultiVector::subView(), and Teuchos::View.