dune-grid
2.4.1-rc2
|
#include <dune/grid/sgrid.hh>
Public Types | |
typedef GridImp::ctype | ctype |
define type used for coordinates in grid module More... | |
Public Member Functions | |
void | make (const FieldVector< ctype, cdim > &lower, const FieldMatrix< ctype, mydim, cdim > &A) |
Set up the geometry. More... | |
SGeometry () | |
constructor More... | |
SGeometry realizes the concept of the geometric part of a mesh entity.
The geometric part of a mesh entity is a -dimensional object in
where
corresponds the template parameter dim and
corresponds to the template parameter dimworld.
The -dimensional object is a polyhedron given by a certain number of corners, which are vectors in
.
The member function global provides a map from a topologically equivalent polyhedron ("reference element") in to the given polyhedron. This map can be inverted by the member function local, where an appropriate projection is applied first, when
.
In the case of a structured mesh discretizing a generalized cube this map is linear and can be described as
where is a given position vector, the
are given direction vectors and
is a local coordinate within the reference polyhedron. The direction vectors are assumed to be orthogonal with respect to the standard Eucliden inner product.
The -dimensional reference polyhedron is given by the points
.
In order to invert the map for a point , we have to find a local coordinate
such that
. Of course this is only possible if
. In the general case
we determine
such that
The resulting system is diagonal since the direction vectors are required to be orthogonal.
typedef GridImp::ctype Dune::SGeometry< mydim, cdim, GridImp >::ctype |
define type used for coordinates in grid module
|
inline |
constructor
|
inline |
Set up the geometry.
lower | The lower left corner |
A | The direction vectors |
Allows a consistent treatment of all dimensions, including 0 (the vertex).
Referenced by Dune::SIntersection< const GridImp >::centerUnitOuterNormal(), Dune::SEntityBase< codim, dim, GridImp, SEntity >::SEntityBase(), and Dune::SIntersection< const GridImp >::SIntersection().