Feel++ 0.111.0-preview.14
Finite Element Embedded Library in C++
Feel::GeoElement0D< Dim, SubFace, T, IndexT > Class Template Reference

Class for Points and Vertices. More...

+ Inheritance diagram for Feel::GeoElement0D< Dim, SubFace, T, IndexT >:
+ Collaboration diagram for Feel::GeoElement0D< Dim, SubFace, T, IndexT >:

Public Types

using element_type = self_type
 
typedef Geo0D< Dim, T, IndexT > geo0d_type
 
using gm1_type = gm_type
 
using gm_type = GT_Lagrange< 0, 1, nRealDim, Simplex, T >
 
using index_type = typename geo0d_type::index_type
 
typedef super::matrix_node_type matrix_node_type
 
typedef geo0d_type::node_type node_type
 
typedef self_type point_type
 
typedef GeoElement0D< Dim, SubFace, T, IndexT > self_type
 
using size_type = typename geo0d_type::size_type
 
typedef geo0d_type super
 
typedef SubFace super2
 
- Public Types inherited from Feel::Geo0D< Dim, double, uint32_type >
using index_type = typename super::index_type
 
using marker_type = Marker< flag_type >
 
typedef matrix_node< value_type >::type matrix_node_type
 
using meshbase_type = MeshBase< index_type >
 
using node_type = typename node< double, Dim >::type
 
typedef node< double, 2 >::type parametric_node_type
 
typedef Geo0D< Dim, double, uint32_type > self_type
 
using size_type = typename super::size_type
 
typedef double value_type
 
- Public Types inherited from Feel::GeoEntity< Simplex< 0, 1, Dim >, double, uint32_type >
typedef Simplex< 0, 1, Dim > super
 
typedef GeoEntity< Simplex< 0, 1, Dim >, double, uint32_type > GeoShape
 
typedef GeoEntity< Simplex< 0, 1, Dim >, 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 Simplex< 0, 1, Dim > convex_type
 
using reference_convex_type = Reference< Simplex< 0, 1, Dim >, nDim, nOrder, nRealDim, TT >
 
using marker_type = Marker< flag_type >
 
- Public Types inherited from Feel::Simplex< 0, 1, Dim >
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
 
using PermutationSubEntity = typename mpl::at_c< permutation_by_subentity_type, N-1 >::type
 
using shape = Simplex< shape_dim, O, R >
 
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 Types inherited from Feel::SubFaceOfNone< Dim >
typedef boost::tuple< size_type, size_type, uint16_type > element_connectivity_type
 
using index_type = uint32_type
 
using size_type = index_type
 

Public Member Functions

uint16_type boundaryEntityDimension () const
 
matrix_node_type G () const
 
 GeoElement0D (geo0d_type const &p)
 
 GeoElement0D (GeoElement0D &&g)=default
 
 GeoElement0D (GeoElement0D const &g)=default
 
template<typename SF >
 GeoElement0D (GeoElement0D< Dim, SF, T > const &g)
 
 GeoElement0D (size_type id, bool boundary=false)
 Declares item id and if it is on boundary.
 
 GeoElement0D (size_type id, geo0d_type const &n, bool boundary, bool isView)
 
template<typename GeoNodeType >
 GeoElement0D (size_type id, GeoNodeType const &n, bool boundary=false)
 
 GeoElement0D (size_type id, Real x, Real y, Real z, bool boundary=false)
 Declares item id and if it is on boundary, and provides coordinate data.
 
size_type id () const
 
bool isGhostCell () const
 
bool isGhostFace () const
 
bool isInterProcessDomain () const
 
bool isInterProcessDomain (rank_type p) const
 
bool isOnBoundary () const
 
MeshBase const * mesh () const
 
GeoElement0D & operator= (GeoElement0D &&g)=default
 
GeoElement0D & operator= (GeoElement0D const &g)=default
 
template<typename SF >
GeoElement0D & operator= (GeoElement0D< Dim, SF, T > const &g)
 
rank_type partition1 () const
 
rank_type partition2 () const
 
geo0d_type & point (uint16_type)
 
geo0d_type const & point (uint16_type) const
 
rank_type processId () const
 
void setPoint (uint16_type, geo0d_type &e)
 set the geometrical point associated to the face
 
matrix_node_type vertices () const
 
- Public Member Functions inherited from Feel::Geo0D< Dim, double, uint32_type >
matrix_node_type G () const
 
