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:

[legend]
Collaboration diagram for LOCA::BorderedSolver::Nested:
[legend]
List of all members.

Public Member Functions

 Nested (const Teuchos::RefCountPtr< LOCA::GlobalData > &global_data, const Teuchos::RefCountPtr< LOCA::Parameter::SublistParser > &topParams, const Teuchos::RefCountPtr< Teuchos::ParameterList > &solverParams)
 Constructor.
virtual ~Nested ()
 Destructor.
virtual void setMatrixBlocks (const Teuchos::RefCountPtr< const NOX::Abstract::Group > &group, const Teuchos::RefCountPtr< const NOX::Abstract::MultiVector > &blockA, const Teuchos::RefCountPtr< const LOCA::MultiContinuation::ConstraintInterface > &blockB, const Teuchos::RefCountPtr< 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 &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.
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.

Protected Attributes

Teuchos::RefCountPtr< LOCA::GlobalDataglobalData
 Global data object.
Teuchos::RefCountPtr< Teuchos::ParameterListsolverParams
 Solver parameters.
Teuchos::RefCountPtr< LOCA::BorderedSolver::AbstractStrategysolver
 Underlying solver.
Teuchos::RefCountPtr< const
LOCA::BorderedSystem::AbstractGroup
grp
 Pointer to group storing J.
Teuchos::RefCountPtr< 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 group representing $J$ must implement the LOCA::BorderedSystem::AbstractGroup interface, and the constraint object representing $B$ must be of type LOCA::MultiContinuation::ConstraintInterfaceMVDX.


Constructor & Destructor Documentation

LOCA::BorderedSolver::Nested::Nested const Teuchos::RefCountPtr< LOCA::GlobalData > &  global_data,
const Teuchos::RefCountPtr< LOCA::Parameter::SublistParser > &  topParams,
const Teuchos::RefCountPtr< 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


Member Function Documentation

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

\[ \begin{bmatrix} U \\ V \end{bmatrix} = \begin{bmatrix} J & A \\ B^T & C \end{bmatrix} \begin{bmatrix} X \\ Y \end{bmatrix} = \begin{bmatrix} J*X + A*Y \\ B^T*X + C*Y \end{bmatrix}. \]

Implements LOCA::BorderedSolver::AbstractStrategy.

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

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.

Reimplemented from LOCA::BorderedSolver::AbstractStrategy.

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]
 

Computed extended matrix transpose-multivector product.

Computes

\[ \begin{bmatrix} U \\ V \end{bmatrix} = \begin{bmatrix} J^T & B \\ A^T & C \end{bmatrix} \begin{bmatrix} X \\ Y \end{bmatrix} = \begin{bmatrix} J^T*X + B*Y \\ A^T*X + C^T*Y \end{bmatrix}. \]

Implements LOCA::BorderedSolver::AbstractStrategy.

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::RefCountPtr< const NOX::Abstract::Group > &  group,
const Teuchos::RefCountPtr< const NOX::Abstract::MultiVector > &  blockA,
const Teuchos::RefCountPtr< const LOCA::MultiContinuation::ConstraintInterface > &  blockB,
const Teuchos::RefCountPtr< 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.


The documentation for this class was generated from the following files:
Generated on Thu Sep 18 12:38:30 2008 for NOX by doxygen 1.3.9.1