Teko Version of the Day
Public Member Functions
Teko::DiagonallyScaledPreconditionerFactory Class Reference

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>

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

List of all members.

Public Member Functions

 DiagonallyScaledPreconditionerFactory ()
 Default constructor, for use with the AutoClone class.
 DiagonallyScaledPreconditionerFactory (const Teuchos::RCP< Teko::InverseFactory > &invFactory, ScalingType columnScaling=COLUMN_SCALING)
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.
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.
virtual Teuchos::RCP
< Teuchos::ParameterList > 
getRequestedParameters () const
 Request the additional parameters this preconditioner factory needs.
virtual bool updateRequestedParameters (const Teuchos::ParameterList &pl)
 Update this object with the fields from a parameter list.

Detailed Description

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 operator on an operator $A$. Is to compute the absolute row sum of $A$ and define the scaling matrix $D$. Then explicitly right muliply by $D^{-1}$ ( $A$ is not modified, and invert the linear system $ A D^{-1}$ using the user specified inverse factory. Then the scaling is removed by second (implicit) multiplication by $D^{-1}$. Thus the operator returned by the factory is $D^{-1} \, \mbox{userInv} (A D^{-1})^{-1})$.

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

     <Parameter name="Type" type="string" value="Diagonal Scaling"/>
     <Parameter name="Inverse Factory" type="string" value="<Some Inverse Factory>"/>

Definition at line 81 of file Teko_DiagonallyScaledPreconditionerFactory.hpp.


Constructor & Destructor Documentation

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 
)

Construct a preconditioner factory that scales the operator.

Parameters:
[in]invFactoryFactory 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.

Teko::DiagonallyScaledPreconditionerFactory::~DiagonallyScaledPreconditionerFactory ( ) [virtual]

default destructor: prints out diagnostic string

Definition at line 67 of file Teko_DiagonallyScaledPreconditionerFactory.cpp.


Member Function Documentation

LinearOp Teko::DiagonallyScaledPreconditionerFactory::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 74 of file Teko_DiagonallyScaledPreconditionerFactory.cpp.

void Teko::DiagonallyScaledPreconditionerFactory::initializeFromParameterList ( const Teuchos::ParameterList &  settings) [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.

Parameters:
[in]settingsParmaeter list to use as the internal settings

Reimplemented from Teko::PreconditionerFactory.

Definition at line 111 of file Teko_DiagonallyScaledPreconditionerFactory.cpp.

Teuchos::RCP< Teuchos::ParameterList > Teko::DiagonallyScaledPreconditionerFactory::getRequestedParameters ( ) const [virtual]

Request the additional parameters this preconditioner factory needs.

Request the additonal parameters needed by this preconditioner factory. The parameter list will have a set of fields that can be filled with the requested values. These fields include all requirements, even those of the sub-solvers if there are any. Once correctly filled the object can be updated by calling the updateRequestedParameters with the filled parameter list.

Returns:
A parameter list with the requested parameters.

Reimplemented from Teko::PreconditionerFactory.

Definition at line 142 of file Teko_DiagonallyScaledPreconditionerFactory.cpp.

bool Teko::DiagonallyScaledPreconditionerFactory::updateRequestedParameters ( const Teuchos::ParameterList &  pl) [virtual]

Update this object with the fields from a parameter list.

Update the requested fields using a parameter list. This method is expected to pair with the getRequestedParameters method (i.e. the fields requested are going to be update using this method).

Parameters:
[in]plParameter list containing the requested parameters.
Returns:
If the method succeeded (found all its required parameters) this method returns true, otherwise it returns false.

Reimplemented from Teko::PreconditionerFactory.

Definition at line 153 of file Teko_DiagonallyScaledPreconditionerFactory.cpp.


The documentation for this class was generated from the following files:
 All Classes Files Functions Variables