5#ifndef DUNE_BASISEVALUATOR_HH
6#define DUNE_BASISEVALUATOR_HH
10#include <dune/common/fmatrix.hh>
11#include <dune/common/fvector.hh>
12#include <dune/common/typetraits.hh>
14#include <dune/geometry/type.hh>
33 typedef typename Basis::Field
Field;
40 template<
class Deriv >
43 template <
unsigned int deriv>
76 template<
class Deriv >
80 typedef typename Deriv::Field
Field;
81 static const unsigned int blockSize = Deriv::size;
82 typedef Dune::FieldVector<Field,blockSize>
Block;
84 static const unsigned int dimDomain = Deriv::dimDomain;
85 static const unsigned int dimRange = Deriv::dimRange;
88 typedef typename Container::iterator
CIter;
91 : pos_( container.begin() ),
92 end_( container.end() )
98 return reinterpret_cast<const Deriv&
>(*pos_);
119 pos_ += skip*blockSize;
133 typedef typename Basis::Field
Field;
140 template <
unsigned int deriv>
145 :
Base(basis,basis.order(),basis.
size())
147 template <
unsigned int deriv,
class DVector>
150 Base::template resize<deriv>();
151 basis_.template evaluate<deriv>(x,&(container_[0]));
156 Base::template resize<0>();
157 basis_.integrate(&(container_[0]));
163 :
Base( basis, basis.order(),
size )
Definition bdfmcube.hh:18
Field operator*(const Unity< Field > &u, const Field &f)
Definition field.hh:50
DerivativeLayout
Definition tensor.hh:176
Definition basisevaluator.hh:31
static const int dimRange
Definition basisevaluator.hh:36
B Basis
Definition basisevaluator.hh:32
unsigned int order_
Definition basisevaluator.hh:70
const Basis & basis_
Definition basisevaluator.hh:69
MonomialEvaluator(const Basis &basis, unsigned int order, unsigned int size)
Definition basisevaluator.hh:56
Basis::Field Field
Definition basisevaluator.hh:33
unsigned int size_
Definition basisevaluator.hh:70
Basis::DomainVector DomainVector
Definition basisevaluator.hh:34
void resize()
Definition basisevaluator.hh:63
Container container_
Definition basisevaluator.hh:71
unsigned int size() const
Definition basisevaluator.hh:50
std::vector< Field > Container
Definition basisevaluator.hh:38
MonomialEvaluator(const MonomialEvaluator &)
static const int dimension
Definition basisevaluator.hh:35
Definition basisevaluator.hh:78
BaseIterator(Container &container)
Definition basisevaluator.hh:90
const Deriv & operator*() const
Definition basisevaluator.hh:95
Dune::FieldVector< Field, blockSize > Block
Definition basisevaluator.hh:82
bool done() const
Definition basisevaluator.hh:106
Container::iterator CIter
Definition basisevaluator.hh:88
const Deriv * operator->() const
Definition basisevaluator.hh:101
Deriv Derivatives
Definition basisevaluator.hh:79
std::vector< Field > Container
Definition basisevaluator.hh:87
Deriv::Field Field
Definition basisevaluator.hh:80
Definition basisevaluator.hh:45
BaseIterator< Derivatives< Field, dimension, 1, 0, DerivativeLayoutNS::value > > Integrate
Definition basisevaluator.hh:47
BaseIterator< Derivatives< Field, dimension, dimRange, deriv, DerivativeLayoutNS::derivative > > All
Definition basisevaluator.hh:46
Definition basisevaluator.hh:131
Basis::Field Field
Definition basisevaluator.hh:133
Basis::DomainVector DomainVector
Definition basisevaluator.hh:134
Iterator< deriv >::All evaluate(const DVector &x)
Definition basisevaluator.hh:148
MonomialEvaluator< B > Base
Definition basisevaluator.hh:138
StandardEvaluator(const Basis &basis)
Definition basisevaluator.hh:144
static const int dimRange
Definition basisevaluator.hh:137
std::vector< Field > Container
Definition basisevaluator.hh:135
Iterator< 0 >::Integrate integrate()
Definition basisevaluator.hh:154
B Basis
Definition basisevaluator.hh:132
StandardEvaluator(const Basis &basis, unsigned int size)
Definition basisevaluator.hh:162
static const int dimension
Definition basisevaluator.hh:136
Definition basisevaluator.hh:142