KASKADE 7 development version
Public Types | Public Member Functions | Related Functions | List of all members
Kaskade::BoundaryInterpolationDisplacement< GridView > Class Template Reference

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>

Detailed Description

template<class GridView>
class Kaskade::BoundaryInterpolationDisplacement< GridView >

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...
 

Member Typedef Documentation

◆ Displacement

template<class GridView >
using Kaskade::BoundaryInterpolationDisplacement< GridView >::Displacement = GlobalPosition<GridView>

Definition at line 788 of file boundaryInterpolation.hh.

◆ DisplacementDerivative

template<class GridView >
using Kaskade::BoundaryInterpolationDisplacement< GridView >::DisplacementDerivative = Dune::FieldMatrix<ctype,dim,GridView::dimension>

Definition at line 789 of file boundaryInterpolation.hh.

Constructor & Destructor Documentation

◆ BoundaryInterpolationDisplacement() [1/2]

template<class GridView >
Kaskade::BoundaryInterpolationDisplacement< GridView >::BoundaryInterpolationDisplacement ( BoundaryInterpolationDisplacement< GridView > &&  )
default

◆ BoundaryInterpolationDisplacement() [2/2]

template<class GridView >
Kaskade::BoundaryInterpolationDisplacement< GridView >::BoundaryInterpolationDisplacement ( GridView const &  gv,
GridBoundaryTangents< GridView > const &  tangents 
)
inline

Constructor precomputes for each level-0-cell data that is needed for boundary interpolation.

Parameters
gvlevel 0 grid view (coarse level)
tangentstangents on grid boundary

Definition at line 798 of file boundaryInterpolation.hh.

Member Function Documentation

◆ applyVolumeDisplacement()

template<class GridView >
template<class VolumeDisplacement >
void Kaskade::BoundaryInterpolationDisplacement< GridView >::applyVolumeDisplacement ( VolumeDisplacement const &  u)
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.

Warning
As this works on the coarse grid and ignores the volume displacement between coarse grid vertices, this is mostly useful for P1 (if need be, P2) discretizations on a single level.

Definition at line 842 of file boundaryInterpolation.hh.

Referenced by Kaskade::BoundaryInterpolationDisplacement< GridView >::makeCompositeBoundaryInterpolation().

◆ derivative()

template<class GridView >
DisplacementDerivative Kaskade::BoundaryInterpolationDisplacement< GridView >::derivative ( Cell< GridView > const &  cell,
LocalPosition< GridView > const &  xiFine 
) const
inline

Provides the global displacement derivative (w.r.t. global variable \( x \)) for a point given by cell and local position \( \xi \).

Parameters
cellany cell in the grid, can be leaf or any level below

Definition at line 934 of file boundaryInterpolation.hh.

◆ value()

template<class GridView >
Displacement Kaskade::BoundaryInterpolationDisplacement< GridView >::value ( Cell< GridView > const &  cell,
LocalPosition< GridView > const &  xiFine 
) const
inline

Provides the displacement for a point given by cell and local position \( \xi \).

Parameters
cellany cell in the grid, can be leaf or any level below

Definition at line 898 of file boundaryInterpolation.hh.


The documentation for this class was generated from the following file: