5#ifndef DUNE_GEOMETRY_TEST_REFERENCEELEMENTGEOMETRY_HH 
    6#define DUNE_GEOMETRY_TEST_REFERENCEELEMENTGEOMETRY_HH 
   10#include <dune/geometry/referenceelements.hh> 
   20  friend const A& operator* (IdentityMatrix, 
const A& a) { 
return a; }
 
   24  friend const A& operator* (
const A& a, IdentityMatrix) { 
return a; }
 
   27  friend IdentityMatrix operator* (IdentityMatrix, IdentityMatrix) { 
return {}; }
 
   29  friend std::ostream& operator<< (std::ostream& out, IdentityMatrix)
 
   35  template <
class K, 
int n>
 
   36  operator FieldMatrix<K,n,n> ()
 const 
   39    for (
int i = 0; i < n; ++i)
 
   61template <
class RefElem>
 
   62class ReferenceElementGeometry
 
   63    : 
public RefElem::template Codim<0>::Geometry
 
   65  using Base = 
typename RefElem::template Codim<0>::Geometry;
 
   68  using LocalCoordinate = 
typename RefElem::Coordinate;
 
   69  using GlobalCoordinate = 
typename RefElem::Coordinate;
 
   70  using Jacobian = Impl::IdentityMatrix;
 
   71  using JacobianTransposed = Impl::IdentityMatrix;
 
   72  using JacobianInverse = Impl::IdentityMatrix;
 
   73  using JacobianInverseTransposed = Impl::IdentityMatrix;
 
   76  constexpr explicit ReferenceElementGeometry (
const RefElem& refElem)
 
   77    : Base{refElem.template geometry<0>(0)}
 
   81  constexpr const LocalCoordinate& local (
const GlobalCoordinate& global) 
const noexcept 
   87  constexpr const GlobalCoordinate& global (
const LocalCoordinate& local) 
const noexcept 
   93  constexpr Jacobian jacobian (
const LocalCoordinate& local) 
const noexcept 
   99  constexpr JacobianTransposed jacobianTransposed (
const LocalCoordinate& local) 
const noexcept 
  101    return JacobianTransposed{};
 
  105  constexpr JacobianInverse jacobianInverse (
const LocalCoordinate& local) 
const noexcept 
  107    return JacobianInverse{};
 
  111  constexpr JacobianInverseTransposed jacobianInverseTransposed (
const LocalCoordinate& local) 
const noexcept 
  113    return JacobianInverseTransposed{};
 
  134template <
class Geometry>
 
  135class LocalDerivativeGeometry
 
  136    : 
public ReferenceElementGeometry<
 
  137        typename Dune::ReferenceElements<typename Geometry::ctype, Geometry::mydimension>::ReferenceElement >
 
  141  using Base = ReferenceElementGeometry<ReferenceElement>;
 
  151  explicit LocalDerivativeGeometry (
const Geometry& geometry) noexcept
 
  153    , geometry_(geometry)
 
  157  Jacobian jacobian (
const LocalCoordinate& local)
 const 
  159    return geometry_.jacobian(local);
 
  163  JacobianTransposed jacobianTransposed (
const LocalCoordinate& local)
 const 
  165    return geometry_.jacobianTransposed(local);
 
  169  JacobianInverse jacobianInverse (
const LocalCoordinate& local)
 const 
  171    return geometry_.jacobianInverse(local);
 
  175  JacobianInverseTransposed jacobianInverseTransposed (
const LocalCoordinate& local)
 const 
  177    return geometry_.jacobianInverseTransposed(local);
 
Implementation::JacobianTransposed JacobianTransposed
type of jacobian transposed
Definition: geometry.hh:131
 
Implementation::JacobianInverseTransposed JacobianInverseTransposed
type of jacobian inverse transposed
Definition: geometry.hh:120
 
Std::detected_or_t< JacobianInverseDefault, JacobianInverseOfImplementation, Implementation > JacobianInverse
type of jacobian inverse
Definition: geometry.hh:178
 
FieldVector< ctype, mydim > LocalCoordinate
type of local coordinates
Definition: geometry.hh:103
 
Std::detected_or_t< JacobianDefault, JacobianOfImplementation, Implementation > Jacobian
type of jacobian
Definition: geometry.hh:189
 
unspecified value type referenceElement(T &&... t)
Returns a reference element for the objects t....
 
Dune namespace.
Definition: alignedallocator.hh:13
 
Class providing access to the singletons of the reference elements.
Definition: referenceelements.hh:128
 
typename Container::ReferenceElement ReferenceElement
The reference element type.
Definition: referenceelements.hh:146