dune-pdelab  2.0.0
solver.hh
Go to the documentation of this file.
1 // -*- tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*-
2 // vi: set et ts=8 sw=2 sts=2:
3 #ifndef DUNE_PDELAB_BACKEND_SOLVER_HH
4 #define DUNE_PDELAB_BACKEND_SOLVER_HH
5 
6 #include <dune/common/fvector.hh>
8 
9 namespace Dune {
10  namespace PDELab {
11 
15 
17  {
21  template<class V>
22  typename Dune::template FieldTraits<typename V::ElementType >::real_type norm(const V& v) const
23  {
24  return istl::raw(v).two_norm();
25  }
26  };
27 
28  // Status information of a linear solver
29  template<class RFType>
31  {
32  bool converged; // Solver converged
33  unsigned int iterations; // number of iterations
34  double elapsed; // total user time in seconds
35  RFType reduction; // defect reduction
36  RFType conv_rate; // convergence rate (average reduction per step)
37 
39  converged(false), iterations(0), elapsed(0.0), reduction(0.0), conv_rate(0.0) {}
40  };
41 
43  {
44  public:
47  {
48  return res;
49  }
50 
51  protected:
53  };
54 
56 
57  } // end namespace PDELab
58 } // end namespace Dune
59 
60 
61 #endif // DUNE_PDELAB_BACKEND_SOLVER_HH
bool converged
Definition: solver.hh:32
double elapsed
Definition: solver.hh:34
LinearSolverResult()
Definition: solver.hh:38
Definition: solver.hh:30
V & raw(V &v)
Returns the raw ISTL object associated with v, or v itself it is already an ISTL object.
Definition: backend/istl/utility.hh:26
Dune::PDELab::LinearSolverResult< double > res
Definition: solver.hh:52
RFType reduction
Definition: solver.hh:35
Definition: solver.hh:42
const Dune::PDELab::LinearSolverResult< double > & result() const
Return access to result data.
Definition: solver.hh:46
Definition: solver.hh:16
Dune::template FieldTraits< typename V::ElementType >::real_type norm(const V &v) const
compute global norm of a vector
Definition: solver.hh:22
RFType conv_rate
Definition: solver.hh:36
unsigned int iterations
Definition: solver.hh:33