Teko  Version of the Day
 All Classes Files Functions Variables Pages
Public Member Functions | Protected Attributes | List of all members
Teko::DiagonalPreconditionerFactory Class Reference

Preconditioner factory for building explcit inverse of diagonal operators. This includes block operators. More...

#include <Teko_DiagonalPreconditionerFactory.hpp>

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

Public Member Functions

Teuchos::RCP< PreconditionerStatebuildPreconditionerState () const
 Builds a preconditioner state object. More...
 
LinearOp buildPreconditionerOperator (LinearOp &lo, PreconditionerState &state) const
 
virtual void initializeFromParameterList (const Teuchos::ParameterList &pl)
 Initialize from a parameter list. More...
 
Constructors.
 DiagonalPreconditionerFactory ()
 
- Public Member Functions inherited from Teko::PreconditionerFactory
void setInverseLibrary (const Teuchos::RCP< const InverseLibrary > &il)
 Set the inverse library used by this preconditioner factory. More...
 
Teuchos::RCP< const
InverseLibrary > 
getInverseLibrary () const
 Get the inverse library used by this preconditioner factory. More...
 
void setRequestHandler (const Teuchos::RCP< RequestHandler > &rh)
 Set the request handler with pointers to the appropriate callbacks. More...
 
Teuchos::RCP< RequestHandlergetRequestHandler () const
 Get the request handler with pointers to the appropriate callbacks. 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...
 
bool isCompatible (const Thyra::LinearOpSourceBase< double > &fwdOpSrc) const
 is this operator compatiable with the preconditioner factory? More...
 
Teuchos::RCP
< Thyra::PreconditionerBase
< double > > 
createPrec () const
 create an instance of the preconditioner More...
 
void initializePrec (const Teuchos::RCP< const Thyra::LinearOpSourceBase< double > > &fwdOpSrc, const Teuchos::RCP< const Thyra::MultiVectorBase< double > > &solnVec, Thyra::PreconditionerBase< double > *precOp, const Thyra::ESupportSolveUse supportSolveUse) const
 initialize a newly created preconditioner object More...
 
void initializePrec (const Teuchos::RCP< const Thyra::LinearOpSourceBase< double > > &fwdOpSrc, Thyra::PreconditionerBase< double > *precOp, const Thyra::ESupportSolveUse supportSolveUse) const
 initialize a newly created preconditioner object More...
 
void uninitializePrec (Thyra::PreconditionerBase< double > *prec, Teuchos::RCP< const Thyra::LinearOpSourceBase< double > > *fwdOpSrc, Thyra::ESupportSolveUse *supportSolveUse) const
 wipe clean a already initialized preconditioner object More...
 
void setParameterList (const Teuchos::RCP< Teuchos::ParameterList > &paramList)
 Set parameters from a parameter list and return with default values. More...
 
Teuchos::RCP
< Teuchos::ParameterList > 
getNonconstParameterList ()
 Get the parameter list that was set using setParameterList(). More...
 
Teuchos::RCP
< Teuchos::ParameterList > 
unsetParameterList ()
 Unset the parameter list that was set using setParameterList(). More...
 

Protected Attributes

Teuchos::ParameterList List_
 some members More...
 
- Protected Attributes inherited from Teko::PreconditionerFactory
Teuchos::RCP
< Teuchos::ParameterList > 
paramList_
 for ParameterListAcceptor More...
 
Teuchos::RCP< RequestHandlercallbackHandler_
 For handling requests and send requests back to the user. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from Teko::PreconditionerFactory
static Teuchos::RCP
< PreconditionerFactory
buildPreconditionerFactory (const std::string &name, const Teuchos::ParameterList &settings, const Teuchos::RCP< const InverseLibrary > &invLib=Teuchos::null)
 Builder function for creating preconditioner factories (yes this is a factory factory). More...
 
static void addPreconditionerFactory (const std::string &name, const Teuchos::RCP< Cloneable > &clone)
 Add a preconditioner factory to the builder. This is done using the clone pattern. More...
 
static void getPreconditionerFactoryNames (std::vector< std::string > &names)
 Get the names of the block preconditioner factories. More...
 

Detailed Description

Preconditioner factory for building explcit inverse of diagonal operators. This includes block operators.

Preconditioner factory for building explicit inverse diagonal operators, including block diagonals. These operators need to be Epetra_CrsMatrices under the hood or this will bomb. Uses EpetraExt_PointToBlockDiagPermute.

To invoke this preconditioner using the XML file a diagonal inverse needs to be specified. For example the following XML code creates a AbsRowSum preconditioner

  <ParameterList name="AbsRowSum">
     <Parameter name="Type" type="string" value="Explicit Diagonal Preconditioner"/>
     <Parameter name="Diagonal Type" type="string" value="AbsRowSum"/> <!-- Could also be "Lumped"
or "Diagonal" -->
  </ParameterList>

The block diagonal inverse operator is constructed from the following XML code

  <ParameterList name="4-Block Diagonal">
     <Parameter name="Type" type="string" value="Explicit Diagonal Preconditioner"/>
     <Parameter name="Diagonal Type" type="string" value="BlkDiag"/>
     <Parameter name="contiguous block size" type="int" value="4"/> <!-- block size of 4 -->
  </ParameterList>

Definition at line 101 of file Teko_DiagonalPreconditionerFactory.hpp.

Member Function Documentation

RCP< PreconditionerState > Teko::DiagonalPreconditionerFactory::buildPreconditionerState ( ) const
virtual

Builds a preconditioner state object.

Reimplemented from Teko::PreconditionerFactory.

Definition at line 68 of file Teko_DiagonalPreconditionerFactory.cpp.

LinearOp Teko::DiagonalPreconditionerFactory::buildPreconditionerOperator ( LinearOp &  lo,
PreconditionerState state 
) const
virtual

Create the diagonal preconditioner operator.

Implements Teko::PreconditionerFactory.

Definition at line 72 of file Teko_DiagonalPreconditionerFactory.cpp.

void Teko::DiagonalPreconditionerFactory::initializeFromParameterList ( const Teuchos::ParameterList &  pl)
virtual

Initialize from a parameter list.

Reimplemented from Teko::PreconditionerFactory.

Definition at line 108 of file Teko_DiagonalPreconditionerFactory.cpp.

Member Data Documentation

Teuchos::ParameterList Teko::DiagonalPreconditionerFactory::List_
mutableprotected

some members

Definition at line 122 of file Teko_DiagonalPreconditionerFactory.hpp.


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