Dune::RefinedP1LocalBasis< D, R, 3 > Class Template Reference

Uniformly refined linear Lagrange shape functions on the 3D-simplex (tetrahedron). More...

#include <dune/localfunctions/refined/refinedp1/refinedp1localbasis.hh>

Inheritance diagram for Dune::RefinedP1LocalBasis< D, R, 3 >:
Inheritance graph

List of all members.

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.
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.
static void getSubElement (const FieldVector< D, 3 > &global, int &subElement, FieldVector< D, 3 > &local)
 Get local coordinates in the subsimplex.

Detailed Description

template<class D, class R>
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 Typedef Documentation

template<class D , class R >
typedef LocalBasisTraits<D,3,Dune::FieldVector<D,3>,R,1,Dune::FieldVector<R,1>, Dune::FieldMatrix<R,1,3> > Dune::RefinedP1LocalBasis< D, R, 3 >::Traits

export type traits for function signature


Member Function Documentation

template<class D , class R >
void Dune::RefinedP1LocalBasis< D, R, 3 >::evaluateFunction ( const typename Traits::DomainType in,
std::vector< typename Traits::RangeType > &  out 
) const [inline]

Evaluate all shape functions.

template<class D , class R >
void Dune::RefinedP1LocalBasis< D, R, 3 >::evaluateJacobian ( const typename Traits::DomainType in,
std::vector< typename Traits::JacobianType > &  out 
) const [inline]

Evaluate Jacobian of all shape functions.

template<class D >
static int Dune::RefinedSimplexLocalBasis< D, 3 >::getSubElement ( const FieldVector< D, 3 > &  global  )  [inline, static, protected, inherited]

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
template<class D >
static void Dune::RefinedSimplexLocalBasis< D, 3 >::getSubElement ( const FieldVector< D, 3 > &  global,
int &  subElement,
FieldVector< D, 3 > &  local 
) [inline, static, protected, inherited]

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
template<class D , class R >
unsigned int Dune::RefinedP1LocalBasis< D, R, 3 >::order (  )  const [inline]

Polynomial order of the shape functions Doesn't really apply: these shape functions are only piecewise linear.

template<class D , class R >
unsigned int Dune::RefinedP1LocalBasis< D, R, 3 >::size (  )  const [inline]

number of shape functions


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

Generated on Fri Apr 29 2011 with Doxygen (ver 1.7.1) [doxygen-log,error-log].