dune-fem  2.4.1-rc
solver/parameter.hh
Go to the documentation of this file.
1 // vim: set expandtab ts=2 sw=2 sts=2:
2 #ifndef DUNE_FEM_SOLVERPARAMETER_HH
3 #define DUNE_FEM_SOLVERPARAMETER_HH
4 
6 
7 namespace Dune
8 {
9 
10  namespace Fem
11  {
12 
13 
15 #ifndef DOXYGEN
16  : public LocalParameter< SolverParameter, SolverParameter >
17 #endif
18  {
19  protected:
20  // key prefix, default is fem.solver (can be overloaded by user)
21  const std::string keyPrefix_;
22 
24 
25  public:
26 
27  explicit SolverParameter ( const ParameterReader &parameter = Parameter::container() )
28  : keyPrefix_( "fem.solver." ), parameter_( parameter )
29  {}
30 
31  explicit SolverParameter ( const std::string keyPrefix, const ParameterReader &parameter = Parameter::container() )
32  : keyPrefix_( keyPrefix ), parameter_( parameter )
33  {}
34 
35  virtual bool verbose() const
36  {
37  return Parameter::getValue< bool >( keyPrefix_ + "verbose", false );
38  }
39 
40  virtual int errorMeasure() const
41  {
42  static const std::string errorTypeTable[] = { "absolute", "relative" };
43  return parameter_.getEnum( keyPrefix_ + "errormeasure", errorTypeTable, 0 );
44  }
45 
46  };
47 
48  }
49 }
50 
51 #endif // #ifndef DUNE_FEM_SOLVERPARAMETER_HH
const std::string keyPrefix_
Definition: solver/parameter.hh:21
SolverParameter(const std::string keyPrefix, const ParameterReader &parameter=Parameter::container())
Definition: solver/parameter.hh:31
int getEnum(const std::string &key, const std::string(&values)[n]) const
Definition: reader.hh:215
SolverParameter(const ParameterReader &parameter=Parameter::container())
Definition: solver/parameter.hh:27
virtual bool verbose() const
Definition: solver/parameter.hh:35
virtual int errorMeasure() const
Definition: solver/parameter.hh:40
Definition: io/parameter.hh:549
Definition: coordinate.hh:4
static ParameterContainer & container()
Definition: io/parameter.hh:190
Definition: solver/parameter.hh:14
ParameterReader parameter_
Definition: solver/parameter.hh:23