KASKADE 7 development version
|
The BoundaryInterpolationDisplacement class provides a Kaskade WeakFunctionView on the displacement from grid to actual domain boundary (which is computed by boundary interpolation). More...
#include <boundaryInterpolation.hh>
The BoundaryInterpolationDisplacement class provides a Kaskade WeakFunctionView on the displacement from grid to actual domain boundary (which is computed by boundary interpolation).
It does also implement the interface required for displacements to be used in the BoundaryLocator.
Definition at line 783 of file boundaryInterpolation.hh.
Public Types | |
using | Displacement = GlobalPosition< GridView > |
using | DisplacementDerivative = Dune::FieldMatrix< ctype, dim, GridView::dimension > |
Public Member Functions | |
BoundaryInterpolationDisplacement (BoundaryInterpolationDisplacement &&)=default | |
BoundaryInterpolationDisplacement (GridView const &gv, GridBoundaryTangents< GridView > const &tangents) | |
Constructor precomputes for each level-0-cell data that is needed for boundary interpolation. More... | |
template<class VolumeDisplacement > | |
void | applyVolumeDisplacement (VolumeDisplacement const &u) |
Provides a \( G^1 \)-continuous boundary displacement of deformed grids. More... | |
Displacement | value (Cell< GridView > const &cell, LocalPosition< GridView > const &xiFine) const |
Provides the displacement for a point given by cell and local position \( \xi \). More... | |
DisplacementDerivative | derivative (Cell< GridView > const &cell, LocalPosition< GridView > const &xiFine) const |
Provides the global displacement derivative (w.r.t. global variable \( x \)) for a point given by cell and local position \( \xi \). More... | |
Related Functions | |
(Note that these are not member functions.) | |
template<class VolumeDisplacement > | |
auto | makeCompositeBoundaryInterpolation (VolumeDisplacement const &u, GeometricFeatureDetector< typename VolumeDisplacement::Space::Grid::LevelGridView::IndexSet::IndexType, typename VolumeDisplacement::Space::Grid::ctype, VolumeDisplacement::Space::Grid::dimension > const &features) |
Creates a composite boundary interpolation displacement from a volume displacement. More... | |
using Kaskade::BoundaryInterpolationDisplacement< GridView >::Displacement = GlobalPosition<GridView> |
Definition at line 788 of file boundaryInterpolation.hh.
using Kaskade::BoundaryInterpolationDisplacement< GridView >::DisplacementDerivative = Dune::FieldMatrix<ctype,dim,GridView::dimension> |
Definition at line 789 of file boundaryInterpolation.hh.
|
default |
|
inline |
Constructor precomputes for each level-0-cell data that is needed for boundary interpolation.
gv | level 0 grid view (coarse level) |
tangents | tangents on grid boundary |
Definition at line 798 of file boundaryInterpolation.hh.
|
inline |
Provides a \( G^1 \)-continuous boundary displacement of deformed grids.
Let a (volume) displacement \( u \) and the corresponding deformation \( \varphi \) on a simplicial grid with \( G^1 \)-continuous boundary displacement \( v \) be given. In principle, the composite boundary displacement would be
\[ x \mapsto \varphi(x+v(x))-x = u(x+v(x)) \approx u(x) + u_x(x)v(x). \]
Unfortunately, \( \varphi \) is in general not \( G^1 \)-continuous, such that the resulting composite boundary deformation is not \( G^1 \)-continuous.
Therefore we define the composite boundary interpolation by interpolating almost from scratch. We take the \( G^1 \)-continuous boundary edge tangents from the reference grid (which means that feaure edges are independent of the deformation) and rotate them according to \( t \mapsto t + u_x t \). Here, \( u_x \) at a vertex is computed by averaging the surrounding displacement derivatives, which yields a \( G^1 \)-continuous boundary interpolation.
Definition at line 842 of file boundaryInterpolation.hh.
Referenced by Kaskade::BoundaryInterpolationDisplacement< GridView >::makeCompositeBoundaryInterpolation().
|
inline |
Provides the global displacement derivative (w.r.t. global variable \( x \)) for a point given by cell and local position \( \xi \).
cell | any cell in the grid, can be leaf or any level below |
Definition at line 934 of file boundaryInterpolation.hh.
|
inline |
Provides the displacement for a point given by cell and local position \( \xi \).
cell | any cell in the grid, can be leaf or any level below |
Definition at line 898 of file boundaryInterpolation.hh.