dune-localfunctions
2.7.0
|
Go to the documentation of this file.
3 #ifndef GENERIC_INTERPOLATIONHELPER_HH
4 #define GENERIC_INTERPOLATIONHELPER_HH
8 #include <dune/common/fvector.hh>
9 #include <dune/common/concept.hh>
18 template<
class F,
unsigned int dimension >
21 template <
class Func,
class Container,
bool type>
24 template <
class F,
unsigned int d>
25 template <
class Func,
class Vector>
29 typedef std::vector< Dune::FieldVector<F,d> >
Result;
30 Helper(
const Func & func, Vector &vec)
35 const typename Vector::value_type &
operator()(
unsigned int row,
unsigned int col)
40 void set(
unsigned int row,
unsigned int col,
44 assert(row<vec_.size());
48 void add(
unsigned int row,
unsigned int col,
52 assert(row<vec_.size());
53 vec_[row] += field_cast<typename Vector::value_type>(val);
55 template <
class DomainVector,
56 std::enable_if_t<models<Impl::FunctionWithCallOperator<DomainVector>, Func>(),
int> = 0>
62 template <
class DomainVector,
63 std::enable_if_t<not models<Impl::FunctionWithCallOperator<DomainVector>, Func>(),
int> = 0>
66 typename Func::DomainType xx ;
67 typename Func::RangeType ff ;
69 func_.evaluate(xx,ff);
81 template <
class F,
unsigned int d>
82 template <
class Basis,
class Matrix>
86 typedef std::vector< Dune::FieldVector<F,d> >
Result;
87 Helper(
const Basis & basis, Matrix &matrix)
91 const F &
operator()(
unsigned int row,
unsigned int col)
const
93 return matrix_(row,col);
97 return matrix_(row,col);
100 void set(
unsigned int row,
unsigned int col,
103 assert(col<matrix_.cols());
104 assert(row<matrix_.rows());
108 void add(
unsigned int row,
unsigned int col,
111 assert(col<matrix_.cols());
112 assert(row<matrix_.rows());
113 matrix_(row,col) += val;
115 template <
class DomainVector>
118 basis_.template evaluate<0>(x,tmp_);
123 return basis_.size();
131 #endif // GENERIC_INTERPOLATIONHELPER_HH
Definition: interpolationhelper.hh:19
std::vector< Dune::FieldVector< F, d > > Result
Definition: interpolationhelper.hh:86
void set(unsigned int row, unsigned int col, const Fy &val)
Definition: interpolationhelper.hh:40
void add(unsigned int row, unsigned int col, const Fy &val)
Definition: interpolationhelper.hh:108
Helper(const Basis &basis, Matrix &matrix)
Definition: interpolationhelper.hh:87
const Result & evaluate(const DomainVector &x) const
Definition: interpolationhelper.hh:116
Definition: bdfmcube.hh:15
void field_cast(const F1 &f1, F2 &f2)
a helper class to cast from one field to another
Definition: field.hh:157
Matrix & matrix_
Definition: interpolationhelper.hh:127
const F & operator()(unsigned int row, unsigned int col) const
Definition: interpolationhelper.hh:91
unsigned int size() const
Definition: interpolationhelper.hh:73
void add(unsigned int row, unsigned int col, const Fy &val)
Definition: interpolationhelper.hh:48
Result tmp_
Definition: interpolationhelper.hh:79
const Basis & basis_
Definition: interpolationhelper.hh:126
Definition: interpolationhelper.hh:22
Helper(const Func &func, Vector &vec)
Definition: interpolationhelper.hh:30
const Func & func_
Definition: interpolationhelper.hh:77
void set(unsigned int row, unsigned int col, const Fy &val)
Definition: interpolationhelper.hh:100
Result tmp_
Definition: interpolationhelper.hh:128
unsigned int size() const
Definition: interpolationhelper.hh:121
const Vector::value_type & operator()(unsigned int row, unsigned int col)
Definition: interpolationhelper.hh:35
std::vector< Dune::FieldVector< F, d > > Result
Definition: interpolationhelper.hh:29
F & operator()(unsigned int row, unsigned int col)
Definition: interpolationhelper.hh:95
Vector & vec_
Definition: interpolationhelper.hh:78
const Result & evaluate(const DomainVector &x) const
Definition: interpolationhelper.hh:57