|
dune-geometry 2.12-git
|
generic geometry implementation based on corner coordinates More...
#include <dune/geometry/multilineargeometry.hh>

Classes | |
| class | JacobianInverseTransposed |
Public Types | |
| typedef ct | ctype |
| coordinate type | |
| typedef FieldVector< ctype, mydimension > | LocalCoordinate |
| type of local coordinates | |
| typedef FieldVector< ctype, coorddimension > | GlobalCoordinate |
| type of global coordinates | |
| typedef ctype | Volume |
| type of volume | |
| typedef FieldMatrix< ctype, mydimension, coorddimension > | JacobianTransposed |
| type of jacobian transposed | |
| typedef FieldMatrix< ctype, coorddimension, mydimension > | Jacobian |
| Type for the Jacobian matrix. | |
| typedef FieldMatrix< ctype, mydimension, coorddimension > | JacobianInverse |
| Type for the inverse Jacobian matrix. | |
| typedef ReferenceElements::ReferenceElement | ReferenceElement |
| type of reference element | |
Public Member Functions | |
| template<class Corners > | |
| MultiLinearGeometry (const ReferenceElement &refElement, const Corners &corners) | |
| constructor | |
| template<class Corners > | |
| MultiLinearGeometry (Dune::GeometryType gt, const Corners &corners) | |
| constructor | |
| bool | affine () const |
| is this mapping affine? | |
| Dune::GeometryType | type () const |
| obtain the name of the reference element | |
| int | corners () const |
| obtain number of corners of the corresponding reference element | |
| GlobalCoordinate | corner (int i) const |
| obtain coordinates of the i-th corner | |
| GlobalCoordinate | center () const |
| obtain the centroid of the mapping's image | |
| GlobalCoordinate | global (const LocalCoordinate &local) const |
| evaluate the mapping | |
| LocalCoordinate | local (const GlobalCoordinate &globalCoord) const |
| evaluate the inverse mapping | |
| Volume | integrationElement (const LocalCoordinate &local) const |
| obtain the integration element | |
| Volume | volume () const |
| obtain the volume of the mapping's image | |
| JacobianTransposed | jacobianTransposed (const LocalCoordinate &local) const |
| obtain the transposed of the Jacobian | |
| JacobianInverseTransposed | jacobianInverseTransposed (const LocalCoordinate &local) const |
| obtain the transposed of the Jacobian's inverse | |
| Jacobian | jacobian (const LocalCoordinate &local) const |
| Obtain the Jacobian. | |
| JacobianInverse | jacobianInverse (const LocalCoordinate &local) const |
| Obtain the Jacobian's inverse. | |
Static Public Attributes | |
| static constexpr int | mydimension = mydim |
| geometry dimension | |
| static constexpr int | coorddimension = cdim |
| coordinate dimension | |
Protected Types | |
| typedef Dune::ReferenceElements< ctype, mydimension > | ReferenceElements |
| typedef Traits::MatrixHelper | MatrixHelper |
| typedef std::conditional< hasSingleGeometryType, std::integral_constant< unsignedint, Traits::templatehasSingleGeometryType< mydimension >::topologyId >, unsignedint >::type | TopologyId |
Protected Member Functions | |
| ReferenceElement | refElement () const |
| TopologyId | topologyId () const |
| bool | affine (JacobianTransposed &jacobianT) const |
Static Protected Member Functions | |
| template<bool add, int dim, class CornerIterator > | |
| static void | global (TopologyId topologyId, std::integral_constant< int, dim >, CornerIterator &cit, const ctype &df, const LocalCoordinate &x, const ctype &rf, GlobalCoordinate &y) |
| template<bool add, class CornerIterator > | |
| static void | global (TopologyId topologyId, std::integral_constant< int, 0 >, CornerIterator &cit, const ctype &df, const LocalCoordinate &x, const ctype &rf, GlobalCoordinate &y) |
| template<bool add, int rows, int dim, class CornerIterator > | |
| static void | jacobianTransposed (TopologyId topologyId, std::integral_constant< int, dim >, CornerIterator &cit, const ctype &df, const LocalCoordinate &x, const ctype &rf, FieldMatrix< ctype, rows, cdim > &jt) |
| template<bool add, int rows, class CornerIterator > | |
| static void | jacobianTransposed (TopologyId topologyId, std::integral_constant< int, 0 >, CornerIterator &cit, const ctype &df, const LocalCoordinate &x, const ctype &rf, FieldMatrix< ctype, rows, cdim > &jt) |
| template<int dim, class CornerIterator > | |
| static bool | affine (TopologyId topologyId, std::integral_constant< int, dim >, CornerIterator &cit, JacobianTransposed &jt) |
| template<class CornerIterator > | |
| static bool | affine (TopologyId topologyId, std::integral_constant< int, 0 >, CornerIterator &cit, JacobianTransposed &jt) |
Friends | |
| ReferenceElement | referenceElement (const MultiLinearGeometry &geometry) |
Detailed Description
class Dune::MultiLinearGeometry< ct, mydim, cdim, Traits >
generic geometry implementation based on corner coordinates
Based on the recursive definition of the reference elements, the MultiLinearGeometry provides a generic implementation of a geometry given the corner coordinates.
The geometric mapping is multilinear in the classical sense only in the case of cubes; for simplices it is linear. The name is still justified, because the mapping satisfies the important property of begin linear along edges.
- Template Parameters
-
ct coordinate type mydim geometry dimension cdim coordinate dimension Traits traits allowing to tweak some implementation details (optional)
The requirements on the traits are documented along with their default, MultiLinearGeometryTraits.
Member Typedef Documentation
◆ ctype
| typedef ct Dune::MultiLinearGeometry< ct, mydim, cdim, Traits >::ctype |
coordinate type
◆ GlobalCoordinate
| typedef FieldVector< ctype, coorddimension > Dune::MultiLinearGeometry< ct, mydim, cdim, Traits >::GlobalCoordinate |
type of global coordinates
◆ Jacobian
| typedef FieldMatrix< ctype, coorddimension, mydimension > Dune::MultiLinearGeometry< ct, mydim, cdim, Traits >::Jacobian |
Type for the Jacobian matrix.
◆ JacobianInverse
| typedef FieldMatrix< ctype, mydimension, coorddimension > Dune::MultiLinearGeometry< ct, mydim, cdim, Traits >::JacobianInverse |
Type for the inverse Jacobian matrix.
◆ JacobianTransposed
| typedef FieldMatrix< ctype, mydimension, coorddimension > Dune::MultiLinearGeometry< ct, mydim, cdim, Traits >::JacobianTransposed |
type of jacobian transposed
◆ LocalCoordinate
| typedef FieldVector< ctype, mydimension > Dune::MultiLinearGeometry< ct, mydim, cdim, Traits >::LocalCoordinate |
type of local coordinates
◆ MatrixHelper
|
protected |
◆ ReferenceElement
| typedef ReferenceElements::ReferenceElement Dune::MultiLinearGeometry< ct, mydim, cdim, Traits >::ReferenceElement |
type of reference element
◆ ReferenceElements
|
protected |
◆ TopologyId
|
protected |
◆ Volume
| typedef ctype Dune::MultiLinearGeometry< ct, mydim, cdim, Traits >::Volume |
type of volume
Constructor & Destructor Documentation
◆ MultiLinearGeometry() [1/2]
|
inline |
constructor
- Parameters
-
[in] refElement reference element for the geometry [in] corners corners to store internally
- Note
- The type of corners is actually a template argument. It is only required that the internal corner storage can be constructed from this object.
◆ MultiLinearGeometry() [2/2]
|
inline |
constructor
- Parameters
-
[in] gt geometry type [in] corners corners to store internally
- Note
- The type of corners is actually a template argument. It is only required that the internal corner storage can be constructed from this object.
Member Function Documentation
◆ affine() [1/4]
|
inline |
is this mapping affine?
◆ affine() [2/4]
|
inlineprotected |
◆ affine() [3/4]
|
inlinestaticprotected |
◆ affine() [4/4]
|
inlinestaticprotected |
◆ center()
|
inline |
obtain the centroid of the mapping's image
◆ corner()
|
inline |
obtain coordinates of the i-th corner
◆ corners()
|
inline |
obtain number of corners of the corresponding reference element
◆ global() [1/3]
|
inline |
evaluate the mapping
- Parameters
-
[in] local local coordinate to map
- Returns
- corresponding global coordinate
◆ global() [2/3]
|
inlinestaticprotected |
◆ global() [3/3]
|
inlinestaticprotected |
◆ integrationElement()
|
inline |
obtain the integration element
If the Jacobian of the mapping is denoted by $J(x)$, the integration integration element \(\mu(x)\) is given by
\[ \mu(x) = \sqrt{|\det (J^T(x) J(x))|}.\]
- Parameters
-
[in] local local coordinate to evaluate the integration element in
- Returns
- the integration element \(\mu(x)\).
- Note
- For affine mappings, it is more efficient to call jacobianInverseTransposed before integrationElement, if both are required.
◆ jacobian()
|
inline |
Obtain the Jacobian.
- Parameters
-
[in] local local coordinate to evaluate Jacobian in
- Returns
- a copy of the transposed of the Jacobian
◆ jacobianInverse()
|
inline |
Obtain the Jacobian's inverse.
The Jacobian's inverse is defined as a pseudo-inverse. If we denote the Jacobian by \(J(x)\), the following condition holds:
\[J^{-1}(x) J(x) = I.\]
◆ jacobianInverseTransposed()
|
inline |
obtain the transposed of the Jacobian's inverse
The Jacobian's inverse is defined as a pseudo-inverse. If we denote the Jacobian by \(J(x)\), the following condition holds:
\[J^{-1}(x) J(x) = I.\]
◆ jacobianTransposed() [1/3]
|
inline |
obtain the transposed of the Jacobian
- Parameters
-
[in] local local coordinate to evaluate Jacobian in
- Returns
- a reference to the transposed of the Jacobian
- Note
- The returned reference is reused on the next call to JacobianTransposed, destroying the previous value.
◆ jacobianTransposed() [2/3]
|
inlinestaticprotected |
◆ jacobianTransposed() [3/3]
|
inlinestaticprotected |
◆ local()
|
inline |
evaluate the inverse mapping
- Parameters
-
[in] globalCoord global coordinate to map
- Returns
- corresponding local coordinate
- Note
- For given global coordinate y the returned local coordinate x that minimizes the following function over the local coordinate space spanned by the reference element.
◆ refElement()
|
inlineprotected |
◆ topologyId()
|
inlineprotected |
◆ type()
|
inline |
obtain the name of the reference element
◆ volume()
|
inline |
obtain the volume of the mapping's image
- Note
- The current implementation just returns which is wrong for n-linear surface maps and other nonlinear maps.ReferenceElement refElement() constDefinition multilineargeometry.hh:425Volume integrationElement(const LocalCoordinate &local) constobtain the integration elementDefinition multilineargeometry.hh:350
Friends And Related Symbol Documentation
◆ referenceElement
|
friend |
Member Data Documentation
◆ coorddimension
|
staticconstexpr |
coordinate dimension
◆ mydimension
|
staticconstexpr |
geometry dimension
The documentation for this class was generated from the following file:
Legal Statements / Impressum | Hosted by TU Dresden & Uni Heidelberg | Generated by
1.9.8