Feel++ 0.111.0-preview.14
Finite Element Embedded Library in C++
Feel::GeoND< Dim, GEOSHAPE, T, IndexT, POINTTYPE, UseMeasuresStorage > Class Template Reference

Base class for Multi-dimensional basis Geometrical Entities. More...

+ Inheritance diagram for Feel::GeoND< Dim, GEOSHAPE, T, IndexT, POINTTYPE, UseMeasuresStorage >:
+ Collaboration diagram for Feel::GeoND< Dim, GEOSHAPE, T, IndexT, POINTTYPE, UseMeasuresStorage >:

Classes

struct  GetGm
 
struct  GetImMeasure
 
struct  tt
 

Public Types

typedef super::edge_permutation_type edge_permutation_type
 
typedef self_type element_type
 
typedef super::face_permutation_type face_permutation_type
 
typedef super::face_type face_type
 
typedef GEOSHAPE GeoShape
 
typedef GetGm< 1 >::ptrtype gm1_ptrtype
 
typedef GetGm< 1 >::type gm1_type
 
typedef GetGm< nOrder >::ptrtype gm_ptrtype
 
typedef GetGm< nOrder >::type gm_type
 
using index_type = IndexT
 
typedef matrix_node< value_type >::type matrix_node_type
 
typedef node< value_type >::type node_type
 
typedef mpl::if_< mpl::equal_to< mpl::int_< nDim >, mpl::int_< 1 > >, mpl::identity< vertex_permutation_type >, typenamempl::if_< mpl::equal_to< mpl::int_< nDim >, mpl::int_< 2 > >, mpl::identity< edge_permutation_type >, mpl::identity< face_permutation_type > >::type >::type::type permutation_type
 
typedef std::vector< point_type * >::const_iterator point_const_iterator
 
typedef std::vector< point_type * >::iterator point_iterator
 
using point_type = PointType
 
typedef POINTTYPE PointType
 
typedef GetImMeasure< 1 >::type quad_meas1_type
 
typedef GetImMeasure< nOrder >::type quad_meas_type
 
typedef gm1_type::super::reference_convex_type reference_convex1_type
 
typedef gm_type::super::reference_convex_type reference_convex_type
 
typedef GeoND< Dim, GEOSHAPE, value_type, index_type, POINTTYPE, UseMeasuresStorage > self_type
 
using size_type = index_type
 
typedef T value_type
 
typedef super::vertex_permutation_type vertex_permutation_type
 
- Public Types inherited from Feel::GeoEntity< GEOSHAPE, double >
typedef GEOSHAPE super
 
typedef GeoEntity< GEOSHAPE, double, uint32_type > GeoShape
 
typedef GeoEntity< GEOSHAPE, double, uint32_type > self_type
 
typedef double value_type
 
using index_type = uint32_type
 
using size_type = index_type
 
typedef super::topological_face_type face_type
 
typedef face_type GeoBShape
 
typedef Entity::edge_permutation_type edge_permutation_type
 
typedef Entity::face_permutation_type face_permutation_type
 
typedef GEOSHAPE convex_type
 
using reference_convex_type = Reference< GEOSHAPE, nDim, nOrder, nRealDim, TT >
 
using marker_type = Marker< flag_type >
 

Public Member Functions

void applyDisplacement (int i, ublas::vector< double > const &u)
 
FEELPP_DEPRECATED void applyDisplacementG (int i, ublas::vector< double > const &u)
 
node_type barycenter () const
 
point_iterator beginPoint ()
 
point_const_iterator beginPoint () const
 
template<typename QuadType , typename CtxFaceType >
GeoND< Dim, GEOSHAPE, T, IndexT, POINTTYPE, UseMeasuresStorage >::value_type computeFaceMeasureImpl (QuadType const &thequad, std::shared_ptr< CtxFaceType > &ctxf, uint16_type f) const
 
point_iterator endPoint ()
 
point_const_iterator endPoint () const
 
void exchangePoints (const uint16_type otn[numPoints])
 Exchange Points. More...
 
node_type faceBarycenter (uint16_type f) const
 
FEELPP_DEPRECATED matrix_node_type faceBarycenters () const
 
value_type faceMeasure (uint16_type f) const
 
Eigen::Matrix< value_type, numTopologicalFaces, 1 > faceMeasures () const
 
uint16_type faceToOppositePoint (uint16_type const _localFace, uint16_type const _point) const
 faceToOppositePoint(i,j) = localId of jth opposite point to ith local face More...
 
