Teko Version of the Day
Public Member Functions | Protected Member Functions | Protected Attributes
Teko::GaussSeidelPreconditionerFactory Class Reference

A factory that creates a block Gauss Seidel preconditioner. The user must specify the solvers (or preconditioners) to use to approximately invert the diagonal operators. More...

#include <Teko_GaussSeidelPreconditionerFactory.hpp>

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

List of all members.

Public Member Functions

LinearOp buildPreconditionerOperator (BlockedLinearOp &blo, BlockPreconditionerState &state) const
 Create the Gauss-Seidel preconditioner operator.
Constructors.
 GaussSeidelPreconditionerFactory (TriSolveType solveType, const LinearOp &invD0, const LinearOp &invD1)
 GaussSeidelPreconditionerFactory (TriSolveType solveType, const RCP< const BlockInvDiagonalStrategy > &strategy)
 GaussSeidelPreconditionerFactory ()

Protected Member Functions

virtual void initializeFromParameterList (const Teuchos::ParameterList &pl)
 Initialize from a parameter list.

Protected Attributes

Teuchos::RCP< const
BlockInvDiagonalStrategy
invOpsStrategy_
 some members

Detailed Description

A factory that creates a block Gauss Seidel preconditioner. The user must specify the solvers (or preconditioners) to use to approximately invert the diagonal operators.

A factory that creates a block Gauss Seidel preconditioner. The user must specify the solvers (or preconditioners) to use to approximately invert the diagonal operators.

To invoke this preconditioner using the XML file a diagonal inverse needs to be specified. For example the following XML code creates a Gauss-Seidel preconditioner called "GS-Outer" using Amesos (a direct solver) to invert the diagonal blocks.

    <ParameterList name="GS-Outer">
       <Parameter name="Type" type="string" value="Block Gauss-Seidel"/>
       <Parameter name="Inverse Type" type="string" value="Amesos"/>
    </ParameterList>
    

Definition at line 80 of file Teko_GaussSeidelPreconditionerFactory.hpp.


Constructor & Destructor Documentation

Teko::GaussSeidelPreconditionerFactory::GaussSeidelPreconditionerFactory ( TriSolveType  solveType,
const LinearOp &  invD0,
const LinearOp &  invD1 
)

Construct a PreconditionerFactory assuming a specific block $2\times2$ matrix. This case is a simple one.

Definition at line 57 of file Teko_GaussSeidelPreconditionerFactory.cpp.

Teko::GaussSeidelPreconditionerFactory::GaussSeidelPreconditionerFactory ( TriSolveType  solveType,
const RCP< const BlockInvDiagonalStrategy > &  strategy 
)

The most flexible JacobiPreconditionerFactory constructor. Pass in a generally defined BlockInvDiagonalStrategy to use the full generality of this class.

Definition at line 61 of file Teko_GaussSeidelPreconditionerFactory.cpp.

Teko::GaussSeidelPreconditionerFactory::GaussSeidelPreconditionerFactory ( )

Build an empty Gauss-Seidel preconditioner factory

Definition at line 65 of file Teko_GaussSeidelPreconditionerFactory.cpp.


Member Function Documentation

LinearOp Teko::GaussSeidelPreconditionerFactory::buildPreconditionerOperator ( BlockedLinearOp &  blo,
BlockPreconditionerState state 
) const [virtual]

Create the Gauss-Seidel preconditioner operator.

This method breaks apart the BlockLinearOp and builds a block diagonal preconditioner. The inverse of the diagonals are specified by the BlockInvDiagonalStrategy object.

Implements Teko::BlockPreconditionerFactory.

Definition at line 69 of file Teko_GaussSeidelPreconditionerFactory.cpp.

void Teko::GaussSeidelPreconditionerFactory::initializeFromParameterList ( const Teuchos::ParameterList &  pl) [protected, virtual]

Initialize from a parameter list.

Reimplemented from Teko::PreconditionerFactory.

Definition at line 98 of file Teko_GaussSeidelPreconditionerFactory.cpp.


Member Data Documentation

some members

Definition at line 113 of file Teko_GaussSeidelPreconditionerFactory.hpp.


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