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
32
33namespace Opm {
34namespace Linear {
35
40{
41public:
43 { reset(); }
44
45 void reset()
46 {
47 timer_.halt();
48 iterations_ = 0;
49 converged_ = 0;
50 }
51
52 const Timer& timer() const
53 { return timer_; }
54
56 { return timer_; }
57
58 unsigned iterations() const
59 { return iterations_; }
60
61 void increment()
62 { ++iterations_; }
63
65 { ++iterations_; return *this; }
66
67 bool converged() const
68 { return converged_; }
69
70 void setConverged(bool value)
71 { converged_ = value; }
72
73private:
74 Timer timer_;
75 unsigned iterations_;
76 bool converged_;
77};
78
79}} // end namespace Linear, Opm
80
81#endif
Collects summary information about the execution of the linear solver.
Definition: linearsolverreport.hh:40
bool converged() const
Definition: linearsolverreport.hh:67
unsigned iterations() const
Definition: linearsolverreport.hh:58
SolverReport()
Definition: linearsolverreport.hh:42
const Timer & timer() const
Definition: linearsolverreport.hh:52
void reset()
Definition: linearsolverreport.hh:45
SolverReport & operator++()
Definition: linearsolverreport.hh:64
Timer & timer()
Definition: linearsolverreport.hh:55
void setConverged(bool value)
Definition: linearsolverreport.hh:70
void increment()
Definition: linearsolverreport.hh:61
Provides an encapsulation to measure the system time.
Definition: timer.hpp:46
void halt()
Stop the measurement reset all timing values.
Definition: blackoilboundaryratevector.hh:39