Logo  0.95.0-final
Finite Element Embedded Library and Language in C++
Feel++ Feel++ on Github Feel++ community
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Feel::fem::CrouzeixRaviart< N, RealDim, PolySetType, T, Convex, TheTAG > Class Template Reference

#include <crouzeixraviart.hpp>

Detailed Description

template<uint16_type N, uint16_type RealDim, template< uint16_type Dim > class PolySetType, typename T = double, template< uint16_type, uint16_type, uint16_type > class Convex = Simplex, uint16_type TheTAG = 0>
class Feel::fem::CrouzeixRaviart< N, RealDim, PolySetType, T, Convex, TheTAG >

CrouzeixRaviart Finite Element.

Author
Christophe Prud'homme
+ Inheritance diagram for Feel::fem::CrouzeixRaviart< N, RealDim, PolySetType, T, Convex, TheTAG >:

Public Member Functions

 BOOST_STATIC_ASSERT (N > 1)
 
Constructors, destructor
 CrouzeixRaviart ()
 
 CrouzeixRaviart (CrouzeixRaviart const &cr)
 
 ~CrouzeixRaviart ()
 
Accessors
reference_convex_type const & referenceConvex () const
 
- Public Member Functions inherited from Feel::FiniteElement< mpl::if_< mpl::bool_< Convex< N, 1, N >::is_simplex >, mpl::identity< Feel::detail::OrthonormalPolynomialSet< N, 1, RealDim, PolySetType, T, TheTAG, Convex > >, mpl::identity< fem::detail::RannacherTurekPolynomialSet< N, PolySetType, T > > >::type::type, detail::CrouzeixRaviartDual, PointSetEquiSpaced >
 FiniteElement (dual_space_type const &pdual)
 
 FiniteElement (FiniteElement const &fe)
 
 ~FiniteElement ()
 
self_typeoperator= (self_type const &fe)
 
value_type operator() (uint16_type i, ublas::vector_expression< AE > const &pt) const
 
value_type operator() (ublas::vector_expression< AE > const &pt) const
 
matrix_type operator() (points_type const &pts) const
 
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
 

Protected Attributes

reference_convex_type M_refconvex
 

Typedefs

typedef super::value_type value_type
 
typedef super::primal_space_type primal_space_type
 
typedef super::dual_space_type dual_space_type
 
typedef Continuous continuity_type
 
typedef super::polyset_type polyset_type
 
typedef CrouzeixRaviart< N,
RealDim, Scalar, T, Convex
component_basis_type
 
typedef
dual_space_type::convex_type 
convex_type
 
typedef
dual_space_type::pointset_type 
pointset_type
 
typedef
dual_space_type::reference_convex_type 
reference_convex_type
 
typedef
reference_convex_type::node_type 
node_type
 
typedef
reference_convex_type::points_type 
points_type
 
static const uint16_type nDim = N
 
static const uint16_type nOrder = super::nOrder
 
static const bool isTransformationEquivalent = true
 
static const bool isContinuous = true
 
static const uint16_type TAG = TheTAG
 
static const bool is_vectorial = polyset_type::is_vectorial
 
static const bool is_scalar = polyset_type::is_scalar
 
static const uint16_type nComponents = polyset_type::nComponents
 
static const bool is_product = true
 
static const uint16_type nbPtsPerVertex = 0
 
static const uint16_type nbPtsPerEdge
 
static const uint16_type nbPtsPerFace
 
static const uint16_type nbPtsPerVolume = 0
 
static const uint16_type numPoints
 

Methods

std::string familyName () const
 
template<typename ExprType >
static auto isomorphism (ExprType &expr) -> decltype(expr)
 

Additional Inherited Members

- Public Types inherited from Feel::FiniteElement< mpl::if_< mpl::bool_< Convex< N, 1, N >::is_simplex >, mpl::identity< Feel::detail::OrthonormalPolynomialSet< N, 1, RealDim, PolySetType, T, TheTAG, Convex > >, mpl::identity< fem::detail::RannacherTurekPolynomialSet< N, PolySetType, T > > >::type::type, detail::CrouzeixRaviartDual, PointSetEquiSpaced >
typedef FiniteElement
< mpl::if_< mpl::bool_< Convex
< N, 1, N >::is_simplex >
, mpl::identity
< Feel::detail::OrthonormalPolynomialSet
< N, 1, RealDim, PolySetType,
T, TheTAG, Convex >
>, mpl::identity
< fem::detail::RannacherTurekPolynomialSet
< N, PolySetType, T >
> >::type::type,
detail::CrouzeixRaviartDual,
PointSetEquiSpaced > 
self_type
 
typedef mpl::if_< mpl::bool_
< Convex< N, 1, N >
::is_simplex >, mpl::identity
< Feel::detail::OrthonormalPolynomialSet
< N, 1, RealDim, PolySetType,
T, TheTAG, Convex >
>, mpl::identity
< fem::detail::RannacherTurekPolynomialSet
< N, PolySetType, T >
> >::type::type::value_type 
value_type
 
