Using an absolute row sum approximation of the matrix this factory creates an inverse using the explicity scaled matrix. The inverse of the scaling operation is automatically applied. More...
#include <Teko_DiagonallyScaledPreconditionerFactory.hpp>
Public Member Functions | |
DiagonallyScaledPreconditionerFactory () | |
Default constructor, for use with the AutoClone class. More... | |
DiagonallyScaledPreconditionerFactory (const Teuchos::RCP< Teko::InverseFactory > &invFactory, ScalingType columnScaling=COLUMN_SCALING, DiagonalType diagonalType=AbsRowSum) | |
virtual | ~DiagonallyScaledPreconditionerFactory () |
default destructor: prints out diagnostic string More... | |
virtual LinearOp | buildPreconditionerOperator (LinearOp &lo, PreconditionerState &state) const |
Function that is called to build the preconditioner for the linear operator that is passed in. More... | |
Methods for construction from a parameter list entry | |
virtual void | initializeFromParameterList (const Teuchos::ParameterList &settings) |
This function builds the internals of the preconditioner factory from a parameter list. More... | |
Public Member Functions inherited from Teko::PreconditionerFactory | |
virtual Teuchos::RCP < PreconditionerState > | buildPreconditionerState () const |
Function that permits the construction of an arbitrary PreconditionerState object. More... | |
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... | |
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< RequestHandler > | callbackHandler_ |
For handling requests and send requests back to the user. More... | |
Using an absolute row sum approximation of the matrix this factory creates an inverse using the explicity scaled matrix. The inverse of the scaling operation is automatically applied.
The current behavior for this factory on an operator is to compute the absolute row sum of and define the scaling matrix . Then explicitly right muliply by ( is not modified, and invert the linear system using the user specified inverse factory. Then the scaling is removed by second (implicit) multiplication by . Thus the operator returned by the factory is .
For construction purposes this class can be initialized using a parameter list. Most often used in conjuncition with an InverseLibrary object. In particular the relevant parameters are
Definition at line 83 of file Teko_DiagonallyScaledPreconditionerFactory.hpp.
Teko::DiagonallyScaledPreconditionerFactory::DiagonallyScaledPreconditionerFactory | ( | ) |
Default constructor, for use with the AutoClone class.
Definition at line 55 of file Teko_DiagonallyScaledPreconditionerFactory.cpp.
Teko::DiagonallyScaledPreconditionerFactory::DiagonallyScaledPreconditionerFactory | ( | const Teuchos::RCP< Teko::InverseFactory > & | invFactory, |
ScalingType | scalingType = COLUMN_SCALING , |
||
DiagonalType | diagonalType = AbsRowSum |
||
) |
Construct a preconditioner factory that scales the operator.
[in] | invFactory | Factory to perform the inverse |
Construct a preconditioner factory that applies a specified preconditioner, a fixed number of times.
Definition at line 62 of file Teko_DiagonallyScaledPreconditionerFactory.cpp.
|
virtual |
default destructor: prints out diagnostic string
Definition at line 68 of file Teko_DiagonallyScaledPreconditionerFactory.cpp.
|
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.
[in] | lo | Source linear operator that is to be preconditioned. |
[in] | state | An object associated with this operator to store the preconditioner state. |
Implements Teko::PreconditionerFactory.
Definition at line 75 of file Teko_DiagonallyScaledPreconditionerFactory.cpp.
|
virtual |
This function builds the internals of the preconditioner factory from a parameter list.
This function builds the internals of the preconditioner factory from a parameter list. Furthermore, it allows a preconditioner factory developer to easily add a factory to the build system. This function is required for building a preconditioner from a parameter list.
[in] | settings | Parmaeter list to use as the internal settings |
Reimplemented from Teko::PreconditionerFactory.
Definition at line 112 of file Teko_DiagonallyScaledPreconditionerFactory.cpp.