Dune Core Modules (2.6.0)
Uniformly refined linear Lagrange shape functions on the 3D-simplex (tetrahedron). More...
#include <dune/localfunctions/refined/refinedp1/refinedp1localbasis.hh>
Public Types | |
typedef LocalBasisTraits< D, 3, Dune::FieldVector< D, 3 >, R, 1, Dune::FieldVector< R, 1 >, Dune::FieldMatrix< R, 1, 3 > > | Traits |
export type traits for function signature | |
Public Member Functions | |
unsigned int | size () const |
number of shape functions | |
void | evaluateFunction (const typename Traits::DomainType &in, std::vector< typename Traits::RangeType > &out) const |
Evaluate all shape functions. | |
void | evaluateJacobian (const typename Traits::DomainType &in, std::vector< typename Traits::JacobianType > &out) const |
Evaluate Jacobian of all shape functions. | |
void | partial (const std::array< unsigned int, 3 > &order, const typename Traits::DomainType &in, std::vector< typename Traits::RangeType > &out) const |
Evaluate partial derivatives of all shape functions. | |
unsigned int | order () const |
Polynomial order of the shape functions Doesn't really apply: these shape functions are only piecewise linear. | |
Static Protected Member Functions | |
static int | getSubElement (const FieldVector< D, 3 > &global) |
Get the number of the subsimplex containing a given point in the reference element. More... | |
static void | getSubElement (const FieldVector< D, 3 > &global, int &subElement, FieldVector< D, 3 > &local) |
Get local coordinates in the subsimplex. More... | |
Detailed Description
class Dune::RefinedP1LocalBasis< D, R, 3 >
Uniformly refined linear Lagrange shape functions on the 3D-simplex (tetrahedron).
This shape function set mimicks the P1 shape functions that you would get on a uniformly refined grid. Hence these shape functions are only piecewise linear! The data layout is identical to P2 shape functions.
Shape functions like these are necessary for hierarchical error estimators for certain nonlinear problems.
The functions are associated to points by:
f_0 ~ (0.0, 0.0, 0.0) f_1 ~ (1.0, 0.0, 0.0) f_2 ~ (0.0, 1.0, 0.0) f_3 ~ (0.0, 0.0, 1.0) f_4 ~ (0.5, 0.0, 0.0) f_5 ~ (0.5, 0.5, 0.0) f_6 ~ (0.0, 0.5, 0.0) f_7 ~ (0.0, 0.0, 0.5) f_8 ~ (0.5, 0.0, 0.5) f_9 ~ (0.0, 0.5, 0.5)
- Template Parameters
-
D Type to represent the field in the domain. R Type to represent the field in the range.
Member Function Documentation
◆ getSubElement() [1/2]
|
inlinestaticprotectedinherited |
Get the number of the subsimplex containing a given point in the reference element.
Defining the following points in the reference simplex
0: (0.0, 0.0, 0.0) 1: (1.0, 0.0, 0.0) 2: (0.0, 1.0, 0.0) 3: (0.0, 0.0, 1.0) 4: (0.5, 0.0, 0.0) 5: (0.5, 0.5, 0.0) 6: (0.0, 0.5, 0.0) 7: (0.0, 0.0, 0.5) 8: (0.5, 0.0, 0.5) 9: (0.0, 0.5, 0.5)
The subsimplices are numbered according to
0: 0467 - 1: 4158 |_ "cut off" vertices 2: 6529 | 3: 7893 -
4: 6487 - 5: 4568 |_ octahedron partition 6: 6897 | 7: 6895 -
- Parameters
-
[in] global Coordinates in the reference simplex
- Returns
- Number of the subsimplex containing
global
References DUNE_THROW.
◆ getSubElement() [2/2]
|
inlinestaticprotectedinherited |
Get local coordinates in the subsimplex.
- Parameters
-
[in] global Coordinates in the reference simplex [out] subElement Number of the subsimplex containing global
[out] local The local coordinates in the subsimplex
References DUNE_THROW.
The documentation for this class was generated from the following file:
- dune/localfunctions/refined/refinedp1/refinedp1localbasis.hh