Dune::AlbertaGridGeometry< mydim, cdim, GridImp > Class Template Reference
#include <agrid.hh>

Detailed Description
template<int mydim, int cdim, class GridImp>
class Dune::AlbertaGridGeometry< mydim, cdim, GridImp >
Defines the geometry part of a mesh entity. Works for all dimensions, element types and dime of world. Provides reference element and mapping between local and global coordinates. The element may have different implementations because the mapping can be done more efficient for structured meshes than for unstructured meshes.dim: An element is a polygonal in a hyperplane of dimension dim. 0 <= dim <= 3 is typically dim=0 is a point.
dimworld: Each corner is a point with dimworld coordinates.
Public Types | |
typedef GridImp | GridType |
Methods that not belong to the Interface, but have to be public. | |
Public Member Functions | |
AlbertaGridGeometry () | |
Default constructor. | |
AlbertaGridGeometry (const int child, const int orientation) | |
constructor building geometry in father | |
const GeometryType & | type () const |
int | corners () const |
return the number of corners of this element. Corners are numbered 0...n-1 | |
const FieldVector< albertCtype, cdim > & | operator[] (int i) const |
access to coordinates of corners. Index is the number of the corner | |
FieldVector< albertCtype, cdim > | global (const FieldVector< albertCtype, mydim > &local) const |
FieldVector< albertCtype, mydim > | local (const FieldVector< albertCtype, cdim > &global) const |
bool | checkInside (const FieldVector< albertCtype, mydim > &local) const |
returns true if the point in local coordinates is inside reference element | |
albertCtype | integrationElement (const FieldVector< albertCtype, mydim > &local) const |
albertCtype | volume () const |
return volume of the geometry | |
const FieldMatrix< albertCtype, mydim, mydim > & | jacobianInverseTransposed (const FieldVector< albertCtype, mydim > &local) const |
template<class GeometryType, class LocalGeomType> | |
bool | builtLocalGeom (const GeometryType &geo, const LocalGeomType &lg, ALBERTA EL_INFO *elInfo, int face) |
void | initGeom () |
no interface method | |
void | print (std::ostream &ss) const |
Member Typedef Documentation
typedef GridImp Dune::AlbertaGridGeometry< mydim, cdim, GridImp >::GridType |
Methods that not belong to the Interface, but have to be public.
generate the geometry for the ALBERTA EL_INFO no interface method
Member Function Documentation
const GeometryType & Dune::AlbertaGridGeometry< mydim, cdim, GridImp >::type | ( | ) | const [inline] |
return the element type identifier line , triangle or tetrahedron, depends on dim
FieldVector< albertCtype, cdim > Dune::AlbertaGridGeometry< mydim, cdim, GridImp >::global | ( | const FieldVector< albertCtype, mydim > & | local | ) | const [inline] |
maps a local coordinate within reference element to global coordinate in element
FieldVector< albertCtype, mydim > Dune::AlbertaGridGeometry< mydim, cdim, GridImp >::local | ( | const FieldVector< albertCtype, cdim > & | global | ) | const [inline] |
maps a global coordinate within the element to a local coordinate in its reference element
albertCtype Dune::AlbertaGridGeometry< mydim, cdim, GridImp >::integrationElement | ( | const FieldVector< albertCtype, mydim > & | local | ) | const [inline] |
Copy from sgrid.hh:
Integration over a general element is done by integrating over the reference element and using the transformation from the reference element to the global element as follows:
where is the local to global mapping and
is the integration element.
For a general map involves partial derivatives of the map (surface element of the first kind if
, determinant of the Jacobian of the transformation for
,
for
).
For linear elements, the derivatives of the map with respect to local coordinates do not depend on the local coordinates and are the same over the whole element.
For a structured mesh where all edges are parallel to the coordinate axes, the computation is the length, area or volume of the element is very simple to compute.
Each grid module implements the integration element with optimal efficieny. This will directly translate in substantial savings in the computation of finite element stiffness matrices.
const FieldMatrix< albertCtype, mydim, mydim > & Dune::AlbertaGridGeometry< mydim, cdim, GridImp >::jacobianInverseTransposed | ( | const FieldVector< albertCtype, mydim > & | local | ) | const [inline] |
can only be called for dim=dimworld! Note that if both methods are called on the same element, then call jacobianInverseTransposed first because integration element is calculated during calculation of the transposed of the jacobianInverse
bool Dune::AlbertaGridGeometry< mydim, cdim, GridImp >::builtLocalGeom | ( | const GeometryType & | geo, | |
const LocalGeometryType & | lg, | |||
ALBERTA EL_INFO * | elInfo, | |||
int | face | |||
) | [inline] |
build geometry for intersectionSelfLocal and intersectionNeighborLocal
Referenced by Dune::AlbertaGridIntersectionIterator< GridImp >::intersectionNeighborLocal(), and Dune::AlbertaGridIntersectionIterator< GridImp >::intersectionSelfLocal().
void Dune::AlbertaGridGeometry< mydim, cdim, GridImp >::print | ( | std::ostream & | ss | ) | const [inline] |
print internal data no interface method
References Dune::AlbertaGridGeometry< mydim, cdim, GridImp >::corners().
The documentation for this class was generated from the following files:
- agrid.hh
- albertagrid.cc