Teko
Version of the Day
Toggle main menu visibility
Loading...
Searching...
No Matches
src
Teko_GaussSeidelPreconditionerFactory.hpp
1
// @HEADER
2
// *****************************************************************************
3
// Teko: A package for block and physics based preconditioning
4
//
5
// Copyright 2010 NTESS and the Teko contributors.
6
// SPDX-License-Identifier: BSD-3-Clause
7
// *****************************************************************************
8
// @HEADER
9
10
#ifndef __Teko_GaussSeidelPreconditionerFactory_hpp__
11
#define __Teko_GaussSeidelPreconditionerFactory_hpp__
12
13
#include "Teuchos_RCP.hpp"
14
15
#include "Teko_BlockPreconditionerFactory.hpp"
16
#include "Teko_BlockInvDiagonalStrategy.hpp"
17
#include "
Teko_Utilities.hpp
"
18
19
namespace
Teko {
20
21
typedef
enum
{ GS_UseLowerTriangle, GS_UseUpperTriangle } TriSolveType;
22
65
class
GaussSeidelPreconditionerFactory
:
public
BlockPreconditionerFactory
{
66
public
:
68
69
73
GaussSeidelPreconditionerFactory
(TriSolveType solveType,
const
LinearOp& invD0,
74
const
LinearOp& invD1);
75
80
GaussSeidelPreconditionerFactory
(TriSolveType solveType,
81
const
RCP<const BlockInvDiagonalStrategy>& strategy);
82
85
GaussSeidelPreconditionerFactory
();
86
88
95
LinearOp
buildPreconditionerOperator
(BlockedLinearOp& blo,
BlockPreconditionerState
& state)
const
;
96
97
protected
:
98
using
BlockPreconditionerFactory::buildPreconditionerOperator
;
99
101
Teuchos::RCP<const BlockInvDiagonalStrategy>
invOpsStrategy_
;
102
TriSolveType solveType_;
103
105
virtual
void
initializeFromParameterList
(
const
Teuchos::ParameterList& pl);
106
};
107
108
}
// end namespace Teko
109
110
#endif
Teko_Utilities.hpp
Teko::BlockPreconditionerFactory
Abstract class which block preconditioner factories in Teko should be based on.
Definition
Teko_BlockPreconditionerFactory.hpp:63
Teko::BlockPreconditionerFactory::buildPreconditionerOperator
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.
Teko::BlockPreconditionerState
An implementation of a state object for block preconditioners.
Definition
Teko_BlockPreconditionerFactory.hpp:43
Teko::GaussSeidelPreconditionerFactory::buildPreconditionerOperator
LinearOp buildPreconditionerOperator(BlockedLinearOp &blo, BlockPreconditionerState &state) const
Create the Gauss-Seidel preconditioner operator.
Definition
Teko_GaussSeidelPreconditionerFactory.cpp:33
Teko::GaussSeidelPreconditionerFactory::GaussSeidelPreconditionerFactory
GaussSeidelPreconditionerFactory()
Definition
Teko_GaussSeidelPreconditionerFactory.cpp:30
Teko::GaussSeidelPreconditionerFactory::invOpsStrategy_
Teuchos::RCP< const BlockInvDiagonalStrategy > invOpsStrategy_
some members
Definition
Teko_GaussSeidelPreconditionerFactory.hpp:101
Teko::GaussSeidelPreconditionerFactory::GaussSeidelPreconditionerFactory
GaussSeidelPreconditionerFactory(TriSolveType solveType, const LinearOp &invD0, const LinearOp &invD1)
Definition
Teko_GaussSeidelPreconditionerFactory.cpp:21
Teko::GaussSeidelPreconditionerFactory::initializeFromParameterList
virtual void initializeFromParameterList(const Teuchos::ParameterList &pl)
Initialize from a parameter list.
Definition
Teko_GaussSeidelPreconditionerFactory.cpp:62
Generated by
1.17.0