Feel++ 0.111.0-preview.14
Finite Element Embedded Library in C++
Feel::Simplex< Dim, Order, RDim > Class Template Reference

simplex of dimension Dim More...

+ Inheritance diagram for Feel::Simplex< Dim, Order, RDim >:
+ Collaboration diagram for Feel::Simplex< Dim, Order, RDim >:

Public Types

typedef mpl::if_< mpl::greater_equal< mpl::int_< nDim >, mpl::int_< 2 > >, mpl::identity< line_permutations >, mpl::identity< no_permutation > >::type::type edge_permutation_type
 
typedef mpl::at< map_entity_to_point_t, mpl::int_< nDim > >::type edge_to_point_t
 
typedef mpl::at< v_edges_t, mpl::int_< real_dimension > >::type edge_type
 
typedef mpl::at< elements_t, mpl::int_< nDim > >::type element_type
 
typedef mpl::if_< mpl::equal_to< mpl::int_< nDim >, mpl::int_< 3 > >, mpl::identity< triangular_faces_type >, mpl::identity< no_permutation > >::type::type face_permutation_type
 
typedef mpl::at< map_entity_to_point_t, mpl::int_< nDim > >::type face_to_edge_t
 
typedef mpl::at< map_entity_to_point_t, mpl::int_< nDim > >::type face_to_point_t
 
typedef topological_face_type GeoBShape
 
typedef mpl::if_< mpl::equal_to< mpl::int_< nDim >, mpl::int_< 2 > >, mpl::identity< mpl::vector< edge_permutation_type, vertex_permutation_type, vertex_permutation_type > >, typenamempl::if_< mpl::equal_to< mpl::int_< nDim >, mpl::int_< 3 > >, mpl::identity< mpl::vector< face_permutation_type, edge_permutation_type, vertex_permutation_type > >, mpl::identity< mpl::vector< vertex_permutation_type, vertex_permutation_type, vertex_permutation_type > > >::type >::type::type permutation_by_subentity_type
 
typedef mpl::if_< mpl::equal_to< mpl::int_< nDim >, mpl::int_< 2 > >, mpl::identity< edge_permutation_type >, typenamempl::if_< mpl::equal_to< mpl::int_< nDim >, mpl::int_< 3 > >, mpl::identity< face_permutation_type >, mpl::identity< no_permutation > >::type >::type::type permutation_type
 
template<int N>
using PermutationSubEntity = typename mpl::at_c< permutation_by_subentity_type, N-1 >::type
 
template<int shape_dim = nDim, int O = Order, int R = nDim>
using shape = Simplex< shape_dim, O, R >
 
template<int shape_dim, int O = Order, int R = nDim>
using shape_t = Simplex< shape_dim, O, R >
 
typedef mpl::at< typenamefaces_t< real_dimension >::type, mpl::int_< nDim > >::type topological_face_type
 
typedef no_permutation vertex_permutation_type
 

Public Member Functions

uint16_type dimension () const
 
Simplex & operator= (Simplex &&)=default
 
Simplex & operator= (Simplex const &)=default
 
 Simplex (Simplex &&)=default
 
 Simplex (Simplex const &)=default
 
uint16_type topologicalDimension () const
 
- Public Member Functions inherited from Feel::Convex< Dim, 1, Dim >
 Convex ()
 default constructor
 
 Convex (Convex const &)
 copy constructor
 
virtual ~Convex ()
 destructor
 
Convex & operator= (Convex const &o)=default
 copy operator
 

Static Public Member Functions

static uint16_type e2p (uint16_type e, uint16_type p)
 Given an edge e in the element and the local index p (0 or 1) of a point in the edge e ,. More...
 
static uint16_type f2e (uint16_type f, uint16_type e)
 Given a face f in the element and the local index e of an edge in the face f,. More...
 
static uint16_type f2eLoc (uint16_type f, uint16_type e)
 Given a face f in the element and the global index e of an edge in the face f,. More...
 
static uint16_type f2p (uint16_type f, uint16_type p)
 Given a face f in the element and the local index p of a point in the face f ,. More...
 
static constexpr int getShape ()
 handle a shape
 
static std::string name ()
 
static uint16_type nPointsOnEdge ()
 Returns the number of points per edge.
 
static uint16_type nPointsOnFace ()
 Returns the number of points per face.
 
static uint16_type nPointsOnVertex ()
 Returns the number of points per vertex.
 
static uint16_type nPointsOnVolume ()
 Returns the number of points per volume.
 
static constexpr int numberOfEdges ()
 
static constexpr int numberOfGeometricFaces ()
 
static constexpr int numberOfTopologicalFaces ()
 
static constexpr int numberOfVertices ()
 
static constexpr int numberOfVolumes ()
 
static int polyDims (int n)
 
static std::string type ()
 

Static Public Attributes

static const size_type Geometry = mpl::at<geometries_t, mpl::int_<nDim> >::type::value
 
static const bool is_hypercube = false
 
