linearsolverreport.hh
Go to the documentation of this file.
1// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
2// vi: set et ts=4 sw=4 sts=4:
3/*
4 This file is part of the Open Porous Media project (OPM).
5
6 OPM is free software: you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation, either version 2 of the License, or
9 (at your option) any later version.
10
11 OPM is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
15
16 You should have received a copy of the GNU General Public License
17 along with OPM. If not, see <http://www.gnu.org/licenses/>.
18
19 Consult the COPYING file in the top-level source directory of this
20 module for the precise wording of the license and the list of
21 copyright holders.
22*/
27#ifndef EWOMS_LINEAR_SOLVER_REPORT_HH
28#define EWOMS_LINEAR_SOLVER_REPORT_HH
29
31
34
35namespace Opm {
36namespace Linear {
37
42{
43public:
45 { reset(); }
46
47 void reset()
48 {
49 timer_.halt();
50 iterations_ = 0;
51 converged_ = 0;
52 }
53
54 const Opm::Timer& timer() const
55 { return timer_; }
56
58 { return timer_; }
59
60 unsigned iterations() const
61 { return iterations_; }
62
63 void increment()
64 { ++iterations_; }
65
67 { ++iterations_; return *this; }
68
69 bool converged() const
70 { return converged_; }
71
72 void setConverged(bool value)
73 { converged_ = value; }
74
75private:
76 Opm::Timer timer_;
77 unsigned iterations_;
78 bool converged_;
79};
80
81}} // end namespace Linear, Opm
82
83#endif
Collects summary information about the execution of the linear solver.
Definition: linearsolverreport.hh:42
bool converged() const
Definition: linearsolverreport.hh:69
unsigned iterations() const
Definition: linearsolverreport.hh:60
SolverReport()
Definition: linearsolverreport.hh:44
Opm::Timer & timer()
Definition: linearsolverreport.hh:57
void reset()
Definition: linearsolverreport.hh:47
SolverReport & operator++()
Definition: linearsolverreport.hh:66
void setConverged(bool value)
Definition: linearsolverreport.hh:72
const Opm::Timer & timer() const
Definition: linearsolverreport.hh:54
void increment()
Definition: linearsolverreport.hh:63
Provides an encapsulation to measure the system time.
Definition: timer.hh:49
void halt()
Stop the measurement reset all timing values.
Definition: timer.hh:99
Define some base class for the convergence criteria of the linear solvers of DUNE-ISTL.
Definition: blackoilboundaryratevector.hh:37