dune-pdelab  2.4-dev
permeability_adapter.hh
Go to the documentation of this file.
1 #ifndef PERMEABILITY_ADAPTER_HH
2 #define PERMEABILITY_ADAPTER_HH
3 
8 template<typename T>
10  : public Dune::PDELab::GridFunctionBase<Dune::PDELab::GridFunctionTraits<typename T::Traits::GridViewType,
11  typename T::Traits::RangeFieldType,
12  1,Dune::FieldVector<typename T::Traits::RangeFieldType,1> >
13  ,PermeabilityAdapter<T> >
14 {
15 public:
16  typedef Dune::PDELab::GridFunctionTraits<typename T::Traits::GridViewType,
17  typename T::Traits::RangeFieldType,
18  1,Dune::FieldVector<typename T::Traits::RangeFieldType,1> > Traits;
19 
21  PermeabilityAdapter (const typename Traits::GridViewType& g_, T& t_)
22  : g(g_), t(t_)
23  {}
24 
26  inline void evaluate (const typename Traits::ElementType& e,
27  const typename Traits::DomainType& x,
28  typename Traits::RangeType& y) const
29  {
30  y = log(t.A(e,x)[0][0]);
31  }
32 
33  inline const typename Traits::GridViewType& getGridView () const
34  {
35  return g;
36  }
37 
38  inline void setTime(double time_)
39  {
40  t.setTime(time_);
41  }
42 
43 private:
44  const typename Traits::GridViewType& g;
45  T& t;
46 };
47 
52 template<typename T>
54  : public Dune::PDELab::GridFunctionBase<Dune::PDELab::GridFunctionTraits<typename T::Traits::GridViewType,
55  typename T::Traits::RangeFieldType,
56  T::Traits::dimDomain,Dune::FieldVector<typename T::Traits::RangeFieldType,T::Traits::dimDomain> >
57  ,DiagonalPermeabilityAdapter<T> >
58 {
59 public:
60  typedef Dune::PDELab::GridFunctionTraits<typename T::Traits::GridViewType,
61  typename T::Traits::RangeFieldType,
62  T::Traits::dimDomain,Dune::FieldVector<typename T::Traits::RangeFieldType,T::Traits::dimDomain> > Traits;
63 
66  : g(g_), t(t_)
67  {}
68 
70  inline void evaluate (const typename Traits::ElementType& e,
71  const typename Traits::DomainType& x,
72  typename Traits::RangeType& y) const
73  {
74  for (int i=0; i<T::Traits::dimDomain; i++)
75  y[i] = log10(t.A(e,x)[i][i]);
76  }
77 
78  inline const typename Traits::GridViewType& getGridView () const
79  {
80  return g;
81  }
82 
83  inline void setTime(double time_)
84  {
85  t.setTime(time_);
86  }
87 
88 private:
89  const typename Traits::GridViewType& g;
90  T& t;
91 };
92 
93 #endif
Dune::PDELab::GridFunctionTraits< typename T::Traits::GridViewType, typename T::Traits::RangeFieldType, 1, Dune::FieldVector< typename T::Traits::RangeFieldType, 1 > > Traits
Definition: permeability_adapter.hh:18
Definition: permeability_adapter.hh:9
DiagonalPermeabilityAdapter(const typename Traits::GridViewType &g_, T &t_)
constructor
Definition: permeability_adapter.hh:65
const E & e
Definition: interpolate.hh:172
GV GridViewType
The type of the grid view the function lives on.
Definition: function.hh:114
PermeabilityAdapter(const typename Traits::GridViewType &g_, T &t_)
constructor
Definition: permeability_adapter.hh:21
leaf of a function tree
Definition: function.hh:576
Dune::FieldVector< GV::Grid::ctype, GV::dimension > DomainType
domain type in dim-size coordinates
Definition: function.hh:48
traits class holding the function signature, same as in local function
Definition: function.hh:175
Dune::PDELab::GridFunctionTraits< typename T::Traits::GridViewType, typename T::Traits::RangeFieldType, T::Traits::dimDomain, Dune::FieldVector< typename T::Traits::RangeFieldType, T::Traits::dimDomain > > Traits
Definition: permeability_adapter.hh:62
void evaluate(const typename Traits::ElementType &e, const typename Traits::DomainType &x, typename Traits::RangeType &y) const
Definition: permeability_adapter.hh:70
void setTime(double time_)
Definition: permeability_adapter.hh:38
void setTime(double time_)
Definition: permeability_adapter.hh:83
GV::Traits::template Codim< 0 >::Entity ElementType
codim 0 entity
Definition: function.hh:117
Definition: permeability_adapter.hh:53
void evaluate(const typename Traits::ElementType &e, const typename Traits::DomainType &x, typename Traits::RangeType &y) const
Definition: permeability_adapter.hh:26
const Traits::GridViewType & getGridView() const
Definition: permeability_adapter.hh:78
const Traits::GridViewType & getGridView() const
Definition: permeability_adapter.hh:33