10#ifndef __Teko_GaussSeidelPreconditionerFactory_hpp__
11#define __Teko_GaussSeidelPreconditionerFactory_hpp__
13#include "Teuchos_RCP.hpp"
15#include "Teko_BlockPreconditionerFactory.hpp"
16#include "Teko_BlockInvDiagonalStrategy.hpp"
21typedef enum { GS_UseLowerTriangle, GS_UseUpperTriangle } TriSolveType;
74 const LinearOp& invD1);
81 const RCP<const BlockInvDiagonalStrategy>& strategy);
102 TriSolveType solveType_;
Abstract class which block preconditioner factories in Teko should be based on.
virtual LinearOp buildPreconditionerOperator(BlockedLinearOp &blo, BlockPreconditionerState &state) const =0
Function that is called to build the preconditioner for the linear operator that is passed in.
An implementation of a state object for block preconditioners.
LinearOp buildPreconditionerOperator(BlockedLinearOp &blo, BlockPreconditionerState &state) const
Create the Gauss-Seidel preconditioner operator.
GaussSeidelPreconditionerFactory()
Teuchos::RCP< const BlockInvDiagonalStrategy > invOpsStrategy_
some members
GaussSeidelPreconditionerFactory(TriSolveType solveType, const LinearOp &invD0, const LinearOp &invD1)
virtual void initializeFromParameterList(const Teuchos::ParameterList &pl)
Initialize from a parameter list.