Feel++ 0.111.0-preview.14
Finite Element Embedded Library in C++
Feel::Hypercube< Dim, Order, RDim > Class Template Reference
+ Inheritance diagram for Feel::Hypercube< Dim, Order, RDim >:
+ Collaboration diagram for Feel::Hypercube< 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< quadrangular_faces >, 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 mpl::vector< Feel::details::point< orderSquare >, Feel::details::line< orderSquare >, Feel::details::quad< orderSquare >, Feel::details::hexa< orderSquare > > map_entity_to_point_t
 
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<uint16_type shape_dim, uint16_type O = Order, uint16_type R = nDim>
using shape = Hypercube< shape_dim, O, R >
 
template<uint16_type shape_dim, uint16_type O = Order, uint16_type R = nDim>
using shape_t = Hypercube< 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
 
 Hypercube (Hypercube &&)=default
 
 Hypercube (Hypercube const &)=default
 
Hypercube & operator= (Hypercube &&)=default
 
Hypercube & operator= (Hypercube 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 int e2p (int e, int 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 int f2e (int f, int e)
 Given a face f in the element and the local index e of an edge in the face f,. More...
 
static int f2p (int f, int p)
 Given a face f in the element and the local index p of a point in the face f ,. More...
 
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 uint32_type polyDims (int n)
 
static std::string type ()
 

Static Public Attributes

static const size_type Geometry = mpl::at<geometries_t, mpl::int_<Dim> >::type::value
 
static const bool is_hypercube = true
 
static const bool is_simplex = false
 
static const uint16_type nbPtsPerEdge = ( nOrder==0 )?( ( nDim==1 )?1:0 ):(uint16_type)mpl::at<points_edge_t, mpl::int_<nDim> >::type::value
 
static const uint16_type nbPtsPerFace = ( nOrder==0 )?( ( nDim==2 )?1:0 ):(uint16_type)mpl::at<points_face_t, mpl::int_<nDim> >::type::value
 
static const uint16_type nbPtsPerVertex = ( nOrder==0 )?0:1
 
static const uint16_type nbPtsPerVolume = ( nOrder == 0 ) ? ( ( nDim == 3 ) ? 1 : 0 ) : (uint16_type)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 uint16_type numEdges = mpl::at<edges_t, mpl::int_<Dim> >::type::value
 
static const uint16_type numFaces = mpl::at<geo_faces_index_t, mpl::int_<Dim> >::type::value
 
static const uint16_type numGeometricFaces = mpl::at<geo_faces_index_t, mpl::int_<nDim> >::type::value
 
static const uint16_type numNormals = mpl::at<normals_t, mpl::int_<nDim> >::type::value
 
static const uint16_type numPoints
 
static const uint16_type numTopologicalFaces = mpl::at<faces_index_t, mpl::int_<nDim> >::type::value
 
static const uint16_type numVertices = mpl::at<vertices_t, mpl::int_<Dim> >::type::value
 
static const uint16_type numVolumes = mpl::at<volumes_t, mpl::int_<nDim> >::type::value
 
static const uint16_type orderSquare
 
static const uint16_type real_dimension = RDim
 
static const size_type Shape = mpl::at<shapes_t, mpl::int_<Dim> >::type::value
 
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
 

Member Function Documentation

◆ dimension()

template<uint16_type Dim, uint16_type Order = 1, uint16_type RDim = Dim>
uint16_type Feel::Hypercube< 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 int Feel::Hypercube< Dim, Order, RDim >::e2p ( int  e,
int  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 int Feel::Hypercube< Dim, Order, RDim >::f2e ( int  f,
int  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.

◆ f2p()

template<uint16_type Dim, uint16_type Order = 1, uint16_type RDim = Dim>
static int Feel::Hypercube< Dim, Order, RDim >::f2p ( int  f,
int  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::Hypercube< Dim, Order, RDim >::name ( )
static
Returns
the name of the simplex product

◆ topologicalDimension()

template<uint16_type Dim, uint16_type Order = 1, uint16_type RDim = Dim>
uint16_type Feel::Hypercube< 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::Hypercube< Dim, Order, RDim >::numPoints
static
Initial value:
= ( numVertices * nbPtsPerVertex +
numEdges * nbPtsPerEdge +
numFaces * nbPtsPerFace +
numVolumes * nbPtsPerVolume )

◆ orderSquare

template<uint16_type Dim, uint16_type Order = 1, uint16_type RDim = Dim>
const uint16_type Feel::Hypercube< Dim, Order, RDim >::orderSquare
static
Initial value:
= boost::mpl::if_<boost::mpl::greater< boost::mpl::int_<Order>,
typename boost::mpl::if_<boost::mpl::less< boost::mpl::int_<Order>,
>::type
>::type::value