1 #ifndef DUNE_SPGRID_GEOMETRY_HH
2 #define DUNE_SPGRID_GEOMETRY_HH
6 #include <dune/geometry/type.hh>
8 #include <dune/common/typetraits.hh>
10 #include <dune/geometry/type.hh>
11 #include <dune/geometry/referenceelements.hh>
22 template<
int mydim,
int cdim,
class Gr
id,
class Impl >
28 typedef typename std::remove_const< Grid >::type::Traits
Traits;
31 typedef typename Traits::ReferenceCube::ctype
ctype;
35 static const int dimension = Traits::ReferenceCube::dimension;
64 bool affine ()
const {
return true; }
76 const Impl &
asImpl ()
const {
return static_cast< const Impl &
>( *this ); }
84 template<
int mydim,
int cdim,
class Gr
id >
86 :
public SPBasicGeometry< mydim, cdim, Grid, SPGeometry< mydim, cdim, Grid > >
120 origin_( computeOrigin() )
125 origin_( computeOrigin() )
158 template<
int mydim,
int cdim,
class Gr
id >
160 :
public SPBasicGeometry< mydim, cdim, Grid, SPLocalGeometry< mydim, cdim, Grid > >
204 template<
int mydim,
int cdim,
class Gr
id,
class Impl >
209 asImpl().geometryCache().jacobianTransposed().umtv( local, y );
214 template<
int mydim,
int cdim,
class Gr
id,
class Impl >
219 GlobalVector y = global - asImpl().origin();
225 template<
int mydim,
int cdim,
class Gr
id,
class Impl >
229 return asImpl().geometryCache().jacobianTransposed();
233 template<
int mydim,
int cdim,
class Gr
id,
class Impl >
237 return asImpl().geometryCache().jacobianInverseTransposed();
Definition: iostream.hh:7
const GridLevel & gridLevel() const
Definition: entityinfo.hh:66
const GeometryCache & geometryCache() const
Definition: entityinfo.hh:87
const GlobalVector & h() const
Definition: geometricgridlevel.hh:59
Definition: geometry.hh:24
ctype volume() const
Definition: geometry.hh:69
static const int codimension
Definition: geometry.hh:36
GlobalVector corner(const int i) const
Definition: geometry.hh:61
Traits::ReferenceCube::ctype ctype
Definition: geometry.hh:31
bool affine() const
Definition: geometry.hh:64
GeometryCache::LocalVector LocalVector
Definition: geometry.hh:44
const JacobianTransposed & jacobianTransposed(const LocalVector &local) const
Definition: geometry.hh:227
GlobalVector GlobalCoordinate
Definition: geometry.hh:47
static const int mydimension
Definition: geometry.hh:33
ctype integrationElement(const LocalVector &local) const
Definition: geometry.hh:70
int corners() const
Definition: geometry.hh:60
GeometryCache::GlobalVector GlobalVector
Definition: geometry.hh:43
const Impl & asImpl() const
Definition: geometry.hh:76
LocalVector LocalCoordinate
Definition: geometry.hh:48
GeometryCache::JacobianTransposed JacobianTransposed
Definition: geometry.hh:50
GlobalVector global(const LocalVector &local) const
Definition: geometry.hh:206
std::remove_const< Grid >::type::Traits Traits
Definition: geometry.hh:28
GeometryCache::JacobianInverseTransposed JacobianInverseTransposed
Definition: geometry.hh:51
static const int coorddimension
Definition: geometry.hh:34
GeometryType type() const
Definition: geometry.hh:58
GlobalVector center() const
Definition: geometry.hh:62
static const int numCorners
Definition: geometry.hh:41
SPBasicGeometry()
Definition: geometry.hh:54
static const int dimension
Definition: geometry.hh:35
const JacobianInverseTransposed & jacobianInverseTransposed(const LocalVector &local) const
Definition: geometry.hh:235
SPGeometryCache< ctype, dimension, codimension > GeometryCache
Definition: geometry.hh:39
SPReferenceCube< ctype, mydimension > ReferenceCube
Definition: geometry.hh:38
Definition: geometry.hh:87
EntityInfo::GridLevel GridLevel
Definition: geometry.hh:102
Base::ReferenceCube ReferenceCube
Definition: geometry.hh:104
Base::GlobalVector GlobalVector
Definition: geometry.hh:107
EntityInfo & entityInfo()
Definition: geometry.hh:137
static const int mydimension
Definition: geometry.hh:97
SPGeometry(const EntityInfo &entityInfo)
Definition: geometry.hh:118
Base::Traits Traits
Definition: geometry.hh:92
Base::ctype ctype
Definition: geometry.hh:95
GlobalVector origin() const
Definition: geometry.hh:131
const GridLevel & gridLevel() const
Definition: geometry.hh:134
static const int codimension
Definition: geometry.hh:99
const GeometryCache & geometryCache() const
Definition: geometry.hh:132
const EntityInfo & entityInfo() const
Definition: geometry.hh:136
Base::LocalVector LocalVector
Definition: geometry.hh:108
__SPGrid::EntityInfo< Grid, codimension > EntityInfo
Definition: geometry.hh:101
Base::GeometryCache GeometryCache
Definition: geometry.hh:105
SPGeometry(const GridLevel &gridLevel, const MultiIndex &id)
Definition: geometry.hh:123
SPGeometry(const GridLevel &gridLevel)
Definition: geometry.hh:114
static const int dimension
Definition: geometry.hh:98
Definition: geometry.hh:161
static const int codimension
Definition: geometry.hh:173
GlobalVector origin() const
Definition: geometry.hh:191
Base::ctype ctype
Definition: geometry.hh:169
Base::GlobalVector GlobalVector
Definition: geometry.hh:178
static const int mydimension
Definition: geometry.hh:171
Base::LocalVector LocalVector
Definition: geometry.hh:179
const GeometryCache & geometryCache() const
Definition: geometry.hh:192
SPLocalGeometry(const GeometryCache &geometryCache, const GlobalVector &origin)
Definition: geometry.hh:182
Base::ReferenceCube ReferenceCube
Definition: geometry.hh:175
Base::GeometryCache GeometryCache
Definition: geometry.hh:176
static const int dimension
Definition: geometry.hh:172
Base::Traits Traits
Definition: geometry.hh:166
void mtv(const X &x, Y &y) const
Definition: geometrycache.hh:538
Definition: geometrycache.hh:252
FieldVector< ctype, dimension > GlobalVector
Definition: geometrycache.hh:264
FieldVector< ctype, mydimension > LocalVector
Definition: geometrycache.hh:265
Definition: gridlevel.hh:35
const Domain & domain() const
Definition: gridlevel.hh:84
Definition: referencecube.hh:43
static GlobalVector corner(int i)
return i-th corner
Definition: referencecube.hh:120
static GlobalVector center()
return center
Definition: referencecube.hh:136