dune-mmesh 1.4.1-git
Loading...
Searching...
No Matches
Dune::CurvatureOperator< IGridView, IGridMapper, CL > Class Template Reference

Class defining an operator that assigns a curvature to each element or each vertex of the interface grid. The curvature is approximated by interpolation with a sphere (through the center points of an interface element and its neighbors). The enum CurvatureLayout determines whether the curvature is approximated at the vertices or elements of the grid. NOTE that the algorithm IN 3D might provide poor approximations for non-spherical interfaces and IN 3D the algorithm in general does not converge under grid refinement. More...

#include <dune/mmesh/interface/curvatureoperator.hh>

Public Types

using Scalar = typename IGridView::ctype
 
using Vector = Dune::FieldVector< Scalar, dim >
 

Public Member Functions

 CurvatureOperator (const IGridView &iGridView, const IGridMapper &iGridMapper)
 Constructor.
 
template<class Curvatures , class Centers , CurvatureLayout Layout = CL>
std::enable_if_t< Layout==Vertex, void > operator() (Curvatures &curvatures, Centers &centers) const
 Operator that assigns a curvature to each element or each vertex of the interface grid. The curvature is approximated by interpolation with a sphere (osculating circle/sphere through incident interface vertices).
 
template<class Curvatures , class Centers , CurvatureLayout Layout = CL>
std::enable_if_t< Layout==Element, void > operator() (Curvatures &curvatures, Centers &centers) const
 

Static Public Attributes

static constexpr int dim = IGridView::dimensionworld
 

Detailed Description

template<class IGridView, class IGridMapper, CurvatureLayout CL = Vertex>
class Dune::CurvatureOperator< IGridView, IGridMapper, CL >

Class defining an operator that assigns a curvature to each element or each vertex of the interface grid. The curvature is approximated by interpolation with a sphere (through the center points of an interface element and its neighbors). The enum CurvatureLayout determines whether the curvature is approximated at the vertices or elements of the grid. NOTE that the algorithm IN 3D might provide poor approximations for non-spherical interfaces and IN 3D the algorithm in general does not converge under grid refinement.

Member Typedef Documentation

◆ Scalar

template<class IGridView , class IGridMapper , CurvatureLayout CL = Vertex>
using Dune::CurvatureOperator< IGridView, IGridMapper, CL >::Scalar = typename IGridView::ctype

◆ Vector

template<class IGridView , class IGridMapper , CurvatureLayout CL = Vertex>
using Dune::CurvatureOperator< IGridView, IGridMapper, CL >::Vector = Dune::FieldVector<Scalar, dim>

Constructor & Destructor Documentation

◆ CurvatureOperator()

template<class IGridView , class IGridMapper , CurvatureLayout CL = Vertex>
Dune::CurvatureOperator< IGridView, IGridMapper, CL >::CurvatureOperator ( const IGridView &  iGridView,
const IGridMapper &  iGridMapper 
)
inline

Constructor.

Parameters
iGridViewThe grid view of the interface grid
iGridMapperElement or Vertex mapper for the interface grid depending on the specified curvature layout

Member Function Documentation

◆ operator()() [1/2]

template<class IGridView , class IGridMapper , CurvatureLayout CL = Vertex>
template<class Curvatures , class Centers , CurvatureLayout Layout = CL>
std::enable_if_t< Layout==Vertex, void > Dune::CurvatureOperator< IGridView, IGridMapper, CL >::operator() ( Curvatures &  curvatures,
Centers &  centers 
) const
inline

Operator that assigns a curvature to each element or each vertex of the interface grid. The curvature is approximated by interpolation with a sphere (osculating circle/sphere through incident interface vertices).

Parameters
curvaturesA container to store the curvature of each element or each vertex of the interface grid
centersA container to store the centers of curvatures (sphere center points) corresponding to the approximated curvature of each element or each vertex of the interface grid

◆ operator()() [2/2]

template<class IGridView , class IGridMapper , CurvatureLayout CL = Vertex>
template<class Curvatures , class Centers , CurvatureLayout Layout = CL>
std::enable_if_t< Layout==Element, void > Dune::CurvatureOperator< IGridView, IGridMapper, CL >::operator() ( Curvatures &  curvatures,
Centers &  centers 
) const
inline

Member Data Documentation

◆ dim

template<class IGridView , class IGridMapper , CurvatureLayout CL = Vertex>
constexpr int Dune::CurvatureOperator< IGridView, IGridMapper, CL >::dim = IGridView::dimensionworld
staticconstexpr

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