int gDim () const
 
 Geo0D ()
 default constructor
 
 Geo0D (Geo0D &&G)
 
 Geo0D (Geo0D const &G)
 copy/move constructors
 
 Geo0D (index_type id, bool boundary=false, bool is_vertex=false)
 constructor where I give the id and declare if Geo0D object is on a boundary More...
 
 Geo0D (index_type id, const node_type *__x, bool boundary=false, bool is_vertex=false, bool isView=false)
 constructor where I give the id, the point coordinate and I declare if the Geo0D object is on a boundary More...
 
 Geo0D (index_type id, self_type const &__x, bool boundary=false, bool is_vertex=false, bool isView=false)
 constructor where I give the id, the point coordinate and I declare if the Geo0D object is on a boundary More...
 
 Geo0D (index_type id, TheNodeType const &__x, bool boundary=false, bool is_vertex=false, typename std::enable_if<!is_ptr_or_shared_ptr< TheNodeType >::value >::type *=nullptr)
 constructor where I give the id, the point coordinate and I declare if the Geo0D object is on a boundary More...
 
 Geo0D (index_type id, value_type x, value_type y, value_type z, bool boundary=false, bool is_vertex=false)
 constructor where I give the id, the point coordinate and I declare if the Geo0D object is on a boundary More...
 
 Geo0D (node_type const &__x)
 the point coordinate More...
 
 Geo0D (ublas::vector_expression< AE > const &__expr)
 the point coordinate expression More...
 
 Geo0D (value_type x, value_type y, value_type z)
 give the point coordinate More...
 
int gTag () const
 
bool isParametric () const
 
bool isPeriodic () const
 
bool isVertex () const
 
index_type masterId () const
 the master id is different from the id in the context of periodic boundary conditions on the slave side More...
 
self_type const * masterVertex () const
 
value_type measure () const override
 
meshbase_type const * mesh () const
 
node_type const & node () const
 
value_type & operator() (int i)
 
value_type operator() (int i) const
 
Geo0D & operator+= (ublas::vector_expression< AE > const &expr)
 
bool operator< (Geo0D const &e) const
 
bool operator< (index_type __i) const
 
Geo0D & operator= (Geo0D &&G)
 
Geo0D & operator= (Geo0D const &G)
 assignement operators
 
Geo0D & operator= (ublas::vector_expression< AE > const &expr)
 
bool operator== (Geo0D const &geo0d) const
 
value_type & operator[] (int i)
 
value_type operator[] (int i) const
 
parametric_node_type const & parametricCoordinates () const
 
void setAsVertex (bool v)
 set the point as a vertex or not using v
 
void setMasterId (index_type id)
 
void setMasterVertex (self_type const *m)
 
void setMesh (meshbase_type const *m)
 set the mesh to which this geometric entity belongs to
 
void setNode (node_type const &__n)
 set the node coordinates More...
 
void setParametricCoordinates (int gdim, int gtag, parametric_node_type const &x)
 set the parametric coordinates of the node (if it is on an point, edge or surface geometric entity)
 
void setParametricCoordinates (int gdim, int gtag, value_type u, value_type v)
 set the parametric coordinates of the node (if it is on an point, edge or surface geometric entity)
 
void setPoint (uint16_type const, self_type const &p)
 set the point coordinates. More...
 
void setPointCoordG (int i, ublas::vector< double > const &p)
 
void setTags (std::vector< int > const &tags) override
 set the tags associated to the points More...
 
std::ostream & showMe (bool verbose=false, std::ostream &c=std::cout) const
 show the information about the Geo0D More...
 
std::vector< int > tags () const
 
self_type & translate (node_type const &trans)
 translate the point by trans
 
value_type u () const
 
value_type v () const
 
matrix_node_type vertices () const
 
 ~Geo0D () override
 Destructor.
 
- Public Member Functions inherited from Feel::GeoEntity< Simplex< 0, 1, Dim >, double, uint32_type >
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 ()
 
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)
 
- Public Member Functions inherited from Feel::Simplex< 0, 1, Dim >
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, Order, RDim >
 Convex ()
 default constructor
 
 Convex (Convex const &)
 copy constructor
 
virtual ~Convex ()
 destructor
 
Convex & operator= (Convex const &o)=default
 copy operator
 
- Public Member Functions inherited from Feel::SubFaceOfNone< Dim >
boost::none_t element (uint16_type) const
 
bool isGhostFace (rank_type) const
 
bool isInterProcessDomain (rank_type) const
 
SubFaceOfNone & operator= (SubFaceOfNone &&)=default
 
SubFaceOfNone & operator= (SubFaceOfNone const &)=default
 
rank_type partition1 (rank_type) const
 
rank_type partition2 (rank_type) const
 
 SubFaceOfNone (SFO const &)
 
 SubFaceOfNone (SubFaceOfNone &&)=default
 
 SubFaceOfNone (SubFaceOfNone const &)
 

Static Public Attributes

static const bool is_simplex = true
 
static const uint16_type nDim = 0
 
static const uint16_type nRealDim = Dim
 
static const uint16_type numLocalVertices = super::numVertices
 
- Static Public Attributes inherited from Feel::Geo0D< Dim, double, uint32_type >
static const bool is_simplex
 
static const uint16_type nDim
 
- Static Public Attributes inherited from Feel::GeoEntity< Simplex< 0, 1, Dim >, double, uint32_type >
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
 
- Static Public Attributes inherited from Feel::Simplex< 0, 1, Dim >
static const size_type Geometry
 
static const bool is_hypercube
 
static const bool is_simplex
 
