5#ifndef GENERIC_INTERPOLATIONHELPER_HH
6#define GENERIC_INTERPOLATIONHELPER_HH
10#include <dune/common/fvector.hh>
11#include <dune/common/concept.hh>
19 template<
class F,
unsigned int dimension >
22 template <
class Func,
class Container,
bool type>
25 template <
class F,
unsigned int d>
26 template <
class Func,
class Vector>
30 typedef std::vector< Dune::FieldVector<F,d> >
Result;
31 Helper(
const Func & func, Vector &vec)
36 const typename Vector::value_type &
operator()(
unsigned int row,
unsigned int col)
41 void set(
unsigned int row,
unsigned int col,
45 assert(row<vec_.size());
49 void add(
unsigned int row,
unsigned int col,
53 assert(row<vec_.size());
54 vec_[row] += field_cast<typename Vector::value_type>(val);
56 template <
class DomainVector>
70 template <
class F,
unsigned int d>
71 template <
class Basis,
class Matrix>
75 typedef std::vector< Dune::FieldVector<F,d> >
Result;
76 Helper(
const Basis & basis, Matrix &matrix)
80 const F &
operator()(
unsigned int row,
unsigned int col)
const
82 return matrix_[row][col];
86 return matrix_[row][col];
89 void set(
unsigned int row,
unsigned int col,
92 assert(col<matrix_.cols());
93 assert(row<matrix_.rows());
97 void add(
unsigned int row,
unsigned int col,
100 assert(col<matrix_.cols());
101 assert(row<matrix_.rows());
102 matrix_[row][col] += val;
104 template <
class DomainVector>
107 basis_.template evaluate<0>(x,tmp_);
112 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:21
Definition interpolationhelper.hh:23
void add(unsigned int row, unsigned int col, const Fy &val)
Definition interpolationhelper.hh:49
const Func & func_
Definition interpolationhelper.hh:66
Helper(const Func &func, Vector &vec)
Definition interpolationhelper.hh:31
const Result & evaluate(const DomainVector &x) const
Definition interpolationhelper.hh:57
std::vector< Dune::FieldVector< F, d > > Result
Definition interpolationhelper.hh:30
unsigned int size() const
Definition interpolationhelper.hh:62
Vector & vec_
Definition interpolationhelper.hh:67
void set(unsigned int row, unsigned int col, const Fy &val)
Definition interpolationhelper.hh:41
Result tmp_
Definition interpolationhelper.hh:68
const Vector::value_type & operator()(unsigned int row, unsigned int col)
Definition interpolationhelper.hh:36
const Basis & basis_
Definition interpolationhelper.hh:115
const Result & evaluate(const DomainVector &x) const
Definition interpolationhelper.hh:105
F & operator()(unsigned int row, unsigned int col)
Definition interpolationhelper.hh:84
void set(unsigned int row, unsigned int col, const Fy &val)
Definition interpolationhelper.hh:89
Helper(const Basis &basis, Matrix &matrix)
Definition interpolationhelper.hh:76
unsigned int size() const
Definition interpolationhelper.hh:110
Result tmp_
Definition interpolationhelper.hh:117
void add(unsigned int row, unsigned int col, const Fy &val)
Definition interpolationhelper.hh:97
std::vector< Dune::FieldVector< F, d > > Result
Definition interpolationhelper.hh:75
Matrix & matrix_
Definition interpolationhelper.hh:116
const F & operator()(unsigned int row, unsigned int col) const
Definition interpolationhelper.hh:80