matrix_node_type G () const
 matrix of geometric nodes retrieve the matrix of geometric nodes (Dim x NumPoints) the matrix is column oriented, the column i contains the coordinate of the i-th geometric node of the element More...
 
 GeoND ()
 default constructor
 
 GeoND (GeoND &&e)
 
 GeoND (GeoND const &e)=default
 
 GeoND (size_type id)
 constructor from an id More...
 
gm_ptrtype gm () const
 return the geometric mapping if a mesh was set
 
gm1_ptrtype gm1 () const
 return the geometric mapping if a mesh was set
 
value_type h () const
 get the max length of the edges of the element More...
 
size_type hasNeighbor (uint16_type n) const
 
bool hasPoints () const
 
bool hasPointWithMarker () const
 
value_type hEdge (uint16_type f) const
 
value_type hFace (uint16_type f) const
 get the max length of the edge in the local face f More...
 
value_type hMin () const
 get the minimum edge length in the element More...
 
bool isAnticlockwiseOriented () const
 Determines if the local numbering of a 2D element is oriented anticlockwise.
 
bool isNeighbor (self_type const &G) const
 
bool isValid () const
 check if an element is valid: check points are != nullptr
 
value_type measure () const override
 
MeshBase const * mesh () const
 
size_type neighbor (uint16_type n) const
 Neighbors are stored as pointers and some of them can be null pointers if the corresponding face is on the boundary. More...
 
uint16_type nNeighbors () const
 the number of neighbors is equal to the number of faces. More...
 
uint16_type nOppositePointsPerFace () const
 get the number of opposite points per face More...
 
node_type normal (uint16_type f) const
 
matrix_node_type normals () const
 
uint16_type nPoints () const
 
size_type numberOfPointElementNeighbors () const
 
GeoND & operator= (GeoND &&e)
 
GeoND & operator= (GeoND const &)=default
 
permutation_type permutation (uint16_type) const
 
virtual super::template PermutationSubEntity< 1 > permutation (uint16_type, mpl::int_< 1 >) const
 
point_type & point (uint16_type i)
 It returns the reference to an point object (possibly derived from Geo0D)
 
point_type const & point (uint16_type i) const
 It returns the reference to an point object (possibly derived from Geo0D)
 
std::set< size_type > pointElementNeighborIds () const
 
point_type * pointPtr (uint16_type i)
 It returns the pointer to an point object (possibly derived from Geo0D)
 
point_type const * pointPtr (uint16_type i) const
 It returns the pointer to an point object (possibly derived from Geo0D)
 
std::vector< point_type * > & points ()
 
std::vector< point_type * > const & points () const
 
point_type & reversepoint (uint16_type const i)
 The ith point (starting from the end) More...
 
point_type const & reversepoint (uint16_type const i) const
 The ith point (starting from the end) More...
 
void setCommonData (GeoNDCommon< self_type > *commonData)
 set common data
 
void setMeasurePointElementNeighbors (value_type meas)
 
void setNeighbor (uint16_type n, size_type neigh_id)
 set the n -th neighbor with neigh
 
void setPoint (uint16_type i, point_type &p)
 Inserts a point. More...
 
FEELPP_DEPRECATED void setPointCoordG (int i, ublas::vector< double > const &u)
 
std::ostream & showMe (bool verbose=false, std::ostream &c=std::cout) const
 show information about the geoND More...
 
void swapPoints (const uint16_type &pt1, const uint16_type &pt2)
 Swap Points. More...
 
void update ()
 
template<typename TheNodesType >
void updateG (TheNodesType &G, std::enable_if_t< is_eigen_matrix_v< TheNodesType > > *=nullptr) const
 update G with all points of the element
 
template<typename TheNodesType >
void updateVertices (TheNodesType &G, std::enable_if_t< is_eigen_matrix_v< TheNodesType > > *=nullptr) const
 update G with all vertices of the element
 
template<typename QuadType , typename CtxType , typename CtxFaceType >
void updateWithCtx (QuadType const &thequad, std::shared_ptr< CtxType > &ctx, std::shared_ptr< CtxFaceType > &ctxf) const
 
template<typename CtxType , typename CtxFaceType >
void updateWithCtx1 (quad_meas1_type const &thequad, std::shared_ptr< CtxType > &ctx, std::shared_ptr< CtxFaceType > &ctxf) const
 
