1#ifndef DUNE_FEM_GRIDPART_GEOGRIDPART_GEOMETRY_HH
2#define DUNE_FEM_GRIDPART_GEOGRIDPART_GEOMETRY_HH
6#include <dune/geometry/multilineargeometry.hh>
8#include <dune/grid/geometrygrid/geometry.hh>
22 template<
class Gr
idFamily >
25 typedef typename std::remove_const< GridFamily >::type::Traits Traits;
27 typedef typename Traits::HostGridPartType HostGridPartType;
29 static const int dimension = std::remove_const< GridFamily >::type::dimension;
32 typedef typename std::remove_const< GridFamily >::type::ctype
ctype;
36 static ctype tolerance () {
return 16 * std::numeric_limits< ctype >::epsilon(); }
38 template<
int mydim,
int cdim >
46 :
public Dune::GeoGrid::InferHasSingleGeometryType< GridPartCapabilities::hasSingleGeometryType< HostGridPartType >, dimension, mydim >
55 template<
int mydim,
int cdim,
class Gr
idFamily >
61 typedef typename std::remove_const< GridFamily >::type::ctype
ctype;
65 static const int dimension = std::remove_const< GridFamily >::type::dimension;
69 typedef CachedMultiLinearGeometry< ctype, mydimension, coorddimension, GeoGeometryTraits< GridFamily > >
Mapping;
82 template<
class CoordVector >
86 mapping_ =
new( mappingStorage_ )
Mapping(
type, coords );
92 mapping_ =
new( mappingStorage_ )
Mapping( *other.mapping_ );
100 mapping_->~Mapping();
106 mapping_->~Mapping();
108 mapping_ =
new( mappingStorage_ )
Mapping( *other.mapping_ );
114 operator bool ()
const {
return bool( mapping_ ); }
116 bool affine ()
const {
return mapping_->affine(); }
117 GeometryType
type ()
const {
return mapping_->type(); }
119 int corners ()
const {
return mapping_->corners(); }
134 char mappingStorage_[
sizeof(
Mapping ) ];
Definition: bindguard.hh:11
Definition: cornerstorage.hh:279
Definition: gridpart/geogridpart/geometry.hh:24
static ctype tolerance()
Definition: gridpart/geogridpart/geometry.hh:36
Dune::Impl::FieldMatrixHelper< ctype > MatrixHelper
Definition: gridpart/geogridpart/geometry.hh:34
std::remove_const< GridFamily >::type::ctype ctype
Definition: gridpart/geogridpart/geometry.hh:32
Definition: gridpart/geogridpart/geometry.hh:40
GeoCornerStorage< mydim, cdim, GridFamily > Type
Definition: gridpart/geogridpart/geometry.hh:41
Definition: gridpart/geogridpart/geometry.hh:47
Definition: gridpart/geogridpart/geometry.hh:57
ctype integrationElement(const LocalCoordinate &local) const
Definition: gridpart/geogridpart/geometry.hh:126
GeoGeometry(const GeometryType &type, const CoordVector &coords)
Definition: gridpart/geogridpart/geometry.hh:83
~GeoGeometry()
Definition: gridpart/geogridpart/geometry.hh:97
Mapping::JacobianTransposed JacobianTransposed
Definition: gridpart/geogridpart/geometry.hh:75
Mapping::GlobalCoordinate GlobalCoordinate
Definition: gridpart/geogridpart/geometry.hh:73
static const int codimension
Definition: gridpart/geogridpart/geometry.hh:66
bool affine() const
Definition: gridpart/geogridpart/geometry.hh:116
Mapping::LocalCoordinate LocalCoordinate
Definition: gridpart/geogridpart/geometry.hh:72
int corners() const
Definition: gridpart/geogridpart/geometry.hh:119
JacobianTransposed jacobianTransposed(const LocalCoordinate &local) const
Definition: gridpart/geogridpart/geometry.hh:129
GeoGeometry()
Definition: gridpart/geogridpart/geometry.hh:78
JacobianInverseTransposed jacobianInverseTransposed(const LocalCoordinate &local) const
Definition: gridpart/geogridpart/geometry.hh:130
static const int dimension
Definition: gridpart/geogridpart/geometry.hh:65
Mapping::JacobianInverseTransposed JacobianInverseTransposed
Definition: gridpart/geogridpart/geometry.hh:76
GeoGeometry(const ThisType &other)
Definition: gridpart/geogridpart/geometry.hh:89
static const int mydimension
Definition: gridpart/geogridpart/geometry.hh:63
GlobalCoordinate global(const LocalCoordinate &local) const
Definition: gridpart/geogridpart/geometry.hh:123
GlobalCoordinate corner(const int i) const
Definition: gridpart/geogridpart/geometry.hh:120
const ThisType & operator=(const ThisType &other)
Definition: gridpart/geogridpart/geometry.hh:103
ctype volume() const
Definition: gridpart/geogridpart/geometry.hh:127
static const int coorddimension
Definition: gridpart/geogridpart/geometry.hh:64
std::remove_const< GridFamily >::type::ctype ctype
Definition: gridpart/geogridpart/geometry.hh:61
CachedMultiLinearGeometry< ctype, mydimension, coorddimension, GeoGeometryTraits< GridFamily > > Mapping
Definition: gridpart/geogridpart/geometry.hh:69
GeometryType type() const
Definition: gridpart/geogridpart/geometry.hh:117
GlobalCoordinate center() const
Definition: gridpart/geogridpart/geometry.hh:121
A mapping from one vector space into another This class describes a general mapping from the domain v...
Definition: mapping.hh:47