dune-multidomaingrid 2.8
Loading...
Searching...
No Matches
geometry.hh
Go to the documentation of this file.
1#ifndef DUNE_MULTIDOMAINGRID_GEOMETRY_HH
2#define DUNE_MULTIDOMAINGRID_GEOMETRY_HH
3
4#include <dune/grid/common/geometry.hh>
5
6namespace Dune {
7
8namespace mdgrid {
9
10template<int mydim, int coorddim, typename GridImp>
12{
13
14 template<int,int,typename>
15 friend class EntityWrapperBase;
16
17 template<int,int,typename>
18 friend class EntityWrapper;
19
20 template<typename,typename>
21 friend class IntersectionWrapper;
22
23 template<typename,typename,typename,typename>
24 friend class SubDomainInterface;
25
26public:
27
28 typedef typename GridImp::ctype ctype;
29 static const int dimension = GridImp::dimension;
30 static const int dimensionworld = GridImp::dimensionworld;
31 static const int mydimension = mydim;
32 static const int coorddimension = coorddim;
33
34private:
35
36 typedef FieldVector<ctype,coorddimension> GlobalCoords;
37 typedef FieldVector<ctype,mydimension> LocalCoords;
38 typedef typename GridImp::HostGrid::Traits::template Codim<dimension-mydim>::Geometry HostGeometry; //TODO: fix this
39
40public:
41
42 typedef typename HostGeometry::JacobianInverseTransposed JacobianInverseTransposed;
43 typedef typename HostGeometry::JacobianTransposed JacobianTransposed;
44
45 GeometryType type() const {
46 return _wrappedGeometry.type();
47 }
48
49 int corners() const {
50 return _wrappedGeometry.corners();
51 }
52
53 bool affine() const {
54 return _wrappedGeometry.affine();
55 }
56
57 GlobalCoords corner(int i) const {
58 return _wrappedGeometry.corner(i);
59 }
60
61 GlobalCoords global(const LocalCoords& local) const {
62 return _wrappedGeometry.global(local);
63 }
64
65 LocalCoords local(const GlobalCoords& global) const {
66 return _wrappedGeometry.local(global);
67 }
68
69 bool checkInside(const LocalCoords& local) const {
70 return _wrappedGeometry.checkInside(local);
71 }
72
73 ctype integrationElement(const LocalCoords& local) const {
74 return _wrappedGeometry.integrationElement(local);
75 }
76
77 ctype volume() const {
78 return _wrappedGeometry.volume();
79 }
80
81 GlobalCoords center() const {
82 return _wrappedGeometry.center();
83 }
84
86 jacobianTransposed(const LocalCoords& local) const {
87 return _wrappedGeometry.jacobianTransposed(local);
88 }
89
91 jacobianInverseTransposed(const LocalCoords& local) const {
92 return _wrappedGeometry.jacobianInverseTransposed(local);
93 }
94
95private:
96
97 GeometryWrapper(const HostGeometry& wrappedGeometry)
98 : _wrappedGeometry(wrappedGeometry)
99 {}
100
101 const HostGeometry _wrappedGeometry;
102
103};
104
105} // namespace mdgrid
106
107} // namespace Dune
108
109#endif // DUNE_MULTIDOMAINGRID_GEOMETRY_HH
Definition: multidomaingrid.hh:8
Definition: entity.hh:144
Definition: entity.hh:79
Definition: geometry.hh:12
LocalCoords local(const GlobalCoords &global) const
Definition: geometry.hh:65
GridImp::ctype ctype
Definition: geometry.hh:28
GlobalCoords center() const
Definition: geometry.hh:81
const JacobianInverseTransposed jacobianInverseTransposed(const LocalCoords &local) const
Definition: geometry.hh:91
HostGeometry::JacobianInverseTransposed JacobianInverseTransposed
Definition: geometry.hh:42
ctype volume() const
Definition: geometry.hh:77
static const int coorddimension
Definition: geometry.hh:32
const JacobianTransposed jacobianTransposed(const LocalCoords &local) const
Definition: geometry.hh:86
int corners() const
Definition: geometry.hh:49
bool checkInside(const LocalCoords &local) const
Definition: geometry.hh:69
bool affine() const
Definition: geometry.hh:53
GlobalCoords global(const LocalCoords &local) const
Definition: geometry.hh:61
HostGeometry::JacobianTransposed JacobianTransposed
Definition: geometry.hh:43
GlobalCoords corner(int i) const
Definition: geometry.hh:57
static const int dimension
Definition: geometry.hh:29
static const int dimensionworld
Definition: geometry.hh:30
static const int mydimension
Definition: geometry.hh:31
GeometryType type() const
Definition: geometry.hh:45
ctype integrationElement(const LocalCoords &local) const
Definition: geometry.hh:73
Definition: intersection.hh:18
An intersection that forms part of the interface between two subdomains.
Definition: subdomaininterfaceiterator.hh:32