matrix_node_type vertices () const
 matrix of vertices geometric nodes retrieve the matrix of geometric nodes (Dim x NumPoints) the matrix is column oriented, the column i contains the coordinate of the i-th geometric node of the element More...
 
 ~GeoND () override
 destructor, make it virtual for derived classes
 
- Public Member Functions inherited from Feel::GeoEntity< GEOSHAPE, double >
self_type & addElement (size_type e, int id_in_element=0)
 add a new element to which the point belongs
 
size_type numberOfElements () const
 
std::set< std::pair< size_type, uint16_type > > const & elements () const
 
std::set< std::pair< size_type, uint16_type > > & elements ()
 
virtual void setTags (std::vector< int > const &tags)
 set the tags associated to the points More...
 
std::map< uint16_type, marker_type > const & markers () const
 return all markers
 
void setMarkers (std::map< uint16_type, marker_type > const &markers)
 set all markers
 
bool hasMarkerType (uint16_type k) const
 return true if has marker type id k
 
bool hasMarker (uint16_type k) const
 return true if has marker type id k
 
bool hasMarker () const
 
marker_type const & marker (uint16_type k) const
 return marker with type id k
 
marker_type const & marker () const
 
void setMarker (uint16_type k, flag_type v)
 set marker type id k with flag v
 
void setMarker (uint16_type k, TT const &vs)
 set marker type id k with flag v
 
void setMarker (flag_type v)
 
void setMarker (TT const &vs)
 
void addMarker (uint16_type k, flag_type v)
 add flag v to the marker type id k
 
void addMarker (uint16_type k, TT const &vs)
 add flags vs to the marker type id k
 
void addMarker (flag_type v)
 
void addMarker (TT const &vs)
 
bool hasMarker2 () const
 
marker_type const & marker2 () const
 
void setMarker2 (flag_type v)
 
bool hasMarker3 () const
 
marker_type const & marker3 () const
 
void setMarker3 (flag_type v)
 
 GeoEntity ()
 
 GeoEntity (size_type i, size_type geometry=Geometry, size_type shape=Shape, size_type context=MESH_ENTITY_INTERNAL)
 
 GeoEntity (GeoEntity const &__me)=default
 
 GeoEntity (GeoEntity &&__me)
 
GeoEntity & operator= (GeoEntity const &__me)=default
 
GeoEntity & operator= (GeoEntity &&__me)
 
 ~GeoEntity () override
 
bool operator== (GeoEntity const &e) const
 
bool operator< (GeoEntity const &e) const
 
bool operator< (size_type __i) const
 
size_type id () const noexcept
 
constexpr uint16_type refDim () const
 the dimension of the reference shape More...
 
constexpr uint16_type nPoints () const
 number of points on the reference shape More...
 
constexpr uint16_type nVertices () const
 number of vertices on the reference shape More...
 
constexpr uint16_type nEdges () const
 number of edges on the reference shape More...
 
constexpr uint16_type nFaces () const
 number of faces on the reference shape More...
 
constexpr uint16_type nTopologicalFaces () const
 number of topological faces on the reference shape More...
 
constexpr uint16_type nGeometricFaces () const
 number of faces on the reference shape More...
 
constexpr uint16_type nNormals () const
 number of normals on the reference shape More...
 
bool hasShape (size_type __shape) const
 
bool isAVolume () const
 
bool isASurface () const
 
bool isALine () const
 
bool isAPoint () const
 
bool isAPointShape () const
 
bool isALineShape () const
 
bool isATriangleShape () const
 
bool isAQuadrangleShape () const
 
bool isATetrahedraShape () const
 
bool isAHexahedraShape () const
 
bool isLinear () const
 
bool isBilinear () const
 
bool isQuadratic () const
 
bool isInternal () const
 
bool isOnBoundary () const noexcept
 Tells if item is on the boundary. More...
 
uint16_type boundaryEntityDimension () const noexcept
 maximum dimension of the entity of the element touching the boundary
 
bool isGhostCell () const noexcept
 
rank_type processId () const noexcept
 
void setProcessId (rank_type pid) noexcept
 set the processor id of the entity & More...
 
rank_type pidInPartition () const noexcept
 
void setProcessIdInPartition (rank_type pid) noexcept
 set the processor id of the entity & More...
 
rank_type partitionId () const noexcept
 
rank_type numberOfPartitions () const noexcept
 
rank_type numberOfNeighborPartitions () const
 
bool isLinkedToOtherPartitions () const
 
size_type idInOthersPartitions (rank_type pid) const
 
std::map< rank_type, size_type > const & idInOthersPartitions () const noexcept
 
