LOCA::BorderedSystem::Generic Class Reference

Generic bordered solver interface. More...

#include <LOCA_BorderedSystem_Generic.H>

Inheritance diagram for LOCA::BorderedSystem::Generic:

[legend]
List of all members.

Public Member Functions

 Generic ()
 Constructor.
 Generic (const Generic &source)
 Copy constructor.
virtual ~Generic ()
 Destructor.
virtual Genericclone () const =0
 Clone function.
virtual Genericoperator= (const Generic &source)=0
 Assignment operator.
virtual NOX::Abstract::Group::ReturnType reset (NOX::Parameter::List &params)=0
 Reset parameters.
virtual void setIsZero (bool flagA, bool flagB, bool flagC, bool flagF, bool flagG)=0
 Set flags indicating if any blocks are zero.
virtual void setIsContiguous (bool flag)=0
 Set flag indicating whether F and A are continguous.
virtual void setMatrixBlocks (const NOX::Abstract::Group *group, const NOX::Abstract::MultiVector *blockA, const NOX::Abstract::MultiVector *blockB, const NOX::Abstract::MultiVector::DenseMatrix *blockC)=0
 Set blocks.
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 =0
 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 =0
 Computed extended matrix transpose-multivector product.
virtual NOX::Abstract::Group::ReturnType applyInverse (NOX::Parameter::List &params, const NOX::Abstract::MultiVector *F, const NOX::Abstract::MultiVector::DenseMatrix *G, NOX::Abstract::MultiVector &X, NOX::Abstract::MultiVector::DenseMatrix &Y) const =0
 Solves the extended system as defined above.

Detailed Description

Generic bordered solver interface.

Generic interface for solving systems of equations of the form

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

where $J$ is an $n\times n$ matrix, $A$ and $B$ are $n\times m$, $C$ is $m\times m$, $X$ and $F$ are $n\times p$ and $Y$ and $G$ are $m\times p$. The action of $J$ and its inverse are represnted by a NOX::Abstract::Group while $A$ and $B$ are NOX::Abstract::MultiVector's and $C$ is a dense matrix. All classes the implement a method for computing solutions to this system of equations should be derived from this class.


Constructor & Destructor Documentation

LOCA::BorderedSystem::Generic::Generic  )  [inline]
 

Constructor.

Constructors of derived objects should look like reset.


Member Function Documentation

virtual NOX::Abstract::Group::ReturnType LOCA::BorderedSystem::Generic::apply const NOX::Abstract::MultiVector &  X,
const NOX::Abstract::MultiVector::DenseMatrix &  Y,
NOX::Abstract::MultiVector &  U,
NOX::Abstract::MultiVector::DenseMatrix &  V
const [pure 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} \]

where $U$ is $n\times p$, $V$ is $m\times p$ and the other blocks are as defined above.

Implemented in LOCA::BorderedSystem::Bordering, and LOCA::BorderedSystem::Manager.

virtual NOX::Abstract::Group::ReturnType LOCA::BorderedSystem::Generic::applyInverse NOX::Parameter::List params,
const NOX::Abstract::MultiVector *  F,
const NOX::Abstract::MultiVector::DenseMatrix *  G,
NOX::Abstract::MultiVector &  X,
NOX::Abstract::MultiVector::DenseMatrix &  Y
const [pure virtual]
 

Solves the extended system as defined above.

The params argument is the linear solver parameters.

Implemented in LOCA::BorderedSystem::Bordering, and LOCA::BorderedSystem::Manager.

virtual NOX::Abstract::Group::ReturnType LOCA::BorderedSystem::Generic::applyTranspose const NOX::Abstract::MultiVector &  X,
const NOX::Abstract::MultiVector::DenseMatrix &  Y,
NOX::Abstract::MultiVector &  U,
NOX::Abstract::MultiVector::DenseMatrix &  V
const [pure virtual]
 

Computed extended matrix transpose-multivector product.

Computes

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

where $U$ is $n\times p$, $V$ is $m\times p$ and the other blocks are as defined above.

Implemented in LOCA::BorderedSystem::Bordering, and LOCA::BorderedSystem::Manager.

virtual void LOCA::BorderedSystem::Generic::setMatrixBlocks const NOX::Abstract::Group group,
const NOX::Abstract::MultiVector *  blockA,
const NOX::Abstract::MultiVector *  blockB,
const NOX::Abstract::MultiVector::DenseMatrix *  blockC
[pure virtual]
 

Set blocks.

Any of these block pointers (execpt the group pointer) may be NULL if the corresponding flag is set indicating the block is zero.

Implemented in LOCA::BorderedSystem::Bordering, and LOCA::BorderedSystem::Manager.


The documentation for this class was generated from the following file:
Generated on Thu Sep 18 12:42:23 2008 for NOX by doxygen 1.3.9.1