5#ifndef GENERIC_INTERPOLATIONHELPER_HH
6#define GENERIC_INTERPOLATIONHELPER_HH
10#include <dune/common/fvector.hh>
11#include <dune/common/concept.hh>
20 template<
class F,
unsigned int dimension >
23 template <
class Func,
class Container,
bool type>
26 template <
class F,
unsigned int d>
27 template <
class Func,
class Vector>
31 typedef std::vector< Dune::FieldVector<F,d> >
Result;
32 Helper(
const Func & func, Vector &vec)
37 const typename Vector::value_type &
operator()(
unsigned int row,
unsigned int col)
42 void set(
unsigned int row,
unsigned int col,
46 assert(row<vec_.size());
50 void add(
unsigned int row,
unsigned int col,
54 assert(row<vec_.size());
55 vec_[row] += field_cast<typename Vector::value_type>(val);
57 template <
class DomainVector,
58 std::enable_if_t<models<Impl::FunctionWithCallOperator<DomainVector>, Func>(),
int> = 0>
64 template <
class DomainVector,
65 std::enable_if_t<not models<Impl::FunctionWithCallOperator<DomainVector>, Func>(),
int> = 0>
68 typename Func::DomainType xx ;
69 typename Func::RangeType ff ;
71 func_.evaluate(xx,ff);
83 template <
class F,
unsigned int d>
84 template <
class Basis,
class Matrix>
88 typedef std::vector< Dune::FieldVector<F,d> >
Result;
89 Helper(
const Basis & basis, Matrix &matrix)
93 const F &
operator()(
unsigned int row,
unsigned int col)
const
95 return matrix_(row,col);
99 return matrix_(row,col);
102 void set(
unsigned int row,
unsigned int col,
105 assert(col<matrix_.cols());
106 assert(row<matrix_.rows());
110 void add(
unsigned int row,
unsigned int col,
113 assert(col<matrix_.cols());
114 assert(row<matrix_.rows());
115 matrix_(row,col) += val;
117 template <
class DomainVector>
120 basis_.template evaluate<0>(x,tmp_);
125 return basis_.size();
Definition: bdfmcube.hh:18
void field_cast(const F1 &f1, F2 &f2)
a helper class to cast from one field to another
Definition: field.hh:159
Definition: interpolationhelper.hh:22
Definition: interpolationhelper.hh:24
void add(unsigned int row, unsigned int col, const Fy &val)
Definition: interpolationhelper.hh:50
const Func & func_
Definition: interpolationhelper.hh:79
Helper(const Func &func, Vector &vec)
Definition: interpolationhelper.hh:32
const Result & evaluate(const DomainVector &x) const
Definition: interpolationhelper.hh:59
std::vector< Dune::FieldVector< F, d > > Result
Definition: interpolationhelper.hh:31
unsigned int size() const
Definition: interpolationhelper.hh:75
Vector & vec_
Definition: interpolationhelper.hh:80
void set(unsigned int row, unsigned int col, const Fy &val)
Definition: interpolationhelper.hh:42
Result tmp_
Definition: interpolationhelper.hh:81
const Vector::value_type & operator()(unsigned int row, unsigned int col)
Definition: interpolationhelper.hh:37
const Basis & basis_
Definition: interpolationhelper.hh:128
const Result & evaluate(const DomainVector &x) const
Definition: interpolationhelper.hh:118
F & operator()(unsigned int row, unsigned int col)
Definition: interpolationhelper.hh:97
void set(unsigned int row, unsigned int col, const Fy &val)
Definition: interpolationhelper.hh:102
Helper(const Basis &basis, Matrix &matrix)
Definition: interpolationhelper.hh:89
unsigned int size() const
Definition: interpolationhelper.hh:123
Result tmp_
Definition: interpolationhelper.hh:130
void add(unsigned int row, unsigned int col, const Fy &val)
Definition: interpolationhelper.hh:110
std::vector< Dune::FieldVector< F, d > > Result
Definition: interpolationhelper.hh:88
Matrix & matrix_
Definition: interpolationhelper.hh:129
const F & operator()(unsigned int row, unsigned int col) const
Definition: interpolationhelper.hh:93