typedef mpl::if_< mpl::bool_
< Convex< N, 1, N >
::is_simplex >, mpl::identity
< Feel::detail::OrthonormalPolynomialSet
< N, 1, RealDim, PolySetType,
T, TheTAG, Convex >
>, mpl::identity
< fem::detail::RannacherTurekPolynomialSet
< N, PolySetType, T >
> >::type::type 
primal_space_type
 
typedef
primal_space_type::polyset_type 
polyset_type
 
typedef
detail::CrouzeixRaviartDual
< mpl::if_< mpl::bool_< Convex
< N, 1, N >::is_simplex >
, mpl::identity
< Feel::detail::OrthonormalPolynomialSet
< N, 1, RealDim, PolySetType,
T, TheTAG, Convex >
>, mpl::identity
< fem::detail::RannacherTurekPolynomialSet
< N, PolySetType, T >
> >::type::type,
PointSetEquiSpaced > 
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 Public Attributes inherited from Feel::FiniteElement< mpl::if_< mpl::bool_< Convex< N, 1, N >::is_simplex >, mpl::identity< Feel::detail::OrthonormalPolynomialSet< N, 1, RealDim, PolySetType, T, TheTAG, Convex > >, mpl::identity< fem::detail::RannacherTurekPolynomialSet< N, PolySetType, T > > >::type::type, detail::CrouzeixRaviartDual, PointSetEquiSpaced >
static const bool is_modal
 
static const uint16_type nLocalDof
 Number of degrees of freedom per vertex.
 
static const uint16_type nDofPerVertex
 Number of degrees of freedom per edge.
 
static const uint16_type nDofPerEdge
 Number of degrees of freedom per face.
 
static const uint16_type nDofPerFace
 Number of degrees of freedom per volume.
 
static const uint16_type nDofPerVolume
 
static const uint16_type nDof
 
static const uint16_type nNodes
 
static const uint16_type nDofGrad
 
static const uint16_type nDofHess
 
static const
fem::transformation_type 
trans
 

Member Typedef Documentation

template<uint16_type N, uint16_type RealDim, template< uint16_type Dim > class PolySetType, typename T = double, template< uint16_type, uint16_type, uint16_type > class Convex = Simplex, uint16_type TheTAG = 0>
typedef super::polyset_type Feel::fem::CrouzeixRaviart< N, RealDim, PolySetType, T, Convex, TheTAG >::polyset_type

Polynomial Set type: scalar or vectorial

Member Function Documentation

template<uint16_type N, uint16_type RealDim, template< uint16_type Dim > class PolySetType, typename T = double, template< uint16_type, uint16_type, uint16_type > class Convex = Simplex, uint16_type TheTAG = 0>
std::string Feel::fem::CrouzeixRaviart< N, RealDim, PolySetType, T, Convex, TheTAG >::familyName ( ) const
inlinevirtual
template<uint16_type N, uint16_type RealDim, template< uint16_type Dim > class PolySetType, typename T = double, template< uint16_type, uint16_type, uint16_type > class Convex = Simplex, uint16_type TheTAG = 0>
reference_convex_type const& Feel::fem::CrouzeixRaviart< N, RealDim, PolySetType, T, Convex, TheTAG >::referenceConvex ( ) const
inline
Returns
the reference convex associated with the lagrange polynomials

Member Data Documentation

template<uint16_type N, uint16_type RealDim, template< uint16_type Dim > class PolySetType, typename T = double, template< uint16_type, uint16_type, uint16_type > class Convex = Simplex, uint16_type TheTAG = 0>
const uint16_type Feel::fem::CrouzeixRaviart< N, RealDim, PolySetType, T, Convex, TheTAG >::nbPtsPerEdge
static
Initial value:
= mpl::if_<mpl::equal_to<mpl::int_<nDim>,mpl::int_<2> >,
mpl::int_<reference_convex_type::nbPtsPerEdge>,
mpl::int_<0> >::type::value
template<uint16_type N, uint16_type RealDim, template< uint16_type Dim > class PolySetType, typename T = double, template< uint16_type, uint16_type, uint16_type > class Convex = Simplex, uint16_type TheTAG = 0>
const uint16_type Feel::fem::CrouzeixRaviart< N, RealDim, PolySetType, T, Convex, TheTAG >::nbPtsPerFace
static
Initial value:
= mpl::if_<mpl::equal_to<mpl::int_<nDim>,mpl::int_<3> >,
mpl::int_<reference_convex_type::nbPtsPerFace>,
mpl::int_<0> >::type::value
template<uint16_type N, uint16_type RealDim, template< uint16_type Dim > class PolySetType, typename T = double, template< uint16_type, uint16_type, uint16_type > class Convex = Simplex, uint16_type TheTAG = 0>
const uint16_type Feel::fem::CrouzeixRaviart< N, RealDim, PolySetType, T, Convex, TheTAG >::numPoints
static
Initial value:
= ( reference_convex_type::numGeometricFaces*nbPtsPerFace+
reference_convex_type::numEdges*nbPtsPerEdge )

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

Generated on Sun Oct 20 2013 08:25:10 for Feel++ by doxygen 1.8.4