Teko Version of the Day
Loading...
Searching...
No Matches
Teko_ProbingPreconditionerFactory.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_ProbingPreconditionerFactory_hpp__
11#define __Teko_ProbingPreconditionerFactory_hpp__
12
13#include "Teko_Config.h"
14
15#ifdef Teko_ENABLE_Isorropia
16
17// Teko includes
18#include "Teko_PreconditionerState.hpp"
19#include "Teko_PreconditionerFactory.hpp"
20
21// Isorropia includes
22#include "Isorropia_EpetraProber.hpp"
23
24namespace Teko {
25
31class ProbingPreconditionerFactory : public virtual Teko::PreconditionerFactory {
32 public:
34
35
38 ProbingPreconditionerFactory();
39
41
44 LinearOp buildPreconditionerOperator(LinearOp& lo, PreconditionerState& state) const;
45
47 virtual void initializeFromParameterList(const Teuchos::ParameterList& pl);
48
49 void setGraphOperator(const Teko::LinearOp& graphOp);
50 void setGraph(const Teuchos::RCP<const Epetra_CrsGraph>& graph);
51
52 void setProberList(const Teuchos::ParameterList& list);
53
54 void setInverseFactory(const Teuchos::RCP<Teko::InverseFactory>& invFactory) {
55 invFactory_ = invFactory;
56 }
57
58 protected:
60 Teuchos::RCP<Isorropia::Epetra::Prober> prober;
61 Teuchos::RCP<Teko::InverseFactory> invFactory_;
62};
63
64} // end namespace Teko
65
66#endif
67#endif