Teko Version of the Day
|
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. | |
DiagonallyScaledPreconditionerFactory (const Teuchos::RCP< Teko::InverseFactory > &invFactory, ScalingType columnScaling=COLUMN_SCALING, DiagonalType diagonalType=AbsRowSum) | |
virtual | ~DiagonallyScaledPreconditionerFactory () |
default destructor: prints out diagnostic string | |
virtual LinearOp | buildPreconditionerOperator (LinearOp &lo, PreconditionerState &state) const |
Function that is called to build the preconditioner for the linear operator that is passed in. | |
![]() | |
virtual LinearOp | buildPreconditionerOperator (LinearOp &lo, PreconditionerState &state) const =0 |
Function that is called to build the preconditioner for the linear operator that is passed in. | |
virtual Teuchos::RCP< PreconditionerState > | buildPreconditionerState () const |
Function that permits the construction of an arbitrary PreconditionerState object. | |
virtual Teuchos::RCP< Teuchos::ParameterList > | getRequestedParameters () const |
Request the additional parameters this preconditioner factory needs. | |
virtual bool | updateRequestedParameters (const Teuchos::ParameterList &) |
Update this object with the fields from a parameter list. | |
void | setInverseLibrary (const Teuchos::RCP< const InverseLibrary > &il) |
Set the inverse library used by this preconditioner factory. | |
Teuchos::RCP< const InverseLibrary > | getInverseLibrary () const |
Get the inverse library used by this preconditioner factory. | |
bool | isCompatible (const Thyra::LinearOpSourceBase< double > &fwdOpSrc) const |
is this operator compatiable with the preconditioner factory? | |
Teuchos::RCP< Thyra::PreconditionerBase< double > > | createPrec () const |
create an instance of the preconditioner | |
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 | |
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 | |
void | uninitializePrec (Thyra::PreconditionerBase< double > *prec, Teuchos::RCP< const Thyra::LinearOpSourceBase< double > > *fwdOpSrc, Thyra::ESupportSolveUse *supportSolveUse) const |
wipe clean a already initialized preconditioner object | |
void | setParameterList (const Teuchos::RCP< Teuchos::ParameterList > ¶mList) |
Set parameters from a parameter list and return with default values. | |
Teuchos::RCP< Teuchos::ParameterList > | getNonconstParameterList () |
Get the parameter list that was set using setParameterList(). | |
Teuchos::RCP< Teuchos::ParameterList > | unsetParameterList () |
Unset the parameter list that was set using setParameterList(). | |
void | setRequestHandler (const Teuchos::RCP< RequestHandler > &rh) |
Set the request handler with pointers to the appropriate callbacks. | |
Teuchos::RCP< RequestHandler > | getRequestHandler () const |
Get the request handler with pointers to the appropriate callbacks. | |
virtual void | setRequestHandler (const Teuchos::RCP< RequestHandler > &rh)=0 |
Set the request handler with pointers to the appropriate callbacks. | |
virtual Teuchos::RCP< RequestHandler > | getRequestHandler () const =0 |
Get the request handler with pointers to the appropriate callbacks. | |
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. | |
Additional Inherited Members | |
![]() | |
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). | |
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. | |
static void | getPreconditionerFactoryNames (std::vector< std::string > &names) |
Get the names of the block preconditioner factories. | |
![]() | |
Teuchos::RCP< Teuchos::ParameterList > | paramList_ |
for ParameterListAcceptor | |
Teuchos::RCP< RequestHandler > | callbackHandler_ |
For handling requests and send requests back to the user. | |
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
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.