3 #ifndef DUNE_BASISEVALUATOR_HH
4 #define DUNE_BASISEVALUATOR_HH
8 #include <dune/common/fmatrix.hh>
9 #include <dune/common/fvector.hh>
10 #include <dune/common/typetraits.hh>
12 #include <dune/geometry/type.hh>
31 typedef typename Basis::Field
Field;
38 template<
class Deriv >
41 template <
unsigned int deriv>
74 template<
class Deriv >
78 typedef typename Deriv::Field
Field;
79 static const unsigned int blockSize = Deriv::size;
80 typedef Dune::FieldVector<Field,blockSize>
Block;
82 static const unsigned int dimDomain = Deriv::dimDomain;
83 static const unsigned int dimRange = Deriv::dimRange;
86 typedef typename Container::iterator
CIter;
89 : pos_( container.begin() ),
90 end_( container.end() )
96 return reinterpret_cast<const Deriv&
>(*pos_);
117 pos_ += skip*blockSize;
131 typedef typename Basis::Field
Field;
138 template <
unsigned int deriv>
143 :
Base(basis,basis.order(),basis.
size())
145 template <
unsigned int deriv,
class DVector>
148 Base::template resize<deriv>();
149 basis_.template evaluate<deriv>(x,&(container_[0]));
154 Base::template resize<0>();
155 basis_.integrate(&(container_[0]));
161 :
Base( basis, basis.order(),
size )
Definition: bdfmcube.hh:16
Field operator*(const Unity< Field > &u, const Field &f)
Definition: field.hh:48
DerivativeLayout
Definition: tensor.hh:166
Definition: basisevaluator.hh:29
static const int dimRange
Definition: basisevaluator.hh:34
B Basis
Definition: basisevaluator.hh:30
unsigned int order_
Definition: basisevaluator.hh:68
const Basis & basis_
Definition: basisevaluator.hh:67
MonomialEvaluator(const Basis &basis, unsigned int order, unsigned int size)
Definition: basisevaluator.hh:54
Basis::Field Field
Definition: basisevaluator.hh:31
unsigned int size_
Definition: basisevaluator.hh:68
Basis::DomainVector DomainVector
Definition: basisevaluator.hh:32
void resize()
Definition: basisevaluator.hh:61
Container container_
Definition: basisevaluator.hh:69
unsigned int size() const
Definition: basisevaluator.hh:48
std::vector< Field > Container
Definition: basisevaluator.hh:36
MonomialEvaluator(const MonomialEvaluator &)
static const int dimension
Definition: basisevaluator.hh:33
Definition: basisevaluator.hh:76
BaseIterator(Container &container)
Definition: basisevaluator.hh:88
Dune::FieldVector< Field, blockSize > Block
Definition: basisevaluator.hh:80
bool done() const
Definition: basisevaluator.hh:104
const Deriv * operator->() const
Definition: basisevaluator.hh:99
Container::iterator CIter
Definition: basisevaluator.hh:86
Deriv Derivatives
Definition: basisevaluator.hh:77
const Deriv & operator*() const
Definition: basisevaluator.hh:93
std::vector< Field > Container
Definition: basisevaluator.hh:85
Deriv::Field Field
Definition: basisevaluator.hh:78
Definition: basisevaluator.hh:43
BaseIterator< Derivatives< Field, dimension, 1, 0, DerivativeLayoutNS::value > > Integrate
Definition: basisevaluator.hh:45
BaseIterator< Derivatives< Field, dimension, dimRange, deriv, DerivativeLayoutNS::derivative > > All
Definition: basisevaluator.hh:44
Definition: basisevaluator.hh:129
Basis::Field Field
Definition: basisevaluator.hh:131
Basis::DomainVector DomainVector
Definition: basisevaluator.hh:132
Iterator< deriv >::All evaluate(const DVector &x)
Definition: basisevaluator.hh:146
MonomialEvaluator< B > Base
Definition: basisevaluator.hh:136
StandardEvaluator(const Basis &basis)
Definition: basisevaluator.hh:142
static const int dimRange
Definition: basisevaluator.hh:135
std::vector< Field > Container
Definition: basisevaluator.hh:133
Iterator< 0 >::Integrate integrate()
Definition: basisevaluator.hh:152
B Basis
Definition: basisevaluator.hh:130
StandardEvaluator(const Basis &basis, unsigned int size)
Definition: basisevaluator.hh:160
static const int dimension
Definition: basisevaluator.hh:134
Definition: basisevaluator.hh:140
Definition: tensor.hh:170