Feel++  0.91.4
Public Types | Public Member Functions | Static Public Attributes
Feel::GeoElement2D< Dim, GEOSHAPE, SubFace, T > Class Template Reference

Class for 2D elements. More...

#include <geoelement.hpp>

Inheritance diagram for Feel::GeoElement2D< Dim, GEOSHAPE, SubFace, T >:
Feel::GeoND< Dim, GEOSHAPE, T, GeoElement0D< Dim, SubFaceOfNone, T > > Feel::GeoEntity< GEOSHAPE > equality_comparable less_than_comparable less_than_comparable GEOSHAPE

List of all members.

Public Types

typedef GeoND< Dim, GEOSHAPE,
T, GeoElement0D< Dim,
SubFaceOfNone, T > > 
super
typedef SubFace super2
typedef GEOSHAPE GeoShape
typedef super::face_type entity_face_type
typedef GeoElement2D< Dim,
GEOSHAPE, SubFace, T > 
self_type
typedef self_type element_type
typedef GeoElement1D< Dim,
entity_face_type, SubFaceOf
< self_type >, T > 
edge_type
typedef GeoElement0D< Dim,
SubFaceOfNone, T > 
point_type
typedef super::node_type node_type
typedef
super::vertex_permutation_type 
vertex_permutation_type
typedef
super::edge_permutation_type 
edge_permutation_type
typedef
super::edge_permutation_type 
permutation_type
typedef
super::face_permutation_type 
face_permutation_type
typedef
super2::element_connectivity_type 
element_connectivity_type
typedef ublas::bounded_array
< edge_type *, numLocalEdges >
::iterator 
face_iterator
typedef ublas::bounded_array
< edge_type *, numLocalEdges >
::const_iterator 
face_const_iterator
- Public Types inherited from Feel::GeoND< Dim, GEOSHAPE, T, GeoElement0D< Dim, SubFaceOfNone, T > >
typedef T value_type
typedef GeoElement0D< Dim,
SubFaceOfNone, T > 
PointType
typedef super::face_type face_type
typedef ublas::bounded_array
< point_type *, numPoints >
::iterator 
point_iterator
typedef ublas::bounded_array
< point_type *, numPoints >
::const_iterator 
point_const_iterator
typedef matrix_node
< value_type >::type 
matrix_node_type
typedef GetGm< nOrder >::type gm_type
typedef GetGm< nOrder >::ptrtype gm_ptrtype
typedef GetGm< 1 >::type gm1_type
typedef GetGm< 1 >::ptrtype gm1_ptrtype
typedef face_type GeoBShape
typedef GEOSHAPE convex_type

Public Member Functions

 BOOST_MPL_ASSERT_MSG ((condition), INVALID_ELEMENT_REAL_DIMENSION,(mpl::int_< Dim >, mpl::int_< nRealDim >, GEOSHAPE))
 GeoElement2D (size_type id=0)
 GeoElement2D (GeoElement2D const &g)
 ~GeoElement2D ()
GeoElement2Doperator= (GeoElement2D const &g)
MeshBase const * mesh () const
size_type id () const
Marker1 const & marker () const
Marker1 & marker ()
Marker2 const & marker2 () const
Marker3 const & marker3 () const
bool isInterProcessDomain () const
bool isOnBoundary () const
bool isGhostCell () const
uint16_type processId () const
edge_type const & edge (uint16_type i) const
edge_type const & face (uint16_type i) const
edge_type const * facePtr (uint16_type i) const
void setFace (uint16_type const i, edge_type const &p)
edge_permutation_type edgePermutation (uint16_type i) const
edge_permutation_type facePermutation (uint16_type i) const
edge_permutation_type permutation (uint16_type i) const
void setEdge (uint16_type i, edge_type const &p)
void setEdgePermutation (uint16_type i, edge_permutation_type o)
std::pair< face_iterator,
face_iterator > 
faces ()
std::pair< face_const_iterator,
face_const_iterator > 
faces () const
- Public Member Functions inherited from Feel::GeoND< Dim, GEOSHAPE, T, GeoElement0D< Dim, SubFaceOfNone, T > >
 GeoND ()
 GeoND (size_type id)
 GeoND (GeoND const &e)
