3 #ifndef DUNE_GEOMETRY_AFFINEGEOMETRY_HH
4 #define DUNE_GEOMETRY_AFFINEGEOMETRY_HH
11 #include <dune/common/fmatrix.hh>
12 #include <dune/common/fvector.hh>
24 template<
class ctype,
int dim >
27 template<
class ctype,
int dim >
37 template<
class ct,
int mydim,
int cdim>
79 : refElement_(&refElement), origin_(origin), jacobianTransposed_(jt)
81 integrationElement_ = MatrixHelper::template rightInvA< mydimension, coorddimension >( jacobianTransposed_, jacobianInverseTransposed_ );
87 : refElement_( &
ReferenceElements::general( gt ) ), origin_(origin), jacobianTransposed_( jt )
89 integrationElement_ = MatrixHelper::template rightInvA< mydimension, coorddimension >( jacobianTransposed_, jacobianInverseTransposed_ );
93 template<
class CoordVector >
95 : refElement_(&refElement), origin_(coordVector[0])
98 jacobianTransposed_[ i ] = coordVector[ i+1 ] - origin_;
99 integrationElement_ = MatrixHelper::template rightInvA< mydimension, coorddimension >( jacobianTransposed_, jacobianInverseTransposed_ );
103 template<
class CoordVector >
108 jacobianTransposed_[ i ] = coordVector[ i+1 ] - origin_;
109 integrationElement_ = MatrixHelper::template rightInvA< mydimension, coorddimension >( jacobianTransposed_, jacobianInverseTransposed_ );
139 jacobianTransposed_.umtv( local, global );
157 jacobianInverseTransposed_.mtv( global - origin_, local );
173 DUNE_UNUSED_PARAMETER(local);
174 return integrationElement_;
180 return integrationElement_ * refElement_->
volume();
191 DUNE_UNUSED_PARAMETER(local);
192 return jacobianTransposed_;
203 DUNE_UNUSED_PARAMETER(local);
204 return jacobianInverseTransposed_;
212 ctype integrationElement_;
218 #endif // #ifndef DUNE_GEOMETRY_AFFINEGEOMETRY_HH