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