virtual ~GeoND ()
void setMeshAndGm (MeshBase const *m, gm_ptrtype const &gm, gm1_ptrtype const &gm1) const
void setMesh (MeshBase const *m) const
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
bool hasPoints () const
uint16_type nPoints () const
uint16_type nNeighbors () const
std::pair< size_type,
size_type > const & 
neighbor (uint16_type n) const
void setNeighbor (uint16_type n, size_type neigh_id, size_type proc_id)
bool isNeighbor (self_type const &G) const
node_type barycenter () const
node_type faceBarycenter (uint16_type f) const
matrix_node_type faceBarycenters () const
PointTypepoint (uint16_type i)
PointType const & point (uint16_type i) const
PointTypepointPtr (uint16_type i)
PointType const * pointPtr (uint16_type i) const
PointType const & facePoint (uint16_type __f, uint16_type const __i) const
PointTypereversepoint (uint16_type const i)
PointType const & reversepoint (uint16_type const i) const
void setPoint (uint16_type const i, point_type const &p)
std::ostream & showMe (bool verbose=false, std::ostream &c=std::cout) const
void swapPoints (const uint16_type &pt1, const uint16_type &pt2)
void exchangePoints (const uint16_type otn[numPoints])
matrix_node_type const & G () const
matrix_node_type & G ()
matrix_node_type vertices () const
point_iterator beginPoint ()
point_const_iterator beginPoint () const
point_iterator endPoint ()
point_const_iterator endPoint () const
double h () const
double hFace (uint16_type f) const
double hEdge (uint16_type f) const
double measure () const
double faceMeasure (uint16_type f) const
std::vector< double > const & faceMeasures () const
matrix_node_type const & normals () const
ublas::matrix_column
< matrix_node_type const > 
normal (uint16_type f) const
uint16_type nOppositePointsPerFace () const
uint16_type faceToOppositePoint (uint16_type const _localFace, uint16_type const _point) const
bool isAnticlockwiseOriented () const
void applyDisplacement (int i, ublas::vector< double > const &u)
void applyDisplacementG (int i, ublas::vector< double > const &u)
void setTags (std::vector< int > const &tags)
void setMarker (flag_type v)
Marker2 & marker2 ()
void setMarker2 (flag_type v)
Marker3 & marker3 ()
void setMarker3 (flag_type v)
size_type numberOfPointElementNeighbors () const
std::set< size_type > const & pointElementNeighborIds () const
void setMeasurePointElementNeighbors (value_type meas)
 set the measure of point element neighbors
value_type measurePointElementNeighbors () const
void update ()
void updateWithPc (typename gm_type::precompute_ptrtype const &pc, typename gm_type::faces_precompute_type &pcf)
- Public Member Functions inherited from Feel::GeoEntity< GEOSHAPE >
 GeoEntity ()
 GeoEntity (size_type i, size_type geometry=Geometry, size_type shape=Shape, size_type context=MESH_ENTITY_INTERNAL)
 GeoEntity (GeoEntity const &__me)
GeoEntityoperator= (GeoEntity const &__me)
virtual ~GeoEntity ()
bool operator== (GeoEntity const &e) const
bool operator< (GeoEntity const &e) const
bool operator< (size_type __i) const
uint16_type refDim () const
uint16_type nVertices () const
uint16_type nEdges () const
uint16_type nFaces () const
uint16_type nGeometricFaces () const
uint16_type nNormals () const
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
void setProcessId (uint16_type pid)
void setProcessIdInPartition (uint16_type pid)
uint16_type partitionId () const
uint16_type numberOfPartitions () const
size_type numberOfNeighborPartitions () const
bool isLinkedToOtherPartitions () const
std::vector< int > const & neighborPartitionIds () const
void setIdInPartition (uint16_type pid, size_type id)
size_type idInPartition (uint16_type pid) const
bool active () const
void setId (size_type id)
void setOnBoundary (bool b)
void setNumberOfPartitions (uint16_type np)
void setNumberOfNeighborPartitions (uint16_type nep)
void setNeighborPartitionIds (std::vector< int > const &npids)
self_typeaddElement (size_type e)
size_type numberOfElements () const
std::set< size_type > const & elements () const

Static Public Attributes

static const uint16_type nDim = super::nDim
static const uint16_type nOrder = super::nOrder
static const uint16_type nRealDim = super::nRealDim
static const bool condition = (Dim==nRealDim)
static const uint16_type numLocalEdges = super::numEdges
 Number of element edges.
static const uint16_type numLocalFaces = super::numFaces
- Static Public Attributes inherited from Feel::GeoND< Dim, GEOSHAPE, T, GeoElement0D< Dim, SubFaceOfNone, T > >
static const size_type Shape
static const uint16_type numPoints
static const uint16_type numVertices
static const uint16_type numLocalPoints
static const uint16_type numLocalVertices
static const int numFaces
static const int numEdges
static const int numTopologicalFaces
static const uint16_type numNeighbors
static const size_type Geometry
static const uint16_type numGeometricFaces
static const uint16_type numNormals
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

Additional Inherited Members

- Static Public Member Functions inherited from Feel::GeoND< Dim, GEOSHAPE, T, GeoElement0D< Dim, SubFaceOfNone, T > >
static uint16_type fToP (uint16_type const _localFace, uint16_type const _point)
static uint16_type eToP (uint16_type const __localEdge, uint16_type const __point)
static uint16_type fToE (uint16_type const __localFace, uint16_type const __edge)

Detailed Description

template<uint16_type Dim, typename GEOSHAPE, typename SubFace = SubFaceOfNone, typename T = double>
class Feel::GeoElement2D< Dim, GEOSHAPE, SubFace, T >

Class for 2D elements.

In the 3D case, we store the size_types of the adjacent 3D elements and their relative position.


Constructor & Destructor Documentation

template<uint16_type Dim, typename GEOSHAPE , typename SubFace = SubFaceOfNone, typename T = double>
Feel::GeoElement2D< Dim, GEOSHAPE, SubFace, T >::GeoElement2D ( size_type  id = 0)
inlineexplicit

