Teko  Version of the Day
 All Classes Files Functions Variables Pages
Public Member Functions | List of all members
Teko::LU2x2Strategy Class Referenceabstract

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]

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 &, const InverseLibrary &)
 This function builds the internals of the state from a parameter list. More...
 
virtual Teuchos::RCP
< Teuchos::ParameterList > 
getRequestedParameters () const
 Request the additional parameters this preconditioner factory needs. More...
 
virtual bool updateRequestedParameters (const Teuchos::ParameterList &)
 Update this object with the fields from a parameter list. More...
 
void setRequestHandler (const Teuchos::RCP< RequestHandler > &rh)
 This method sets the request handler for this object. More...
 
Teuchos::RCP< RequestHandlergetRequestHandler () const
 This method gets the request handler uses by this object. More...
 

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::StaticLU2x2Strategy, Teko::NS::PCDStrategy, and Teko::LU2x2DiagonalStrategy.

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::StaticLU2x2Strategy, Teko::NS::PCDStrategy, and Teko::LU2x2DiagonalStrategy.

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::StaticLU2x2Strategy, Teko::NS::PCDStrategy, and Teko::LU2x2DiagonalStrategy.

virtual void Teko::LU2x2Strategy::initializeFromParameterList ( const Teuchos::ParameterList &  ,
const InverseLibrary &   
)
inlinevirtual

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::LU2x2DiagonalStrategy, and Teko::NS::PCDStrategy.

Definition at line 130 of file Teko_LU2x2Strategy.hpp.

virtual Teuchos::RCP<Teuchos::ParameterList> Teko::LU2x2Strategy::getRequestedParameters ( ) const
inlinevirtual

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 &  )
inlinevirtual

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: