Preconditioner factory for building explcit inverse of diagonal operators. This includes block operators. More...
#include <Teko_DiagonalPreconditionerFactory.hpp>
Public Member Functions | |
Teuchos::RCP< PreconditionerState > | buildPreconditionerState () 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< RequestHandler > | getRequestHandler () 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 > ¶mList) |
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< RequestHandler > | callbackHandler_ |
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... | |
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 102 of file Teko_DiagonalPreconditionerFactory.hpp.
|
virtual |
Builds a preconditioner state object.
Reimplemented from Teko::PreconditionerFactory.
Definition at line 67 of file Teko_DiagonalPreconditionerFactory.cpp.
|
virtual |
Create the diagonal preconditioner operator.
Implements Teko::PreconditionerFactory.
Definition at line 72 of file Teko_DiagonalPreconditionerFactory.cpp.
|
virtual |
Initialize from a parameter list.
Reimplemented from Teko::PreconditionerFactory.
Definition at line 105 of file Teko_DiagonalPreconditionerFactory.cpp.
|
mutableprotected |
some members
Definition at line 126 of file Teko_DiagonalPreconditionerFactory.hpp.