default constructor, make it explicit to avoid implict inversion to size_type

template<uint16_type Dim, typename GEOSHAPE , typename SubFace = SubFaceOfNone, typename T = double>
Feel::GeoElement2D< Dim, GEOSHAPE, SubFace, T >::GeoElement2D ( GeoElement2D< Dim, GEOSHAPE, SubFace, T > const &  g)
inline

copy consttructor

template<uint16_type Dim, typename GEOSHAPE , typename SubFace = SubFaceOfNone, typename T = double>
Feel::GeoElement2D< Dim, GEOSHAPE, SubFace, T >::~GeoElement2D ( )
inline

destructor


Member Function Documentation

template<uint16_type Dim, typename GEOSHAPE , typename SubFace = SubFaceOfNone, typename T = double>
edge_type const& Feel::GeoElement2D< Dim, GEOSHAPE, SubFace, T >::edge ( uint16_type  i) const
inline
template<uint16_type Dim, typename GEOSHAPE , typename SubFace = SubFaceOfNone, typename T = double>
edge_permutation_type Feel::GeoElement2D< Dim, GEOSHAPE, SubFace, T >::edgePermutation ( uint16_type  i) const
inline
template<uint16_type Dim, typename GEOSHAPE , typename SubFace = SubFaceOfNone, typename T = double>
edge_type const& Feel::GeoElement2D< Dim, GEOSHAPE, SubFace, T >::face ( uint16_type  i) const
inline
template<uint16_type Dim, typename GEOSHAPE , typename SubFace = SubFaceOfNone, typename T = double>
edge_permutation_type Feel::GeoElement2D< Dim, GEOSHAPE, SubFace, T >::facePermutation ( uint16_type  i) const
inline
template<uint16_type Dim, typename GEOSHAPE , typename SubFace = SubFaceOfNone, typename T = double>
std::pair<face_iterator,face_iterator> Feel::GeoElement2D< Dim, GEOSHAPE, SubFace, T >::faces ( )
inline
Returns:
the iterator pair (begin,end) of faces
template<uint16_type Dim, typename GEOSHAPE , typename SubFace = SubFaceOfNone, typename T = double>
std::pair<face_const_iterator,face_const_iterator> Feel::GeoElement2D< Dim, GEOSHAPE, SubFace, T >::faces ( ) const
inline
Returns:
the iterator pair (begin,end) of faces
template<uint16_type Dim, typename GEOSHAPE , typename SubFace = SubFaceOfNone, typename T = double>
size_type Feel::GeoElement2D< Dim, GEOSHAPE, SubFace, T >::id ( ) const
inline
Returns:
true if on the boundary, false otherwise

Reimplemented from Feel::GeoEntity< GEOSHAPE >.

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

Reimplemented from Feel::GeoEntity< GEOSHAPE >.

References Feel::GeoEntity< GEOSHAPE >::isGhostCell().

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

References Feel::GeoEntity< GEOSHAPE >::processId().

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

Reimplemented from Feel::GeoEntity< GEOSHAPE >.

References Feel::GeoEntity< GEOSHAPE >::isOnBoundary().

template<uint16_type Dim, typename GEOSHAPE , typename SubFace = SubFaceOfNone, typename T = double>
MeshBase const* Feel::GeoElement2D< Dim, GEOSHAPE, SubFace, T >::mesh ( ) const
inline
template<uint16_type Dim, typename GEOSHAPE , typename SubFace = SubFaceOfNone, typename T = double>
GeoElement2D& Feel::GeoElement2D< Dim, GEOSHAPE, SubFace, T >::operator= ( GeoElement2D< Dim, GEOSHAPE, SubFace, T > const &  g)
inline

copy operator

template<uint16_type Dim, typename GEOSHAPE , typename SubFace = SubFaceOfNone, typename T = double>
edge_permutation_type Feel::GeoElement2D< Dim, GEOSHAPE, SubFace, T >::permutation ( uint16_type  i) const
inline
template<uint16_type Dim, typename GEOSHAPE , typename SubFace = SubFaceOfNone, typename T = double>
uint16_type Feel::GeoElement2D< Dim, GEOSHAPE, SubFace, T >::processId ( ) const
inline
Returns:
process id

Reimplemented from Feel::GeoEntity< GEOSHAPE >.

References Feel::GeoEntity< GEOSHAPE >::processId().

template<uint16_type Dim, typename GEOSHAPE , typename SubFace = SubFaceOfNone, typename T = double>
void Feel::GeoElement2D< Dim, GEOSHAPE, SubFace, T >::setEdge ( uint16_type  i,
edge_type const &  p 
)
inline

Inserts a point. Uses point references put point

See also:
setFace()

References Feel::GeoElement2D< Dim, GEOSHAPE, SubFace, T >::numLocalEdges.

template<uint16_type Dim, typename GEOSHAPE , typename SubFace = SubFaceOfNone, typename T = double>
void Feel::GeoElement2D< Dim, GEOSHAPE, SubFace, T >::setFace ( uint16_type const  i,
edge_type const &  p 
)
inline