3 #ifndef DUNE_GRID_GEOMETRYREFERENCE_HH
4 #define DUNE_GRID_GEOMETRYREFERENCE_HH
10 #include <dune/common/typetraits.hh>
12 #include <dune/geometry/type.hh>
22 template<
int mydim,
int cdim,
class Gr
id >
25 template<
int mydim,
int cdim,
class Gr
id >
33 namespace FacadeOptions
36 template<
int mydim,
int cdim,
class Gr
idImp,
template<
int,
int,
class >
class GeometryImp >
37 struct StoreGeometryReference;
39 template<
int mydim,
int cdim,
class Gr
id >
42 static const bool v =
false;
45 template<
int mydim,
int cdim,
class Gr
id >
48 static const bool v =
false;
58 template<
class Implementation >
67 typedef typename Implementation::ctype
ctype;
89 return impl().global( local );
94 return impl().local( global );
99 return impl().integrationElement( local );
106 return impl().jacobianTransposed( local );
111 return impl().jacobianInverseTransposed( local );
114 const Implementation &
impl ()
const {
return *impl_; }
117 const Implementation *impl_;
125 template<
int mydim,
int cdim,
class Gr
id >
126 class GlobalGeometryReference
127 :
public GeometryReference< typename remove_const< Grid >::type::Traits::template Codim< remove_const< Grid >::type::dimension - mydim >::GeometryImpl >
129 typedef typename remove_const< Grid >::type::Traits::template Codim< remove_const< Grid >::type::dimension - mydim >::GeometryImpl Implementation;
142 template<
int mydim,
int cdim,
class Gr
id >
143 class LocalGeometryReference
144 :
public GeometryReference< typename remove_const< Grid >::type::Traits::template Codim< remove_const< Grid >::type::dimension - mydim >::LocalGeometryImpl >
146 typedef typename remove_const< Grid >::type::Traits::template Codim< remove_const< Grid >::type::dimension - mydim >::LocalGeometryImpl Implementation;
159 template<
class Implementation >
160 const int GeometryReference< Implementation >::mydimension;
162 template<
class Implementation >
163 const int GeometryReference< Implementation >::coorddimension;
167 #endif // #ifndef DUNE_GRID_GEOMETRYREFERENCE_HH
Definition: geometryreference.hh:26
static const int mydimension
Definition: geometryreference.hh:64
Implementation::JacobianInverseTransposed JacobianInverseTransposed
Definition: geometryreference.hh:72
GlobalCoordinate center() const
Definition: geometryreference.hh:85
GeometryType
Type representing VTK's entity geometry types.
Definition: common.hh:178
Implementation::ctype ctype
Definition: geometryreference.hh:67
bool affine() const
Definition: geometryreference.hh:81
const JacobianInverseTransposed & jacobianInverseTransposed(const LocalCoordinate &local) const
Definition: geometryreference.hh:109
GlobalCoordinate global(const LocalCoordinate &local) const
Definition: geometryreference.hh:87
ctype integrationElement(const LocalCoordinate &local) const
Definition: geometryreference.hh:97
Traits class determining whether the Dune::Geometry facade class stores the implementation object by ...
Definition: common/geometry.hh:46
int corners() const
Definition: geometryreference.hh:83
GeometryType type() const
Definition: geometryreference.hh:79
static const int coorddimension
Definition: geometryreference.hh:65
Definition: geometryreference.hh:59
LocalGeometryReference(const Implementation &impl)
Definition: geometryreference.hh:149
ctype volume() const
Definition: geometryreference.hh:102
static const bool v
Whether to store by reference.
Definition: common/geometry.hh:49
LocalCoordinate local(const GlobalCoordinate &global) const
Definition: geometryreference.hh:92
Grid abstract base classThis class is the base class for all grid implementations. Although no virtual functions are used we call it abstract since its methods do not contain an implementation but forward to the methods of the derived class via the Barton-Nackman trick.
Definition: common/grid.hh:386
GeometryReference(const Implementation &impl)
Definition: geometryreference.hh:75
Wrapper and interface classes for element geometries.
Definition: geometryreference.hh:23
const Implementation & impl() const
Definition: geometryreference.hh:114
Implementation::GlobalCoordinate GlobalCoordinate
Definition: geometryreference.hh:70
Implementation::LocalCoordinate LocalCoordinate
Definition: geometryreference.hh:69
GlobalCoordinate corner(int i) const
Definition: geometryreference.hh:84
GlobalGeometryReference(const Implementation &impl)
Definition: geometryreference.hh:132
Implementation::JacobianTransposed JacobianTransposed
Definition: geometryreference.hh:73
const JacobianTransposed & jacobianTransposed(const LocalCoordinate &local) const
Definition: geometryreference.hh:104