13#ifndef BOUNDARYFACE_HH
14#define BOUNDARYFACE_HH
20#include "dune/common/fvector.hh"
21#include "dune/geometry/type.hh"
43 template <
class Gr
id,
class Face,
class Displacement,
int dimw=Face::dimensionworld>
52 using ctype =
typename Face::ctype;
53 using Cell =
typename Grid::Codim<0>::Entity;
56 enum Kind { VOLUMEMESH, SURFACEMESH, PLANARMESH };
104 Dune::GeometryType
type()
const
157 std::pair<DeformationJacobian,GridJacobian> jacobians(
LocalPosition const& xi)
const;
158 std::pair<DeformationJacobian,GridJacobian> jacobiansUncached(
LocalPosition const& xi)
const;
160 std::shared_ptr<Face> face;
161 Dune::GeometryType gt;
164 Displacement
const* disp;
165 bool displacementAffine;
A class for representing displaced/deformed boundary faces.
typename Face::ctype ctype
static int const griddimension
static int const worlddimension
BoundaryFace(Face const &f, Displacement const *d=nullptr)
Constructor.
Dune::GeometryType type() const
Returns the type of reference face.
static int const facedimension
static int const celldimension
std::pair< GlobalPosition, GlobalPosition > boundingBox() const
Computes the axis-aligned bounding box.
GlobalPosition global(LocalPosition const &xi) const
Computes the global world position of the given local coordinate.
std::optional< std::pair< LocalPosition, ctype > > intersection(GlobalPosition const &a, GlobalPosition const &b) const
Computes the intersection of the boundary face with the given line segment , if there is any.
typename Grid::Codim< 0 >::Entity Cell
Face const & gridFace() const
ctype volume() const
Computes the area of the deformed face.
GlobalPosition unitOuterNormal(LocalPosition const &xi) const
Computes the unit outer normal of the deformed face.
typename GridView::Intersection Face
The type of faces in the grid view.