Dune Core Modules (2.6.0)

Dune::CachedMultiLinearGeometry< ct, mydim, cdim, Traits > Class Template Reference

Implement a MultiLinearGeometry with additional caching. More...

#include <dune/geometry/multilineargeometry.hh>

Public Member Functions

bool affine () const
 is this mapping affine?
 
GlobalCoordinate center () const
 obtain the centroid of the mapping's image
 
GlobalCoordinate global (const LocalCoordinate &local) const
 evaluate the mapping More...
 
 LocalCoordinate (const GlobalCoordinate &global) const
 evaluate the inverse mapping More...
 
ctype integrationElement (const LocalCoordinate &local) const
 obtain the integration element More...
 
ctype volume () const
 obtain the volume of the mapping's image
 
JacobianTransposed jacobianTransposed (const LocalCoordinate &local) const
 obtain the transposed of the Jacobian More...
 
JacobianInverseTransposed jacobianInverseTransposed (const LocalCoordinate &local) const
 obtain the transposed of the Jacobian's inverse More...
 
GlobalCoordinate corner (int i) const
 obtain coordinates of the i-th corner
 
Dune::GeometryType type () const
 obtain the name of the reference element
 
int corners () const
 obtain number of corners of the corresponding reference element
 

Static Public Attributes

static const int mydimension
 geometry dimension
 
static const int coorddimension
 coordinate dimension
 

Detailed Description

template<class ct, int mydim, int cdim, class Traits = MultiLinearGeometryTraits< ct >>
class Dune::CachedMultiLinearGeometry< ct, mydim, cdim, Traits >

Implement a MultiLinearGeometry with additional caching.

This class implements the same interface and functionality as MultiLinearGeometry. However, it additionally implements caching for various results.

Template Parameters
ctcoordinate type
mydimgeometry dimension
cdimcoordinate dimension
Traitstraits allowing to tweak some implementation details (optional)

Member Function Documentation

◆ global()

◆ integrationElement()

template<class ct , int mydim, int cdim, class Traits = MultiLinearGeometryTraits< ct >>
ctype Dune::CachedMultiLinearGeometry< ct, mydim, cdim, Traits >::integrationElement ( const LocalCoordinate local) const
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]locallocal 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.

References Dune::CachedMultiLinearGeometry< ct, mydim, cdim, Traits >::affine(), and Dune::MultiLinearGeometry< ct, mydim, cdim, Traits >::integrationElement().

Referenced by Dune::CachedMultiLinearGeometry< ct, mydim, cdim, Traits >::volume().

◆ jacobianInverseTransposed()

template<class ct , int mydim, int cdim, class Traits = MultiLinearGeometryTraits< ct >>
JacobianInverseTransposed Dune::CachedMultiLinearGeometry< ct, mydim, cdim, Traits >::jacobianInverseTransposed ( const LocalCoordinate local) const
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.\]

References Dune::CachedMultiLinearGeometry< ct, mydim, cdim, Traits >::affine(), and Dune::MultiLinearGeometry< ct, mydim, cdim, Traits >::jacobianInverseTransposed().

◆ jacobianTransposed()

template<class ct , int mydim, int cdim, class Traits = MultiLinearGeometryTraits< ct >>
JacobianTransposed Dune::CachedMultiLinearGeometry< ct, mydim, cdim, Traits >::jacobianTransposed ( const LocalCoordinate local) const
inline

obtain the transposed of the Jacobian

Parameters
[in]locallocal 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.

References Dune::CachedMultiLinearGeometry< ct, mydim, cdim, Traits >::affine(), and Dune::MultiLinearGeometry< ct, mydim, cdim, Traits >::jacobianTransposed().

◆ LocalCoordinate()

template<class ct , int mydim, int cdim, class Traits = MultiLinearGeometryTraits< ct >>
Dune::CachedMultiLinearGeometry< ct, mydim, cdim, Traits >::LocalCoordinate ( const GlobalCoordinate global) const
inline

evaluate the inverse mapping

Parameters
[in]globalglobal 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.
(global( x ) - y).two_norm()
GlobalCoordinate global(const LocalCoordinate &local) const
evaluate the mapping
Definition: multilineargeometry.hh:535

References Dune::CachedMultiLinearGeometry< ct, mydim, cdim, Traits >::affine(), Dune::CachedMultiLinearGeometry< ct, mydim, cdim, Traits >::corner(), and Dune::CachedMultiLinearGeometry< ct, mydim, cdim, Traits >::global().


The documentation for this class was generated from the following file:
Creative Commons License   |  Legal Statements / Impressum  |  Hosted by TU Dresden  |  generated with Hugo v0.111.3 (Nov 24, 23:30, 2024)