dune-multidomaingrid 2.10-git
Loading...
Searching...
No Matches
subdomaingrid/localgeometry.hh
Go to the documentation of this file.
1#ifndef DUNE_MULTIDOMAINGRID_SUBDOMAINGRID_LOCALGEOMETRY_HH
2#define DUNE_MULTIDOMAINGRID_SUBDOMAINGRID_LOCALGEOMETRY_HH
3
4#include <dune/grid/common/geometry.hh>
5
6namespace Dune {
7
8namespace mdgrid {
9
10namespace subdomain {
11
12template<int mydim, int coorddim, typename GridImp>
14{
15
16 template<int,int,typename>
17 friend class EntityWrapper;
18
19 template<typename,typename,typename>
20 friend class IntersectionWrapper;
21
22public:
23
24 typedef typename GridImp::ctype ctype;
25 static const int dimension = GridImp::dimension;
26 static const int dimensionworld = GridImp::dimensionworld;
27 static const int mydimension = mydim;
28 static const int coorddimension = coorddim;
29
30private:
31
32 typedef typename GridImp::HostGrid::Traits::template Codim<dimension-mydim>::LocalGeometry HostLocalGeometry; //TODO: fix this
33
34public:
35
36 typedef typename HostLocalGeometry::GlobalCoordinate GlobalCoordinate;
37 typedef typename HostLocalGeometry::LocalCoordinate LocalCoordinate;
38 typedef typename HostLocalGeometry::Volume Volume;
39 typedef typename HostLocalGeometry::JacobianInverseTransposed JacobianInverseTransposed;
40 typedef typename HostLocalGeometry::JacobianTransposed JacobianTransposed;
41 typedef typename HostLocalGeometry::JacobianInverse JacobianInverse;
42 typedef typename HostLocalGeometry::Jacobian Jacobian;
43
45 return _hostLocalGeometry.type();
46 }
47
48 int corners() const {
49 return _hostLocalGeometry.corners();
50 }
51
52 bool affine() const {
53 return _hostLocalGeometry.affine();
54 }
55
57 return _hostLocalGeometry.corner(i);
58 }
59
61 return _hostLocalGeometry.global(local);
62 }
63
65 return _hostLocalGeometry.local(global);
66 }
67
68 bool checkInside(const LocalCoordinate& local) const {
69 return _hostLocalGeometry.checkInside(local);
70 }
71
73 return _hostLocalGeometry.integrationElement(local);
74 }
75
76 Volume volume() const {
77 return _hostLocalGeometry.volume();
78 }
79
81 return _hostLocalGeometry.center();
82 }
83
85 return _hostLocalGeometry.jacobianTransposed(local);
86 }
87
89 return _hostLocalGeometry.jacobianInverseTransposed(local);
90 }
91
93 {
94 return _hostLocalGeometry.jacobian(local);
95 }
96
98 {
99 return _hostLocalGeometry.jacobianInverse(local);
100 }
101
102private:
103
104 const HostLocalGeometry _hostLocalGeometry;
105
106 LocalGeometryWrapper(const HostLocalGeometry& hostLocalGeometry)
107 : _hostLocalGeometry(hostLocalGeometry)
108 {}
109
110};
111
112} // namespace subdomain
113
114} // namespace mdgrid
115
116} // namespace Dune
117
118#endif // DUNE_MULTIDOMAINGRID_SUBDOMAINGRID_LOCALGEOMETRY_HH
bool setContains(const ArrayBasedSet< SI, capacity > &a, const ArrayBasedSet< SI, capacity > &b)
const GlobalIndex & global() const
LocalIndex & local()
Definition subdomaingrid/entity.hh:157
Definition subdomaingrid/intersection.hh:19
Definition subdomaingrid/localgeometry.hh:14
static const int dimensionworld
Definition subdomaingrid/localgeometry.hh:26
Volume volume() const
Definition subdomaingrid/localgeometry.hh:76
HostLocalGeometry::JacobianTransposed JacobianTransposed
Definition subdomaingrid/localgeometry.hh:40
JacobianTransposed jacobianTransposed(const LocalCoordinate &local) const
Definition subdomaingrid/localgeometry.hh:84
GlobalCoordinate global(const LocalCoordinate &local) const
Definition subdomaingrid/localgeometry.hh:60
HostLocalGeometry::Jacobian Jacobian
Definition subdomaingrid/localgeometry.hh:42
HostLocalGeometry::Volume Volume
Definition subdomaingrid/localgeometry.hh:38
GridImp::ctype ctype
Definition subdomaingrid/localgeometry.hh:24
bool checkInside(const LocalCoordinate &local) const
Definition subdomaingrid/localgeometry.hh:68
LocalCoordinate local(const GlobalCoordinate &global) const
Definition subdomaingrid/localgeometry.hh:64
int corners() const
Definition subdomaingrid/localgeometry.hh:48
HostLocalGeometry::JacobianInverseTransposed JacobianInverseTransposed
Definition subdomaingrid/localgeometry.hh:39
static const int dimension
Definition subdomaingrid/localgeometry.hh:25
JacobianInverse jacobianInverse(const LocalCoordinate &local) const
Definition subdomaingrid/localgeometry.hh:97
GlobalCoordinate center() const
Definition subdomaingrid/localgeometry.hh:80
GeometryType type() const
Definition subdomaingrid/localgeometry.hh:44
HostLocalGeometry::LocalCoordinate LocalCoordinate
Definition subdomaingrid/localgeometry.hh:37
GlobalCoordinate corner(int i) const
Definition subdomaingrid/localgeometry.hh:56
JacobianInverseTransposed jacobianInverseTransposed(const LocalCoordinate &local) const
Definition subdomaingrid/localgeometry.hh:88
static const int mydimension
Definition subdomaingrid/localgeometry.hh:27
HostLocalGeometry::GlobalCoordinate GlobalCoordinate
Definition subdomaingrid/localgeometry.hh:36
Jacobian jacobian(const LocalCoordinate &local) const
Definition subdomaingrid/localgeometry.hh:92
bool affine() const
Definition subdomaingrid/localgeometry.hh:52
HostLocalGeometry::JacobianInverse JacobianInverse
Definition subdomaingrid/localgeometry.hh:41
static const int coorddimension
Definition subdomaingrid/localgeometry.hh:28
Volume integrationElement(const LocalCoordinate &local) const
Definition subdomaingrid/localgeometry.hh:72