DOLFIN
DOLFIN C++ interface
TrilinosPreconditioner.h
1 // Copyright (C) 2015 Chris Richardson
2 //
3 // This file is part of DOLFIN.
4 //
5 // DOLFIN is free software: you can redistribute it and/or modify
6 // it under the terms of the GNU Lesser General Public License as published by
7 // the Free Software Foundation, either version 3 of the License, or
8 // (at your option) any later version.
9 //
10 // DOLFIN is distributed in the hope that it will be useful,
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 // GNU Lesser General Public License for more details.
14 //
15 // You should have received a copy of the GNU Lesser General Public License
16 // along with DOLFIN. If not, see <http://www.gnu.org/licenses/>.
17 //
18 // First added: 2012-11-09
19 // Last changed:
20 
21 #ifndef __TRILINOS_PRECONDITIONER_H
22 #define __TRILINOS_PRECONDITIONER_H
23 
24 #ifdef HAS_TRILINOS
25 
26 #include <memory>
27 
28 namespace dolfin
29 {
30 
31  class BelosKrylovSolver;
32  class TpetraMatrix;
33 
35 
37  {
38  public:
39 
42  {}
43 
46  {}
47 
49  virtual void set(BelosKrylovSolver& solver) = 0;
50 
52  virtual void init(std::shared_ptr<const TpetraMatrix> P) = 0;
53 
54  };
55 }
56 
57 #endif
58 
59 #endif
Definition: adapt.h:29
This class provides a common base for Trilinos preconditioners.
Definition: TrilinosPreconditioner.h:36
TrilinosPreconditioner()
Constructor.
Definition: TrilinosPreconditioner.h:41
Definition: BelosKrylovSolver.h:51
~TrilinosPreconditioner()
Destructor.
Definition: TrilinosPreconditioner.h:45
virtual void init(std::shared_ptr< const TpetraMatrix > P)=0
Initialise this preconditioner with the operator P.