5#ifndef DUNE_GRID_CONCEPTS_ARCHETYPES_GEOMETRY_HH
6#define DUNE_GRID_CONCEPTS_ARCHETYPES_GEOMETRY_HH
8#include <dune/common/fmatrix.hh>
9#include <dune/common/fvector.hh>
10#include <dune/geometry/type.hh>
13namespace Dune::Concept::Archetypes {
15struct ReferenceElement {};
17template <
int mydim,
int cdim = mydim>
20 static constexpr int mydimension = mydim;
21 static constexpr int coorddimension = cdim;
25 using LocalCoordinate = Dune::FieldVector<ctype, mydim>;
26 using GlobalCoordinate = Dune::FieldVector<ctype, cdim>;
27 using Jacobian = Dune::FieldMatrix<ctype, cdim, mydim>;
28 using JacobianTransposed = Dune::FieldMatrix<ctype, mydim, cdim>;
29 using JacobianInverse = Dune::FieldMatrix<ctype, mydim, cdim>;
30 using JacobianInverseTransposed = Dune::FieldMatrix<ctype, cdim, mydim>;
32 Dune::GeometryType type ()
const;
36 GlobalCoordinate corner (
int i)
const;
37 GlobalCoordinate global (
const LocalCoordinate& local)
const;
38 LocalCoordinate local (
const GlobalCoordinate& global)
const;
39 GlobalCoordinate center ()
const;
41 Volume integrationElement (
const LocalCoordinate& local)
const;
42 Volume volume ()
const;
44 Jacobian jacobian (
const LocalCoordinate& local)
const;
45 JacobianTransposed jacobianTransposed (
const LocalCoordinate& local)
const;
46 JacobianInverse jacobianInverse (
const LocalCoordinate& local)
const;
47 JacobianInverseTransposed jacobianInverseTransposed (
const LocalCoordinate& local)
const;
50template <
int mydim,
int cdim>
51Archetypes::ReferenceElement
referenceElement (
const Geometry<mydim,cdim>& g);
auto referenceElement(const Geometry< mydim, cdim, GridImp, GeometryImp > &geo) -> decltype(referenceElement(geo, geo.impl()))
Definition common/geometry.hh:558