std::map< rank_type, size_type > const & neighborProcessIds () const noexcept
 
void clearIdInOthersPartitions ()
 clear id in others partitions container
 
bool active () const
 
void setId (size_type id)
 
void setOnBoundary (bool b, uint16_type ent_d=invalid_uint16_type_value)
 set the boundary flag More...
 
void setIdInOtherPartitions (rank_type pid, size_type id)
 set id in a partition pid of the entity
 
void setIdInOtherPartitions (std::map< rank_type, size_type > const &iop)
 set (partition,id) in other partitions of the entity
 
void setIdInOtherPartitions (std::map< rank_type, size_type > &&iop)
 set (partition,id) in other partitions of the entity
 
void setNeighborProcessIds (Q &&pids)
 
void setNeighborPartitionIds (std::vector< rank_type > const &npids)
 
void addNeighborPartitionId (rank_type p)
 

Static Public Member Functions

static uint16_type fToP (uint16_type const _localFace, uint16_type const _point)
 Get the local id of the point in the element. More...
 
static quad_meas_type imMeasure ()
 
static quad_meas1_type imMeasureOrder1 ()
 
- Static Public Member Functions inherited from Feel::GeoEntity< GEOSHAPE, double >
static uint16_type eToP (uint16_type const __localEdge, uint16_type const __point)
 eToP(i,j) = localId of jth point on ith local edge
 
static uint16_type fToP (uint16_type const __localFace, uint16_type const __point)
 fToP(i,j) = localId of jth point on ith local edge
 
static uint16_type fToE (uint16_type const __localFace, uint16_type const __edge)
 fToE(i,j) = localId of jth edge on ith local face
 

Static Public Attributes

static constexpr uint16_type meas_quad_order = ( nOrder - 1 ) * nDim
 
static const uint16_type nDim = super::nDim
 
static const uint16_type nOrder = super::nOrder
 
static const uint16_type nRealDim = super::nRealDim
 
static const int numEdges = super::numEdges
 
static const int numFaces = super::numFaces
 
static const uint16_type numLocalEdges = super::numEdges
 
static const uint16_type numLocalPoints = super::numPoints
 
static const uint16_type numLocalVertices = super::numVertices
 
static const uint16_type numNeighbors = super::numTopologicalFaces
 
static const uint16_type numPoints = super::numPoints
 
static const int numTopologicalFaces = super::numTopologicalFaces
 
static const uint16_type numVertices = super::numVertices
 
static const size_type Shape = super::Shape
 
- Static Public Attributes inherited from Feel::GeoEntity< GEOSHAPE, double >
static const size_type Shape
 
static const size_type Geometry
 
static const uint16_type nDim
 
static const uint16_type nOrder
 
static const uint16_type nRealDim
 
static const uint16_type numVertices
 
static const uint16_type numFaces
 
static const uint16_type numGeometricFaces
 
static const uint16_type numTopologicalFaces
 
static const uint16_type numEdges
 
static const uint16_type numNormals
 
static const uint16_type numPoints
 
static const uint16_type nbPtsPerVertex
 
static const uint16_type nbPtsPerEdge
 
static const uint16_type nbPtsPerFace
 
static const uint16_type nbPtsPerVolume
 
static const bool is_simplex
 
static const bool is_hypercube
 

Friends

class boost::serialization::access
 

Detailed Description

template<uint16_type Dim, typename GEOSHAPE, typename T = double, typename IndexT = uint32_type, typename POINTTYPE = Geo0D<Dim, T, IndexT>, bool UseMeasuresStorage = false>
class Feel::GeoND< Dim, GEOSHAPE, T, IndexT, POINTTYPE, UseMeasuresStorage >

Base class for Multi-dimensional basis Geometrical Entities.

Constructor & Destructor Documentation

◆ GeoND()

template<uint16_type Dim, typename GEOSHAPE , typename T = double, typename IndexT = uint32_type, typename POINTTYPE = Geo0D<Dim, T, IndexT>, bool UseMeasuresStorage = false>
Feel::GeoND< Dim, GEOSHAPE, T, IndexT, POINTTYPE, UseMeasuresStorage >::GeoND ( size_type  id)
explicit

constructor from an id

Parameters
ididentifier for the element to store

Member Function Documentation

◆ barycenter()

template<uint16_type Dim, typename GEOSHAPE , typename T = double, typename IndexT = uint32_type, typename POINTTYPE = Geo0D<Dim, T, IndexT>, bool UseMeasuresStorage = false>
node_type Feel::GeoND< Dim, GEOSHAPE, T, IndexT, POINTTYPE, UseMeasuresStorage >::barycenter ( ) const
Returns
the barycenter of the element

