DOLFIN
DOLFIN C++ interface
Toggle main menu visibility
Loading...
Searching...
No Matches
dolfin
la
MueluPreconditioner.h
1
// Copyright (C) 2014 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
19
#ifndef __DOLFIN_MUELU_PRECONDITIONER_H
20
#define __DOLFIN_MUELU_PRECONDITIONER_H
21
22
#ifdef HAS_TRILINOS
23
24
//#include <MueLu.hpp>
25
#include <MueLu_TpetraOperator.hpp>
26
27
#include "BelosKrylovSolver.h"
28
#include "TrilinosPreconditioner.h"
29
#include "TpetraMatrix.h"
30
#include "TpetraVector.h"
31
32
namespace
dolfin
33
{
34
36
class
BelosKrylovSolver
;
37
39
40
class
MueluPreconditioner
:
public
TrilinosPreconditioner
,
public
Variable
41
{
42
43
public
:
44
46
MueluPreconditioner
();
47
49
virtual
~MueluPreconditioner
();
50
52
virtual
void
set
(
BelosKrylovSolver
& solver);
53
55
std::string
str
(
bool
verbose)
const
;
56
58
virtual
void
init
(std::shared_ptr<const TpetraMatrix> P);
59
61
static
Parameters
default_parameters
();
62
63
private
:
64
65
typedef
Tpetra::Operator<double, int,
dolfin::la_index
,
66
TpetraVector::node_type
> op_type;
67
68
typedef
MueLu::TpetraOperator<double, int,
dolfin::la_index
,
69
TpetraVector::node_type
> prec_type;
70
71
// Muelu preconditioner, to be constructed from a Tpetra Operator
72
// or Matrix
73
Teuchos::RCP<prec_type> _prec;
74
75
};
76
77
}
78
79
#endif
80
81
#endif
dolfin::BelosKrylovSolver
Definition
BelosKrylovSolver.h:52
dolfin::MueluPreconditioner::str
std::string str(bool verbose) const
Return informal string representation (pretty-print).
Definition
MueluPreconditioner.cpp:61
dolfin::MueluPreconditioner::init
virtual void init(std::shared_ptr< const TpetraMatrix > P)
Initialise preconditioner based on Operator P.
Definition
MueluPreconditioner.cpp:41
dolfin::MueluPreconditioner::default_parameters
static Parameters default_parameters()
Default parameter values.
Definition
MueluPreconditioner.cpp:76
dolfin::MueluPreconditioner::MueluPreconditioner
MueluPreconditioner()
Create a particular preconditioner object.
Definition
MueluPreconditioner.cpp:30
dolfin::MueluPreconditioner::set
virtual void set(BelosKrylovSolver &solver)
Set the preconditioner on a solver.
Definition
MueluPreconditioner.cpp:56
dolfin::MueluPreconditioner::~MueluPreconditioner
virtual ~MueluPreconditioner()
Destructor.
Definition
MueluPreconditioner.cpp:36
dolfin::Parameters
Definition
Parameters.h:95
dolfin::TpetraVector::node_type
Tpetra::MultiVector ::node_type node_type
Node type.
Definition
TpetraVector.h:58
dolfin::TrilinosPreconditioner::TrilinosPreconditioner
TrilinosPreconditioner()
Constructor.
Definition
TrilinosPreconditioner.h:41
dolfin::Variable::Variable
Variable()
Create unnamed variable.
Definition
Variable.cpp:31
dolfin
Definition
adapt.h:30
dolfin::la_index
PetscInt la_index
Index type for compatibility with linear algebra backend(s).
Definition
types.h:32
Generated by
1.17.0