static const bool is_simplex = true
 
static const uint16_type nbPtsPerEdge = mpl::at<points_edge_t, mpl::int_<nDim> >::type::value
 
static const uint16_type nbPtsPerFace = mpl::at<points_face_t, mpl::int_<nDim> >::type::value
 
static const uint16_type nbPtsPerVertex = ( nOrder==0 )?0:1
 
static const uint16_type nbPtsPerVolume = mpl::at<points_volume_t, mpl::int_<nDim> >::type::value
 
static const uint16_type nDim = Dim
 
static const uint16_type nOrder = Order
 
static const uint16_type nRealDim = RDim
 
static const int numEdges = numberOfEdges()
 
static const int numFaces = numberOfGeometricFaces()
 
static const int numGeometricFaces = numberOfGeometricFaces()
 
static const uint16_type numNormals = mpl::at<normals_t, mpl::int_<nDim> >::type::value
 
static const uint16_type numPoints
 
static const int numTopologicalFaces = numberOfTopologicalFaces()
 
static const int numVertices = numberOfVertices()
 
static const int numVolumes = numberOfVolumes()
 
static const uint16_type real_dimension = nRealDim
 
static constexpr int Shape = getShape()
 
template<int shape_dim, int O = Order, int R = nDim>
static constexpr int shape_v = Simplex<shape_dim, O, R>::Shape
 
static const uint16_type topological_dimension = nDim
 
- Static Public Attributes inherited from Feel::Convex< Dim, 1, Dim >
static const uint16_type nDim
 
static const uint16_type nOrder
 
static const uint16_type nRealDim
 

Detailed Description

template<uint16_type Dim, uint16_type Order = 1, uint16_type RDim = Dim>
class Feel::Simplex< Dim, Order, RDim >

simplex of dimension Dim

Author
Christophe Prud'homme chris.nosp@m.toph.nosp@m.e.pru.nosp@m.dhom.nosp@m.me@fe.nosp@m.elpp.nosp@m..org

Member Function Documentation

◆ dimension()

template<uint16_type Dim, uint16_type Order = 1, uint16_type RDim = Dim>
uint16_type Feel::Simplex< Dim, Order, RDim >::dimension ( ) const
Returns
the dimension of the space where the simplex resides

◆ e2p()

template<uint16_type Dim, uint16_type Order = 1, uint16_type RDim = Dim>
static uint16_type Feel::Simplex< Dim, Order, RDim >::e2p ( uint16_type  e,
uint16_type  p 
)
static

Given an edge e in the element and the local index p (0 or 1) of a point in the edge e ,.

Returns
the index in the element of the point.

◆ f2e()

template<uint16_type Dim, uint16_type Order = 1, uint16_type RDim = Dim>
static uint16_type Feel::Simplex< Dim, Order, RDim >::f2e ( uint16_type  f,
uint16_type  e 
)
static

Given a face f in the element and the local index e of an edge in the face f,.

Returns
the index in the element of the edge.

◆ f2eLoc()

template<uint16_type Dim, uint16_type Order = 1, uint16_type RDim = Dim>
static uint16_type Feel::Simplex< Dim, Order, RDim >::f2eLoc ( uint16_type  f,
uint16_type  e 
)
static

Given a face f in the element and the global index e of an edge in the face f,.

Returns
the local index in the element of the edge.

◆ f2p()

template<uint16_type Dim, uint16_type Order = 1, uint16_type RDim = Dim>
static uint16_type Feel::Simplex< Dim, Order, RDim >::f2p ( uint16_type  f,
uint16_type  p 
)
static

Given a face f in the element and the local index p of a point in the face f ,.

Returns
the index in the element of the point.

◆ name()

template<uint16_type Dim, uint16_type Order = 1, uint16_type RDim = Dim>
static std::string Feel::Simplex< Dim, Order, RDim >::name ( )
static
Returns
the name of the simplex

◆ polyDims()

template<uint16_type Dim, uint16_type Order = 1, uint16_type RDim = Dim>
static int Feel::Simplex< Dim, Order, RDim >::polyDims ( int  n)
static
Returns
the number of polynomials of total degree n on the shape:
  1. (n+1) over the line
  2. (n+1)(n+2)/2 over the triangle,
  3. (n+1)(n+2)(n+3)/6 in three dimensions.

◆ topologicalDimension()

template<uint16_type Dim, uint16_type Order = 1, uint16_type RDim = Dim>
uint16_type Feel::Simplex< Dim, Order, RDim >::topologicalDimension ( ) const
Returns
the topological dimension of the simplex

Member Data Documentation

◆ numPoints

template<uint16_type Dim, uint16_type Order = 1, uint16_type RDim = Dim>
const uint16_type Feel::Simplex< Dim, Order, RDim >::numPoints
static
Initial value:
= ( numVertices * nbPtsPerVertex +
numEdges * nbPtsPerEdge +
numFaces * nbPtsPerFace +
numVolumes * nbPtsPerVolume )