dune-pdelab  2.5-dev
inverse.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_FUNCTION_INVERSE_HH
4 #define DUNE_PDELAB_FUNCTION_INVERSE_HH
5 
7 
8 namespace Dune {
9  namespace PDELab {
10 
12 
15  template<typename GF>
17  : public GridFunctionBase<typename GF::Traits,
18  InverseGridFunctionAdapter<GF> >
19  {
20  static_assert(GF::Traits::dimRange == 1, "Dimension of range must "
21  "be 1 to take the inverse");
22 
23  typedef typename GF::Traits T;
25  Base;
26  typedef typename T::RangeFieldType RF;
27 
28  GF& gf;
29 
30  public:
31  typedef typename Base::Traits Traits;
32 
34  : gf(gf_)
35  { }
36 
37  void evaluate(const typename Traits::ElementType &e,
38  const typename Traits::DomainType &x,
39  typename Traits::RangeType &y) const {
40  gf.evaluate(e,x,y);
41  y = 1/y;
42  }
43 
44  const typename Traits::GridViewType& getGridView() const {
45  return gf.getGridView();
46  }
47 
48  template<typename Time>
49  void setTime(Time time) { gf.setTime(time); }
50  };
51 
52  } // namspace PDELab
53 } // namspace Dune
54 
55 #endif // DUNE_PDELAB_FUNCTION_INVERSE_HH
leaf of a function tree
Definition: function.hh:575
T Traits
Export type traits.
Definition: function.hh:191
const Traits::GridViewType & getGridView() const
Definition: inverse.hh:44
InverseGridFunctionAdapter(GF &gf_)
Definition: inverse.hh:33
Base::Traits Traits
Definition: inverse.hh:31
Take inverse of a GridFunction.
Definition: inverse.hh:16
For backward compatibility – Do not use this!
Definition: adaptivity.hh:27
const Entity & e
Definition: localfunctionspace.hh:111
void evaluate(const typename Traits::ElementType &e, const typename Traits::DomainType &x, typename Traits::RangeType &y) const
Definition: inverse.hh:37
void setTime(Time time)
Definition: inverse.hh:49