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

Abstract class which block preconditioner factories in Teko should be based on. More...

#include <Teko_BlockPreconditionerFactory.hpp>

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

Public Member Functions

virtual LinearOp buildPreconditionerOperator (BlockedLinearOp &blo, BlockPreconditionerState &state) const =0
 Function that is called to build the preconditioner for the linear operator that is passed in. More...
 
virtual RCP< PreconditionerStatebuildPreconditionerState () const
 Function that permits the construction of an arbitrary BlockPreconditionerState object. More...
 
RCP< BlockPreconditionerStatebuildBlockPreconditionerState () const
 Function that constructs a BlockPreconditionerState object. More...
 
virtual LinearOp buildPreconditionerOperator (LinearOp &blo, PreconditionerState &state) const
 Function that is called to build the preconditioner for the linear operator that is passed in. More...
 
bool isCompatible (const Thyra::LinearOpSourceBase< double > &fwdOpSrc) const
 is this operator compatiable with the preconditioner factory? More...
 
- 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 void initializeFromParameterList (const Teuchos::ParameterList &)
 This function builds the internals of the preconditioner factory 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...
 
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...
 

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...
 
- 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...
 

Detailed Description

Abstract class which block preconditioner factories in Teko should be based on.

Abstract class which block preconditioner factories in Teko should be based on. All that is needed is the implementation of "buildPreconditionerOperator".

Definition at line 63 of file Teko_BlockPreconditionerFactory.hpp.

Member Function Documentation

virtual LinearOp Teko::BlockPreconditionerFactory::buildPreconditionerOperator ( BlockedLinearOp &  blo,
BlockPreconditionerState state 
) const
pure virtual

Function that is called to build the preconditioner for the linear operator that is passed in.

This function builds a preconditioner based on the passed in BlockedLinearOp.

Parameters
[in]bloSource linear operator that is to be preconditioned.
[in]stateAn object associated with this operator to store the preconditioner state.
Returns
The preconditioner as a linear operator (i.e. to perform a matrix-vector operation simply call "apply").

Implemented in Teko::NS::ModALPreconditionerFactory, Teko::LU2x2PreconditionerFactory, Teko::GaussSeidelPreconditionerFactory, Teko::MultPreconditionerFactory, Teko::MLPreconditionerFactory, Teko::JacobiPreconditionerFactory, Teko::NS::TimingsSIMPLEPreconditionerFactory, Teko::NS::SIMPLEPreconditionerFactory, and Teko::AddPreconditionerFactory.

virtual RCP<PreconditionerState> Teko::BlockPreconditionerFactory::buildPreconditionerState ( ) const
inlinevirtual

Function that permits the construction of an arbitrary BlockPreconditionerState object.

Function that permits the construction of an arbitrary BlockPreconditionerState object. If the basic state object, which takes a parameter list, is sufficient the default behavior does precisely what is needed. Otherwise, an author of a PreconditionerFactory would need to reimplement this method to return a new state object.

Returns
A state object associated with this factory.

Reimplemented from Teko::PreconditionerFactory.

Reimplemented in Teko::NS::ModALPreconditionerFactory, Teko::MultPreconditionerFactory, Teko::MLPreconditionerFactory, and Teko::AddPreconditionerFactory.

Definition at line 93 of file Teko_BlockPreconditionerFactory.hpp.

RCP<BlockPreconditionerState> Teko::BlockPreconditionerFactory::buildBlockPreconditionerState ( ) const
inline

Function that constructs a BlockPreconditionerState object.

This function is simply included for convenience. Its implementation just call "buildPreconditionerState" and returns a dynamically casted BlockPreconditionState poniter.

Definition at line 103 of file Teko_BlockPreconditionerFactory.hpp.

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

Function that is called to build the preconditioner for the linear operator that is passed in.

This function builds a preconditioner based on the passed in LinearOp.

Parameters
[in]loSource linear operator that is to be preconditioned.
[in]stateAn object associated with this operator to store the preconditioner state.
Returns
The preconditioner as a linear operator (i.e. to perform a matrix-vector operation simply call "apply").

Implements Teko::PreconditionerFactory.

Definition at line 23 of file Teko_BlockPreconditionerFactory.cpp.

bool Teko::BlockPreconditionerFactory::isCompatible ( const Thyra::LinearOpSourceBase< double > &  fwdOpSrc) const

is this operator compatiable with the preconditioner factory?

Definition at line 35 of file Teko_BlockPreconditionerFactory.cpp.


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