static const uint16_type nbPtsPerEdge
 
static const uint16_type nbPtsPerFace
 
static const uint16_type nbPtsPerVertex
 
static const uint16_type nbPtsPerVolume
 
static const uint16_type nDim
 
static const uint16_type nOrder
 
static const uint16_type nRealDim
 
static const int numEdges
 
static const int numFaces
 
static const int numGeometricFaces
 
static const uint16_type numNormals
 
static const uint16_type numPoints
 
static const int numTopologicalFaces
 
static const int numVertices
 
static const int numVolumes
 
static const uint16_type real_dimension
 
static constexpr int Shape
 
static constexpr int shape_v
 
static const uint16_type topological_dimension
 
- Static Public Attributes inherited from Feel::Convex< Dim, Order, RDim >
static const uint16_type nDim
 
static const uint16_type nOrder
 
static const uint16_type nRealDim
 
- Static Public Attributes inherited from Feel::SubFaceOfNone< Dim >
static const uint16_type nDim
 

Friends

class boost::serialization::access
 

Additional Inherited Members

- Static Public Member Functions inherited from Feel::GeoEntity< Simplex< 0, 1, Dim >, double, uint32_type >
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 Member Functions inherited from Feel::Simplex< 0, 1, Dim >
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 ()
 

Detailed Description

template<uint16_type Dim, typename SubFace = SubFaceOfNone<Dim>, typename T = double, typename IndexT = uint32_type>
class Feel::GeoElement0D< Dim, SubFace, T, IndexT >

Class for Points and Vertices.

Member Function Documentation

◆ boundaryEntityDimension()

template<uint16_type Dim, typename SubFace = SubFaceOfNone<Dim>, typename T = double, typename IndexT = uint32_type>
uint16_type Feel::GeoElement0D< Dim, SubFace, T, IndexT >::boundaryEntityDimension ( ) const
Returns
maximum dimension of the sub-entity touching the boundary of the element

◆ id()

template<uint16_type Dim, typename SubFace = SubFaceOfNone<Dim>, typename T = double, typename IndexT = uint32_type>
size_type Feel::GeoElement0D< Dim, SubFace, T, IndexT >::id ( ) const
Returns
id

◆ isGhostCell()

template<uint16_type Dim, typename SubFace = SubFaceOfNone<Dim>, typename T = double, typename IndexT = uint32_type>
bool Feel::GeoElement0D< Dim, SubFace, T, IndexT >::isGhostCell ( ) const
Returns
true if ghost cell, false otherwise

◆ isInterProcessDomain() [1/2]

template<uint16_type Dim, typename SubFace = SubFaceOfNone<Dim>, typename T = double, typename IndexT = uint32_type>
bool Feel::GeoElement0D< Dim, SubFace, T, IndexT >::isInterProcessDomain ( ) const
Returns
true if interprocess domain face, false otherwise

◆ isInterProcessDomain() [2/2]

template<uint16_type Dim, typename SubFace = SubFaceOfNone<Dim>, typename T = double, typename IndexT = uint32_type>
bool Feel::GeoElement0D< Dim, SubFace, T, IndexT >::isInterProcessDomain ( rank_type  p) const
Returns
true if interprocess domain face of partition p , false otherwise

◆ isOnBoundary()

template<uint16_type Dim, typename SubFace = SubFaceOfNone<Dim>, typename T = double, typename IndexT = uint32_type>
bool Feel::GeoElement0D< Dim, SubFace, T, IndexT >::isOnBoundary ( ) const
Returns
true if on the boundary, false otherwise

◆ partition1()

template<uint16_type Dim, typename SubFace = SubFaceOfNone<Dim>, typename T = double, typename IndexT = uint32_type>
rank_type Feel::GeoElement0D< Dim, SubFace, T, IndexT >::partition1 ( ) const
Returns
process id

◆ partition2()

template<uint16_type Dim, typename SubFace = SubFaceOfNone<Dim>, typename T = double, typename IndexT = uint32_type>
rank_type Feel::GeoElement0D< Dim, SubFace, T, IndexT >::partition2 ( ) const
Returns
process id

◆ point() [1/2]

template<uint16_type Dim, typename SubFace = SubFaceOfNone<Dim>, typename T = double, typename IndexT = uint32_type>
geo0d_type & Feel::GeoElement0D< Dim, SubFace, T, IndexT >::point ( uint16_type  )
Returns
the point associated to the face

◆ point() [2/2]

template<uint16_type Dim, typename SubFace = SubFaceOfNone<Dim>, typename T = double, typename IndexT = uint32_type>
geo0d_type const & Feel::GeoElement0D< Dim, SubFace, T, IndexT >::point ( uint16_type  ) const
Returns
the point associated to the face

◆ processId()

template<uint16_type Dim, typename SubFace = SubFaceOfNone<Dim>, typename T = double, typename IndexT = uint32_type>
rank_type Feel::GeoElement0D< Dim, SubFace, T, IndexT >::processId ( ) const
Returns
process id