Feel++  0.92.0
Feel::FiniteElement< P, PDual, Pts > Class Template Reference

Finite element following Ciarlet framework. More...

#include <fe.hpp>

Inheritance diagram for Feel::FiniteElement< P, PDual, Pts >:
type

List of all members.

Public Member Functions

Constructors, destructor
 FiniteElement (dual_space_type const &pdual)
 FiniteElement (FiniteElement const &fe)
 ~FiniteElement ()
Operator overloads
self_typeoperator= (self_type const &fe)
template<typename AE >
value_type operator() (uint16_type i, ublas::vector_expression< AE > const &pt) const
template<typename AE >
value_type operator() (ublas::vector_expression< AE > const &pt) const
matrix_type operator() (points_type const &pts) const
Accessors
void domainShape () const
uint16_type nbPoints () const
primal_space_type const & primal () const
dual_space_type const & dual () const
points_type const & points () const
points_type const & points (uint16_type f) const
virtual std::string familyName () const =0

Typedefs

typedef FiniteElement< P,
PDual, Pts > 
self_type
typedef P::value_type value_type
typedef P primal_space_type
typedef
primal_space_type::polyset_type 
polyset_type
typedef PDual< P, Pts > dual_space_type
typedef super::matrix_type matrix_type
typedef super::points_type points_type
typedef super::self_type polynomialset_type
typedef super::polynomial_type polynomial_type
typedef super::polynomial_view_type polynomial_view_type
 Total number of degrees of freedom (equal to refEle::nDof)
static const bool is_modal = false
static const uint16_type nLocalDof = dual_space_type::nLocalDof
 Number of degrees of freedom per vertex.
static const uint16_type nDofPerVertex = dual_space_type::nDofPerVertex
 Number of degrees of freedom per edge.
static const uint16_type nDofPerEdge = dual_space_type::nDofPerEdge
 Number of degrees of freedom per face.
static const uint16_type nDofPerFace = dual_space_type::nDofPerFace
 Number of degrees of freedom per volume.
static const uint16_type nDofPerVolume = dual_space_type::nDofPerVolume
static const uint16_type nDof = nLocalDof
static const uint16_type nNodes = nDof
static const uint16_type nDofGrad = super::nDim*nDof
static const uint16_type nDofHess = super::nDim*super::nDim*nDof
static const
fem::transformation_type 
trans

Detailed Description

template<typename P, template< class Pr, template< class, uint16_type, class > class Pt > class PDual, template< class, uint16_type, class > class Pts>
class Feel::FiniteElement< P, PDual, Pts >

Finite element following Ciarlet framework.

Author:
Christophe Prud'homme
See also:

Member Typedef Documentation

template<typename P, template< class Pr, template< class, uint16_type, class > class Pt > class PDual, template< class, uint16_type, class > class Pts>
typedef primal_space_type::polyset_type Feel::FiniteElement< P, PDual, Pts >::polyset_type

Member Function Documentation

template<typename P, template< class Pr, template< class, uint16_type, class > class Pt > class PDual, template< class, uint16_type, class > class Pts>
void Feel::FiniteElement< P, PDual, Pts >::domainShape ( ) const [inline]
Returns:
the domain shape of the finite element
template<typename P, template< class Pr, template< class, uint16_type, class > class Pt > class PDual, template< class, uint16_type, class > class Pts>
dual_space_type const& Feel::FiniteElement< P, PDual, Pts >::dual ( ) const [inline]
Returns:
the dual basis of the finite element
template<typename P, template< class Pr, template< class, uint16_type, class > class Pt > class PDual, template< class, uint16_type, class > class Pts>
virtual std::string Feel::FiniteElement< P, PDual, Pts >::familyName ( ) const [pure virtual]
template<typename P, template< class Pr, template< class, uint16_type, class > class Pt > class PDual, template< class, uint16_type, class > class Pts>
uint16_type Feel::FiniteElement< P, PDual, Pts >::nbPoints ( ) const [inline]
Returns:
the number of points associated with FE
template<typename P, template< class Pr, template< class, uint16_type, class > class Pt > class PDual, template< class, uint16_type, class > class Pts>
points_type const& Feel::FiniteElement< P, PDual, Pts >::points ( ) const [inline]
Returns:
points associated with the lagrange finite element
template<typename P, template< class Pr, template< class, uint16_type, class > class Pt > class PDual, template< class, uint16_type, class > class Pts>
points_type const& Feel::FiniteElement< P, PDual, Pts >::points ( uint16_type  f) const [inline]

get the points associated with the finite element on a face f if any

  • f face index
Returns:
points associated with a face of the lagrange finite element
template<typename P, template< class Pr, template< class, uint16_type, class > class Pt > class PDual, template< class, uint16_type, class > class Pts>
primal_space_type const& Feel::FiniteElement< P, PDual, Pts >::primal ( ) const [inline]
Returns:
the polynomial set defining the finite element
the dual basis of the finite element

Member Data Documentation

template<typename P, template< class Pr, template< class, uint16_type, class > class Pt > class PDual, template< class, uint16_type, class > class Pts>
const fem::transformation_type Feel::FiniteElement< P, PDual, Pts >::trans [static]
Initial value:
 ( fem::transformation_type )mpl::if_<mpl::and_<mpl::bool_<P::convex_type::is_simplex>,mpl::equal_to<mpl::int_<super::nOrder>, mpl::int_<1> > >,
                                          mpl::int_<fem::LINEAR>,
                                          mpl::int_<fem::NONLINEAR> >::type::value