NOX  Development
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
Public Member Functions | Protected Attributes | List of all members
LOCA::BorderedSolver::Nested Class Reference

Bordered system solver strategy for nested bordered systems. More...

#include <LOCA_BorderedSolver_Nested.H>

Inheritance diagram for LOCA::BorderedSolver::Nested:
Inheritance graph
[legend]
Collaboration diagram for LOCA::BorderedSolver::Nested:
Collaboration graph
[legend]

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. More...
 
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. More...
 
virtual
NOX::Abstract::Group::ReturnType 
initForSolve ()
 Intialize solver for a solve. More...
 
virtual
NOX::Abstract::Group::ReturnType 
initForTransposeSolve ()
 Intialize solver for a transpose solve. More...
 
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. More...
 
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. More...
 
virtual
NOX::Abstract::Group::ReturnType 
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
 Solves the extended system as defined above using bordering. More...
 
virtual
NOX::Abstract::Group::ReturnType 
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
 Solves the transpose of the extended system as defined above using bordering. More...
 
- Public Member Functions inherited from LOCA::BorderedSolver::AbstractStrategy
 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. More...
 

Protected Attributes

Teuchos::RCP< LOCA::GlobalDataglobalData
 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.
 

Detailed Description

Bordered system solver strategy for nested bordered systems.

This class implements a bordered solver strategy for the bordered system

\[ \begin{bmatrix} J & A \\ B^T & C \end{bmatrix} \begin{bmatrix} X \\ Y \end{bmatrix} = \begin{bmatrix} F \\ G \end{bmatrix} \]

when $J$ itself has this block form. It combines the blocks for $A$, $B$, and $C$ 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 $J$ must implement the LOCA::BorderedSolver::BorderedOperator interface, and the constraint object representing $B$ must be of type LOCA::MultiContinuation::ConstraintInterfaceMVDX.

Constructor & Destructor Documentation

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.

Parameters
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().

Member Function Documentation

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.

NOX::Abstract::Group::ReturnType LOCA::BorderedSolver::Nested::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
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.

NOX::Abstract::Group::ReturnType LOCA::BorderedSolver::Nested::applyTranspose ( const NOX::Abstract::MultiVector X,
const NOX::Abstract::MultiVector::DenseMatrix Y,
NOX::Abstract::MultiVector U,
NOX::Abstract::MultiVector::DenseMatrix V 
) const
virtual
NOX::Abstract::Group::ReturnType LOCA::BorderedSolver::Nested::initForSolve ( )
virtual

Intialize solver for a solve.

This should be called after setMatrixBlocks(), but before applyInverse().

Implements LOCA::BorderedSolver::AbstractStrategy.

NOX::Abstract::Group::ReturnType LOCA::BorderedSolver::Nested::initForTransposeSolve ( )
virtual

Intialize solver for a transpose solve.

This should be called after setMatrixBlocks(), but before applyInverseTranspose().

Implements LOCA::BorderedSolver::AbstractStrategy.

void LOCA::BorderedSolver::Nested::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

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