Teko Version of the Day
Public Member Functions
Teko::LU2x2Strategy Class Reference

Abstract strategy for computing inv(F) and inv(S) in the LU2x2PreconditionerFactory. More...

#include <Teko_LU2x2Strategy.hpp>

Inheritance diagram for Teko::LU2x2Strategy:
Inheritance graph
[legend]

List of all members.

Public Member Functions

virtual const Teko::LinearOp getHatInvA00 (const Teko::BlockedLinearOp &A, BlockPreconditionerState &state) const =0
virtual const Teko::LinearOp getTildeInvA00 (const Teko::BlockedLinearOp &A, BlockPreconditionerState &state) const =0
virtual const Teko::LinearOp getInvS (const Teko::BlockedLinearOp &A, BlockPreconditionerState &state) const =0
virtual void initializeFromParameterList (const Teuchos::ParameterList &settings, const InverseLibrary &invLib)
 This function builds the internals of the state from a parameter list.
virtual Teuchos::RCP
< Teuchos::ParameterList > 
getRequestedParameters () const
 Request the additional parameters this preconditioner factory needs.
virtual bool updateRequestedParameters (const Teuchos::ParameterList &pl)
 Update this object with the fields from a parameter list.
void setRequestHandler (const Teuchos::RCP< RequestHandler > &rh)
 This method sets the request handler for this object.
Teuchos::RCP< RequestHandlergetRequestHandler () const
 This method gets the request handler uses by this object.

Detailed Description

Abstract strategy for computing inv(F) and inv(S) in the LU2x2PreconditionerFactory.

This should be paired with a LU2x2PreconditionerFactory, it build the $A_{00}^{-1}$ and $S$ opreators. Building an approximate inverse of this system

$ A = \left[ \begin{array}{cc} A_{00} & A_{01} \\ A_{10} & A_{11} \end{array} \right] $

using a 2x2 block LDU decomposition gives

$ A = \left[ \begin{array}{cc} I & 0 \\ A_{10} A_{00}^{-1} & I \end{array} \right] \left[ \begin{array}{cc} A_{00} & 0 \\ 0 & -S \end{array} \right] \left[ \begin{array}{cc} I & A_{00}^{-1} A_{01} \\ 0 & I \end{array} \right] $

where the Shur complement is $ S = -A_{11} + A_{10} A_{00}^{-1} A_{01} $ To invert $ A $, $ A_{00}^{-1} $ and $ S^{-1} $ are required. The idea of this strategy is to give those operators.

Definition at line 103 of file Teko_LU2x2Strategy.hpp.


Member Function Documentation

virtual const Teko::LinearOp Teko::LU2x2Strategy::getHatInvA00 ( const Teko::BlockedLinearOp &  A,
BlockPreconditionerState state 
) const [pure virtual]

returns the first (approximate) inverse of $A_{00}$

Implemented in Teko::NS::PCDStrategy, Teko::LU2x2DiagonalStrategy, and Teko::StaticLU2x2Strategy.

virtual const Teko::LinearOp Teko::LU2x2Strategy::getTildeInvA00 ( const Teko::BlockedLinearOp &  A,
BlockPreconditionerState state 
) const [pure virtual]

returns the scond (approximate) inverse of $A_{00}$

Implemented in Teko::NS::PCDStrategy, Teko::LU2x2DiagonalStrategy, and Teko::StaticLU2x2Strategy.

virtual const Teko::LinearOp Teko::LU2x2Strategy::getInvS ( const Teko::BlockedLinearOp &  A,
BlockPreconditionerState state 
) const [pure virtual]

returns an (approximate) inverse of $S = -A_{11} + A_{10} A_{00}^{-1} A_{01}$

Implemented in Teko::NS::PCDStrategy, Teko::LU2x2DiagonalStrategy, and Teko::StaticLU2x2Strategy.

virtual void Teko::LU2x2Strategy::initializeFromParameterList ( const Teuchos::ParameterList &  settings,
const InverseLibrary &  invLib 
) [inline, virtual]

This function builds the internals of the state from a parameter list.

This function builds the internals of the LU 2x2 state from a parameter list. Furthermore, it allows a developer to easily add a factory to the build system.

Parameters:
[in]settingsParameter list to use as the internal settings
[in]invLibInverse library to use for building inverse factory objects
Note:
The default implementation does nothing.

Reimplemented in Teko::NS::PCDStrategy, and Teko::LU2x2DiagonalStrategy.

Definition at line 130 of file Teko_LU2x2Strategy.hpp.

virtual Teuchos::RCP<Teuchos::ParameterList> Teko::LU2x2Strategy::getRequestedParameters ( ) const [inline, virtual]

Request the additional parameters this preconditioner factory needs.

Request the additonal parameters needed by this preconditioner factory. The parameter list will have a set of fields that can be filled with the requested values. These fields include all requirements, even those of the sub-solvers if there are any. Once correctly filled the object can be updated by calling the updateRequestedParameters with the filled parameter list.

Returns:
A parameter list with the requested parameters.
Note:
The default implementation returns Teuchos::null.

Reimplemented in Teko::NS::PCDStrategy.

Definition at line 148 of file Teko_LU2x2Strategy.hpp.

virtual bool Teko::LU2x2Strategy::updateRequestedParameters ( const Teuchos::ParameterList &  pl) [inline, virtual]

Update this object with the fields from a parameter list.

Update the requested fields using a parameter list. This method is expected to pair with the getRequestedParameters method (i.e. the fields requested are going to be update using this method).

Parameters:
[in]plParameter list containing the requested parameters.
Returns:
If the method succeeded (found all its required parameters) this method returns true, otherwise it returns false.
Note:
The default implementation returns true (it does nothing!).

Reimplemented in Teko::NS::PCDStrategy.

Definition at line 164 of file Teko_LU2x2Strategy.hpp.

void Teko::LU2x2Strategy::setRequestHandler ( const Teuchos::RCP< RequestHandler > &  rh) [inline]

This method sets the request handler for this object.

Definition at line 168 of file Teko_LU2x2Strategy.hpp.

Teuchos::RCP<RequestHandler> Teko::LU2x2Strategy::getRequestHandler ( ) const [inline]

This method gets the request handler uses by this object.

Definition at line 172 of file Teko_LU2x2Strategy.hpp.


The documentation for this class was generated from the following file:
 All Classes Files Functions Variables