◆ exchangePoints()

template<uint16_type Dim, typename GEOSHAPE , typename T , typename IndexT , typename POINTTYPE , bool UseMeasuresStorage>
void Feel::GeoND< Dim, GEOSHAPE, T, IndexT, POINTTYPE, UseMeasuresStorage >::exchangePoints ( const uint16_type  otn[numPoints])

Exchange Points.

Exchanges points according to a list of old2new local id numbering ! old2new[i] is the new local id of a point whose old local id was ! i+1 (remember the numbering from 1 of the id's!. This is a member function to be used ONLY by routines for checking or amending meshes. You must give uint16_type (which start

◆ faceBarycenter()

template<uint16_type Dim, typename GEOSHAPE , typename T = double, typename IndexT = uint32_type, typename POINTTYPE = Geo0D<Dim, T, IndexT>, bool UseMeasuresStorage = false>
node_type Feel::GeoND< Dim, GEOSHAPE, T, IndexT, POINTTYPE, UseMeasuresStorage >::faceBarycenter ( uint16_type  f) const
Returns
the barycenter at the faces of the element

◆ faceBarycenters()

template<uint16_type Dim, typename GEOSHAPE , typename T = double, typename IndexT = uint32_type, typename POINTTYPE = Geo0D<Dim, T, IndexT>, bool UseMeasuresStorage = false>
FEELPP_DEPRECATED matrix_node_type Feel::GeoND< Dim, GEOSHAPE, T, IndexT, POINTTYPE, UseMeasuresStorage >::faceBarycenters ( ) const
Returns
the barycenters at the faces of the element

◆ faceToOppositePoint()

template<uint16_type Dim, typename GEOSHAPE , typename T = double, typename IndexT = uint32_type, typename POINTTYPE = Geo0D<Dim, T, IndexT>, bool UseMeasuresStorage = false>
uint16_type Feel::GeoND< Dim, GEOSHAPE, T, IndexT, POINTTYPE, UseMeasuresStorage >::faceToOppositePoint ( uint16_type const  _localFace,
uint16_type const  _point 
) const

faceToOppositePoint(i,j) = localId of jth opposite point to ith local face

Returns
the localId of _point-th opposite point to _localFace-th local face

◆ fToP()

template<uint16_type Dim, typename GEOSHAPE , typename T = double, typename IndexT = uint32_type, typename POINTTYPE = Geo0D<Dim, T, IndexT>, bool UseMeasuresStorage = false>
static uint16_type Feel::GeoND< Dim, GEOSHAPE, T, IndexT, POINTTYPE, UseMeasuresStorage >::fToP ( uint16_type const  _localFace,
uint16_type const  _point 
)
static

Get the local id of the point in the element.

Parameters
_localFacelocal id of a face in the element
_pointlocal id of a point in the face
Returns
the local id of the point in the element

◆ G()

template<uint16_type Dim, typename GEOSHAPE , typename T = double, typename IndexT = uint32_type, typename POINTTYPE = Geo0D<Dim, T, IndexT>, bool UseMeasuresStorage = false>
matrix_node_type Feel::GeoND< Dim, GEOSHAPE, T, IndexT, POINTTYPE, UseMeasuresStorage >::G ( ) const

matrix of geometric nodes retrieve the matrix of geometric nodes (Dim x NumPoints) the matrix is column oriented, the column i contains the coordinate of the i-th geometric node of the element

Returns
the matrix of geometric nodes

Referenced by Feel::GeoND< Dim, GEOSHAPE, T, IndexT, POINTTYPE, UseMeasuresStorage >::updateG(), Feel::GeoND< Dim, GEOSHAPE, T, IndexT, POINTTYPE, UseMeasuresStorage >::updateVertices(), and Feel::GeoND< Dim, GEOSHAPE, T, IndexT, POINTTYPE, UseMeasuresStorage >::vertices().

◆ h()

template<uint16_type Dim, typename GEOSHAPE , typename T = double, typename IndexT = uint32_type, typename POINTTYPE = Geo0D<Dim, T, IndexT>, bool UseMeasuresStorage = false>
value_type Feel::GeoND< Dim, GEOSHAPE, T, IndexT, POINTTYPE, UseMeasuresStorage >::h ( ) const

get the max length of the edges of the element

Returns
the max length of the edges of the element

◆ hasNeighbor()

template<uint16_type Dim, typename GEOSHAPE , typename T = double, typename IndexT = uint32_type, typename POINTTYPE = Geo0D<Dim, T, IndexT>, bool UseMeasuresStorage = false>
size_type Feel::GeoND< Dim, GEOSHAPE, T, IndexT, POINTTYPE, UseMeasuresStorage >::hasNeighbor ( uint16_type  n) const
Returns
true if a neighbor has been registered

◆ hasPoints()

template<uint16_type Dim, typename GEOSHAPE , typename T = double, typename IndexT = uint32_type, typename POINTTYPE = Geo0D<Dim, T, IndexT>, bool UseMeasuresStorage = false>
bool Feel::GeoND< Dim, GEOSHAPE, T, IndexT, POINTTYPE, UseMeasuresStorage >::hasPoints ( ) const
Returns
true if points have been inserted in elements, false otherwise

◆ hasPointWithMarker()

template<uint16_type Dim, typename GEOSHAPE , typename T = double, typename IndexT = uint32_type, typename POINTTYPE = Geo0D<Dim, T, IndexT>, bool UseMeasuresStorage = false>
bool Feel::GeoND< Dim, GEOSHAPE, T, IndexT, POINTTYPE, UseMeasuresStorage >::hasPointWithMarker ( ) const
Returns
true if the element has at least a point with marker1 active

◆ hFace()

template<uint16_type Dim, typename GEOSHAPE , typename T = double, typename IndexT = uint32_type, typename POINTTYPE = Geo0D<Dim, T, IndexT>, bool UseMeasuresStorage = false>
value_type Feel::GeoND< Dim, GEOSHAPE, T, IndexT, POINTTYPE, UseMeasuresStorage >::hFace ( uint16_type  f) const

get the max length of the edge in the local face f

Parameters
flocal id of the face
Returns
the max length of the edges of the local face

◆ hMin()

template<uint16_type Dim, typename GEOSHAPE , typename T = double, typename IndexT = uint32_type, typename POINTTYPE = Geo0D<Dim, T, IndexT>, bool UseMeasuresStorage = false>
value_type Feel::GeoND< Dim, GEOSHAPE, T, IndexT, POINTTYPE, UseMeasuresStorage >::hMin ( ) const

get the minimum edge length in the element

Returns
the minimum edge length in the element

◆ imMeasure()

template<uint16_type Dim, typename GEOSHAPE , typename T = double, typename IndexT = uint32_type, typename POINTTYPE = Geo0D<Dim, T, IndexT>, bool UseMeasuresStorage = false>
static quad_meas_type Feel::GeoND< Dim, GEOSHAPE, T, IndexT, POINTTYPE, UseMeasuresStorage >::imMeasure ( )
static
Returns
a quadrature to compute the measure of the element

◆ imMeasureOrder1()

template<uint16_type Dim, typename GEOSHAPE , typename T = double, typename IndexT = uint32_type, typename POINTTYPE = Geo0D<Dim, T, IndexT>, bool UseMeasuresStorage = false>
static quad_meas1_type Feel::GeoND< Dim, GEOSHAPE, T, IndexT, POINTTYPE, UseMeasuresStorage >::imMeasureOrder1 ( )
static
Returns
a quadrature to compute the measure of the order 1 approximation of the element

◆ measure()

template<uint16_type Dim, typename GEOSHAPE , typename T = double, typename IndexT = uint32_type, typename POINTTYPE = Geo0D<Dim, T, IndexT>, bool UseMeasuresStorage = false>
value_type Feel::GeoND< Dim, GEOSHAPE, T, IndexT, POINTTYPE, UseMeasuresStorage >::measure ( ) const
overridevirtual

◆ mesh()

template<uint16_type Dim, typename GEOSHAPE , typename T = double, typename IndexT = uint32_type, typename POINTTYPE = Geo0D<Dim, T, IndexT>, bool UseMeasuresStorage = false>
MeshBase const * Feel::GeoND< Dim, GEOSHAPE, T, IndexT, POINTTYPE, UseMeasuresStorage >::mesh ( ) const

◆ neighbor()

template<uint16_type Dim, typename GEOSHAPE , typename T = double, typename IndexT = uint32_type, typename POINTTYPE = Geo0D<Dim, T, IndexT>, bool UseMeasuresStorage = false>
size_type Feel::GeoND< Dim, GEOSHAPE, T, IndexT, POINTTYPE, UseMeasuresStorage >::neighbor ( uint16_type  n) const

Neighbors are stored as pointers and some of them can be null pointers if the corresponding face is on the boundary.

Returns
the pair neighbor n index and process id it belongs to

◆ nNeighbors()

template<uint16_type Dim, typename GEOSHAPE , typename T = double, typename IndexT = uint32_type, typename POINTTYPE = Geo0D<Dim, T, IndexT>, bool UseMeasuresStorage = false>
uint16_type Feel::GeoND< Dim, GEOSHAPE, T, IndexT, POINTTYPE, UseMeasuresStorage >::nNeighbors ( ) const

the number of neighbors is equal to the number of faces.

Neighbors are stored as pointers and some of them can be null pointers if the corresponding face is on the boundary.

Returns
the number of neighbors

◆ nOppositePointsPerFace()

template<uint16_type Dim, typename GEOSHAPE , typename T = double, typename IndexT = uint32_type, typename POINTTYPE = Geo0D<Dim, T, IndexT>, bool UseMeasuresStorage = false>
uint16_type Feel::GeoND< Dim, GEOSHAPE, T, IndexT, POINTTYPE, UseMeasuresStorage >::nOppositePointsPerFace ( ) const

get the number of opposite points per face

Returns
the number of opposite points per face

◆ normal()

template<uint16_type Dim, typename GEOSHAPE , typename T = double, typename IndexT = uint32_type, typename POINTTYPE = Geo0D<Dim, T, IndexT>, bool UseMeasuresStorage = false>
node_type Feel::GeoND< Dim, GEOSHAPE, T, IndexT, POINTTYPE, UseMeasuresStorage >::normal ( uint16_type  f) const
Returns
the normal at the barycenter of the face f

◆ normals()

template<uint16_type Dim, typename GEOSHAPE , typename T = double, typename IndexT = uint32_type, typename POINTTYPE = Geo0D<Dim, T, IndexT>, bool UseMeasuresStorage = false>
matrix_node_type Feel::GeoND< Dim, GEOSHAPE, T, IndexT, POINTTYPE, UseMeasuresStorage >::normals ( ) const
Returns
the normals at the barycenter of the faces

◆ nPoints()

template<uint16_type Dim, typename GEOSHAPE , typename T = double, typename IndexT = uint32_type, typename POINTTYPE = Geo0D<Dim, T, IndexT>, bool UseMeasuresStorage = false>
uint16_type Feel::GeoND< Dim, GEOSHAPE, T, IndexT, POINTTYPE, UseMeasuresStorage >::nPoints ( ) const
Returns
the number of points in convex

◆ numberOfPointElementNeighbors()

template<uint16_type Dim, typename GEOSHAPE , typename T = double, typename IndexT = uint32_type, typename POINTTYPE = Geo0D<Dim, T, IndexT>, bool UseMeasuresStorage = false>
size_type Feel::GeoND< Dim, GEOSHAPE, T, IndexT, POINTTYPE, UseMeasuresStorage >::numberOfPointElementNeighbors ( ) const
Returns
the number of point element neighbors

◆ permutation() [1/2]

template<uint16_type Dim, typename GEOSHAPE , typename T = double, typename IndexT = uint32_type, typename POINTTYPE = Geo0D<Dim, T, IndexT>, bool UseMeasuresStorage = false>
permutation_type Feel::GeoND< Dim, GEOSHAPE, T, IndexT, POINTTYPE, UseMeasuresStorage >::permutation ( uint16_type  ) const
Returns
permutation

◆ permutation() [2/2]

template<uint16_type Dim, typename GEOSHAPE , typename T = double, typename IndexT = uint32_type, typename POINTTYPE = Geo0D<Dim, T, IndexT>, bool UseMeasuresStorage = false>
virtual super::template PermutationSubEntity< 1 > Feel::GeoND< Dim, GEOSHAPE, T, IndexT, POINTTYPE, UseMeasuresStorage >::permutation ( uint16_type  ,
mpl::int_< 1 >   
) const
virtual
Returns
identity permutation of entity co-dim 1 (topological faces)

◆ pointElementNeighborIds()

template<uint16_type Dim, typename GEOSHAPE , typename T = double, typename IndexT = uint32_type, typename POINTTYPE = Geo0D<Dim, T, IndexT>, bool UseMeasuresStorage = false>
std::set< size_type > Feel::GeoND< Dim, GEOSHAPE, T, IndexT, POINTTYPE, UseMeasuresStorage >::pointElementNeighborIds ( ) const
Returns
the set of ids of point element neighbors

◆ points() [1/2]

template<uint16_type Dim, typename GEOSHAPE , typename T = double, typename IndexT = uint32_type, typename POINTTYPE = Geo0D<Dim, T, IndexT>, bool UseMeasuresStorage = false>
std::vector< point_type * > & Feel::GeoND< Dim, GEOSHAPE, T, IndexT, POINTTYPE, UseMeasuresStorage >::points ( )
Returns
points set

◆ points() [2/2]

template<uint16_type Dim, typename GEOSHAPE , typename T = double, typename IndexT = uint32_type, typename POINTTYPE = Geo0D<Dim, T, IndexT>, bool UseMeasuresStorage = false>
std::vector< point_type * > const & Feel::GeoND< Dim, GEOSHAPE, T, IndexT, POINTTYPE, UseMeasuresStorage >::points ( ) const
Returns
points set with constness

◆ reversepoint() [1/2]

template<uint16_type Dim, typename GEOSHAPE , typename T = double, typename IndexT = uint32_type, typename POINTTYPE = Geo0D<Dim, T, IndexT>, bool UseMeasuresStorage = false>
point_type & Feel::GeoND< Dim, GEOSHAPE, T, IndexT, POINTTYPE, UseMeasuresStorage >::reversepoint ( uint16_type const  i)

The ith point (starting from the end)

It returns the reference to an point object (possibly derived from Geo0D). It starts from the last point, yet it follows the rule: vertices first. It may be used to access the points of a Geometry Element in a reverse way (i.e. with the opposite GeoElement permutation)

◆ reversepoint() [2/2]

template<uint16_type Dim, typename GEOSHAPE , typename T = double, typename IndexT = uint32_type, typename POINTTYPE = Geo0D<Dim, T, IndexT>, bool UseMeasuresStorage = false>
point_type const & Feel::GeoND< Dim, GEOSHAPE, T, IndexT, POINTTYPE, UseMeasuresStorage >::reversepoint ( uint16_type const  i) const

The ith point (starting from the end)

It returns the reference to an point object (possibly derived from Geo0D). It starts from the last point, yet it follows the rule: vertices first. It may be used to access the points of a Geometry Element in a reverse way (i.e. with the opposite GeoElement permutation)

◆ setPoint()

template<uint16_type Dim, typename GEOSHAPE , typename T , typename IndexT , typename POINTTYPE , bool UseMeasuresStorage>
void Feel::GeoND< Dim, GEOSHAPE, T, IndexT, POINTTYPE, UseMeasuresStorage >::setPoint ( uint16_type  i,
point_type &  p 
)

Inserts a point.

Uses point references put point

◆ showMe()

template<uint16_type Dim, typename GEOSHAPE , typename T , typename IndexT , typename POINTTYPE , bool UseMeasuresStorage>
std::ostream & Feel::GeoND< Dim, GEOSHAPE, T, IndexT, POINTTYPE, UseMeasuresStorage >::showMe ( bool  verbose = false,
std::ostream &  c = std::cout 
) const

show information about the geoND

Parameters
verbosetrue if verbose mode, false otherwise
coutput stream
Returns
the output stream

◆ swapPoints()

template<uint16_type Dim, typename GEOSHAPE , typename T , typename IndexT , typename POINTTYPE , bool UseMeasuresStorage>
void Feel::GeoND< Dim, GEOSHAPE, T, IndexT, POINTTYPE, UseMeasuresStorage >::swapPoints ( const uint16_type &  pt1,
const uint16_type &  pt2 
)

Swap Points.

This is a member function to be used ONLY by routines for checking or amending meshes. You must give the local id

Parameters
pt11st point to swap with 2nd point
pt22nd point to swap with 1st point

◆ vertices()

template<uint16_type Dim, typename GEOSHAPE , typename T = double, typename IndexT = uint32_type, typename POINTTYPE = Geo0D<Dim, T, IndexT>, bool UseMeasuresStorage = false>
matrix_node_type Feel::GeoND< Dim, GEOSHAPE, T, IndexT, POINTTYPE, UseMeasuresStorage >::vertices ( ) const

matrix of vertices geometric nodes retrieve the matrix of geometric nodes (Dim x NumPoints) the matrix is column oriented, the column i contains the coordinate of the i-th geometric node of the element

Returns
the matrix of vertices geometric nodes

References Feel::GeoND< Dim, GEOSHAPE, T, IndexT, POINTTYPE, UseMeasuresStorage >::G().