Teko Version of the Day
Loading...
Searching...
No Matches
Teko_DiagonalPreconditionerFactory.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_DiagonalPreconditionerFactory_hpp__
11#define __Teko_DiagonalPreconditionerFactory_hpp__
12
13// Teko includes
14#include "Teko_PreconditionerState.hpp"
15#include "Teko_PreconditionerFactory.hpp"
16
17class EpetraExt_PointToBlockDiagPermute;
18
19namespace Teko {
20
21using Thyra::DefaultPreconditioner;
22using Thyra::LinearOpBase;
23
28class DiagonalPrecondState : public Teko::PreconditionerState {
29 public:
30 DiagonalPrecondState();
31
32 Teuchos::RCP<EpetraExt_PointToBlockDiagPermute> BDP_;
33};
34
64class DiagonalPreconditionerFactory : public virtual Teko::PreconditionerFactory {
65 public:
67
68
69 DiagonalPreconditionerFactory();
70
72
74 Teuchos::RCP<PreconditionerState> buildPreconditionerState() const;
75
78 LinearOp buildPreconditionerOperator(LinearOp& lo, PreconditionerState& state) const;
79
81 virtual void initializeFromParameterList(const Teuchos::ParameterList& pl);
82
83 protected:
85 mutable Teuchos::ParameterList List_;
86
87 DiagonalType diagonalType_;
88};
89
90} // end namespace Teko
91
92#endif
virtual void initializeFromParameterList(const Teuchos::ParameterList &pl)
Initialize from a parameter list.
Teuchos::RCP< PreconditionerState > buildPreconditionerState() const
Builds a preconditioner state object.
LinearOp buildPreconditionerOperator(LinearOp &lo, PreconditionerState &state) const
Abstract class which block preconditioner factories in Teko should be based on.
An implementation of a state object preconditioners.