GEOSX
LinearSolverResult.hpp
Go to the documentation of this file.
1 /*
2  * ------------------------------------------------------------------------------------------------------------
3  * SPDX-License-Identifier: LGPL-2.1-only
4  *
5  * Copyright (c) 2018-2020 Lawrence Livermore National Security LLC
6  * Copyright (c) 2018-2020 The Board of Trustees of the Leland Stanford Junior University
7  * Copyright (c) 2018-2020 Total, S.A
8  * Copyright (c) 2019- GEOSX Contributors
9  * All rights reserved
10  *
11  * See top level LICENSE, COPYRIGHT, CONTRIBUTORS, NOTICE, and ACKNOWLEDGEMENTS files for details.
12  * ------------------------------------------------------------------------------------------------------------
13  */
14 
19 #ifndef GEOSX_LINEARALGEBRA_UTILITIES_LINEARSOLVERRESULT_HPP_
20 #define GEOSX_LINEARALGEBRA_UTILITIES_LINEARSOLVERRESULT_HPP_
21 
22 #include "common/DataTypes.hpp"
23 
24 #include <vector>
25 
26 namespace geosx
27 {
28 
36 {
40  enum class Status
41  {
42  InProgress,
43  Success,
44  NotConverged,
45  Breakdown
46  };
47 
49  Status status = Status::InProgress;
50 
53 
56 
59 
62 
67  bool success() const
68  {
69  return status == Status::Success;
70  }
71 
76  bool breakdown() const
77  {
78  return status == Status::Breakdown;
79  }
80 };
81 
82 }
83 
84 #endif //GEOSX_LINEARALGEBRA_UTILITIES_LINEARSOLVERRESULT_HPP_
Status
Status of the linear solve.
integer numIterations
Number of solver iterations performed.
Results/stats of a linear solve.
real64 solveTime
Solve time (in seconds) exclusive of setup costs.
double real64
64-bit floating point type.
Definition: DataTypes.hpp:136
bool breakdown() const
Check whether the last solve brokedown.
real64 residualReduction
Final relative residual norm.
std::int32_t integer
Signed integer type.
Definition: DataTypes.hpp:122
real64 setupTime
Setup time (in seconds) for preconditioners and/or direct factorizations.
Status status
convergence flag
bool success() const
Check whether the last solve was successful.