1#ifndef DUNE_FEM_SUBOBJECTS_HH
2#define DUNE_FEM_SUBOBJECTS_HH
6#include <dune/common/fvector.hh>
7#include <dune/common/fmatrix.hh>
28 template<
class K,
int SIZE >
32 static const int size = SIZE;
35 template<
class K,
int SIZE >
39 static const int size = SIZE;
42 template<
class K,
int ROWS,
int COLS >
43 struct RowType< FieldMatrix< K, ROWS, COLS > >
45 typedef FieldVector<K, COLS>
Type;
46 static const int size = ROWS;
51 template <
class DomainObject,
class RangeObject,
int offset >
54 typedef DomainObject DomainObjectType;
55 typedef RangeObject RangeObjectType;
57 typedef typename RowType< RangeObject > :: Type RowType;
66 assert( (i >=0 ) && (i <
size()) );
67 return host_[ i + offset ];
72 assert( (i >=0 ) && (i <
size()) );
73 return host_[ i + offset ];
81 operator typename std::remove_const< RangeObjectType >::type ()
const
83 typename std::remove_const< RangeObjectType >::type y;
84 for(
int i = 0; i <
size(); ++i )
85 y[ i ] = (*
this)[ i ];
90 DomainObjectType &host_;
97 template<
class DomianObj,
class RangeObj,
int offset >
98 struct DenseMatrixAssigner< typename
std::remove_const< RangeObj >::type,
Fem::SubObject< DomianObj, RangeObj, offset > >
102 for(
int i = 0; i < s.
size(); ++i )
Definition: bindguard.hh:11
Definition: explicitfieldvector.hh:75
Definition: subobjects.hh:19
const RowType< T >::Type Type
Definition: subobjects.hh:24
K Type
Definition: subobjects.hh:31
K Type
Definition: subobjects.hh:38
FieldVector< K, COLS > Type
Definition: subobjects.hh:45
Definition: subobjects.hh:53
const RowType & operator[](const int i) const
Definition: subobjects.hh:64
int size() const
Definition: subobjects.hh:76
SubObject(DomainObjectType &host)
Definition: subobjects.hh:60
static void apply(typename std::remove_const< RangeObj >::type &fm, const Fem::SubObject< DomianObj, RangeObj, offset > &s)
Definition: subobjects.hh:100