Logo  0.95.0-final
Finite Element Embedded Library and Language in C++
Feel++ Feel++ on Github Feel++ community
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Feel::GeoElement3D< Dim, GEOSHAPE, T > Class Template Reference

#include <geoelement.hpp>

Detailed Description

template<uint16_type Dim, typename GEOSHAPE, typename T = double>
class Feel::GeoElement3D< Dim, GEOSHAPE, T >

Class for 3D elements.

+ Inheritance diagram for Feel::GeoElement3D< Dim, GEOSHAPE, T >:

Public Types

typedef
super::edge_permutation_type 
edge_permutation_type
 
typedef GeoElement1D< Dim,
typename
entity_face_type::topological_face_type,
SubFaceOfMany< face_type >, T > 
edge_type
 
typedef self_type element_type
 
typedef super::face_type entity_face_type
 
typedef ublas::bounded_array
< face_type *, numLocalFaces >
::const_iterator 
face_const_iterator
 
typedef ublas::bounded_array
< face_type *, numLocalFaces >
::iterator 
face_iterator
 
typedef
super::face_permutation_type 
face_permutation_type
 
typedef GeoElement2D< Dim,
entity_face_type, SubFaceOf
< self_type >, T > 
face_type
 
typedef GEOSHAPE GeoShape
 
typedef super::node_type node_type
 
typedef
super::face_permutation_type 
permutation_type
 
typedef GeoElement0D< Dim,
SubFaceOfNone, T > 
point_type
 
typedef GeoElement3D< Dim,
GEOSHAPE, T > 
self_type
 
typedef GeoND< Dim, GEOSHAPE,
T, GeoElement0D< Dim,
SubFaceOfNone, T > > 
super
 
typedef SubFaceOfNone super2
 
typedef
super::vertex_permutation_type 
vertex_permutation_type
 
- Public Types inherited from Feel::GeoND< Dim, GEOSHAPE, T, GeoElement0D< Dim, SubFaceOfNone, T > >
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
 
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 >
, typename mpl::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 ublas::bounded_array
< point_type *, numPoints >
::const_iterator 
point_const_iterator
 
typedef ublas::bounded_array
< point_type *, numPoints >
::iterator 
point_iterator
 
typedef PointType point_type
 
typedef GeoElement0D< Dim,
SubFaceOfNone, T > 
PointType
 
typedef GeoND< Dim, GEOSHAPE,
value_type, GeoElement0D< Dim,
SubFaceOfNone, T > > 
self_type
 
typedef T value_type
 
typedef
super::vertex_permutation_type 
vertex_permutation_type
 
- Public Types inherited from Feel::GeoEntity< GEOSHAPE >
typedef GEOSHAPE super
 
typedef GeoEntity< GEOSHAPE > GeoShape
 
typedef GeoEntity< GEOSHAPE > self_type
 
typedef
super::topological_face_type 
face_type
 
typedef face_type GeoBShape
 
typedef
GEOSHAPE::edge_permutation_type 
edge_permutation_type
 
typedef
GEOSHAPE::face_permutation_type 
face_permutation_type
 
typedef GEOSHAPE convex_type
 
- Public Types inherited from Feel::SubFaceOfNone
typedef boost::tuple
< size_type, size_type,
uint16_type > 
element_connectivity_type
 

Public Member Functions

size_type ad_first () const
 
size_type ad_second () const
 
uint16_type boundaryEntityDimension () const
 
edge_type const & edge (uint16_type i) const
 
edge_typeedge (uint16_type i)
 
edge_permutation_type edgePermutation (uint16_type i) const
 
edge_type const * edgePtr (uint16_type i) const
 
face_type const & face (uint16_type i) const
 
face_typeface (uint16_type i)
 
face_permutation_type facePermutation (uint16_type i) const
 
face_type const * facePtr (uint16_type i) const
 
std::pair< face_iterator,
face_iterator > 
faces ()
 
std::pair< face_const_iterator,
face_const_iterator > 
faces () const
 
 GeoElement3D (size_type id=0)
 
 GeoElement3D (GeoElement3D const &g)
 
size_type id () const
 
bool isGhostCell () const
 
bool isGhostFace () const
 
bool isInterProcessDomain () const
 
bool isOnBoundary () const
 
Marker1 const & marker () const
 
Marker1 & marker ()
 
Marker2 const & marker2 () const
 
Marker3 const & marker3 () const
 
MeshBase const * mesh () const
 
GeoElement3Doperator= (GeoElement3D const &g)
 
face_permutation_type permutation (uint16_type i) const
 
uint16_type pos_first () const
 
uint16_type pos_second () const
 
uint16_type processId () const
 
void setEdge (uint16_type const i, edge_type const &p)
 
void setEdgePermutation (uint16_type i, edge_permutation_type o)
 
void setFace (uint16_type const i, face_type const &p)
 
void setFacePermutation (uint16_type i, face_permutation_type o)
 
 ~GeoElement3D ()
 
- Public Member Functions inherited from Feel::GeoND< Dim, GEOSHAPE, T, GeoElement0D< Dim, SubFaceOfNone, T > >
void applyDisplacement (int i, ublas::vector< double > const &u)
 
void applyDisplacementG (int i, ublas::vector< double > const &u)
 
node_type barycenter () const
 
point_iterator beginPoint ()
 
point_const_iterator beginPoint () const
 
point_iterator endPoint ()
 
point_const_iterator endPoint () const
 
void exchangePoints (const uint16_type otn[numPoints])
 
node_type faceBarycenter (uint16_type f) const
 
matrix_node_type faceBarycenters () const
 
double faceMeasure (uint16_type f) const
 
std::vector< double > const & faceMeasures () const
 
PointType const & facePoint (uint16_type __f, uint16_type const __i) const
 
uint16_type faceToOppositePoint (uint16_type const _localFace, uint16_type const _point) const
 
matrix_node_type const & G () const
 
matrix_node_type & G ()
 
 GeoND ()
 
 GeoND (size_type id)
 
 GeoND (GeoND const &e)
 
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
 
double h () const
 
bool hasPoints () const
 
double hEdge (uint16_type f) const
 
double hFace (uint16_type f) const
 
bool isAnticlockwiseOriented () const
 
bool isNeighbor (self_type const &G) const
 
Marker1 const & marker () const
 
Marker1 & marker ()
 
Marker2 const & marker2 () const
 
Marker2 & marker2 ()
 
Marker3 const & marker3 () const
 
Marker3 & marker3 ()
 
double measure () const
 
value_type measurePointElementNeighbors () const
 
MeshBase const * mesh () const
 
std::pair< size_type,
size_type > const & 
neighbor (uint16_type n) const
 
uint16_type nNeighbors () const
 
uint16_type nOppositePointsPerFace () const
 
ublas::matrix_column
< matrix_node_type const > 
normal (uint16_type f) const
 
matrix_node_type const & normals () const
 
uint16_type nPoints () const
 
size_type numberOfPointElementNeighbors () const
 
permutation_type permutation (uint16_type) const
 
PointTypepoint (uint16_type i)
 
PointType const & point (uint16_type i) const
 
std::set< size_type > const & pointElementNeighborIds () const
 
PointTypepointPtr (uint16_type i)
 
PointType const * pointPtr (uint16_type i) const
 
PointTypereversepoint (uint16_type const i)
 
PointType const & reversepoint (uint16_type const i) const
 
void setMarker (flag_type v)
 
void setMarker2 (flag_type v)
 
void setMarker3 (flag_type v)
 
void setMeasurePointElementNeighbors (value_type meas)
 set the measure of point element neighbors
 
void setMesh (MeshBase const *m) const
 
void setMeshAndGm (MeshBase const *m, gm_ptrtype const &gm, gm1_ptrtype const &gm1) const
 
void setNeighbor (uint16_type n, size_type neigh_id, size_type proc_id)
 
void setPoint (uint16_type const i, point_type const &p)
 
void setTags (std::vector< int > const &tags)
 
std::ostream & showMe (bool verbose=false, std::ostream &c=std::cout) const
 
void swapPoints (const uint16_type &pt1, const uint16_type &pt2)
 
void update ()
 
void updateWithPc (typename gm_type::precompute_ptrtype const &pc, typename gm_type::faces_precompute_type &pcf)
 
matrix_node_type vertices () const
 
 ~GeoND ()
 
- 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
 
size_type id () const
 
uint16_type refDim () const
 
uint16_type nPoints () const
 
uint16_type nVertices () const
 
uint16_type nEdges () const
 
uint16_type nFaces () const
 
constexpr uint16_type nTopologicalFaces () 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
 
bool isOnBoundary () const
 
uint16_type boundaryEntityDimension () const
 
bool isGhostCell () const
 
uint16_type processId () const
 
void setProcessId (uint16_type pid)
 
uint16_type pidInPartition () const
 
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
 
std::vector< int > & neighborPartitionIds ()
 
void setIdInOthersPartitions (uint16_type pid, size_type id)
 
size_type idInOthersPartitions (uint16_type pid) const
 
std::map< uint16_type,
size_type > const & 
idInOthersPartitions () const
 
std::map< uint16_type,
size_type > & 
idInOthersPartitions ()
 
bool active () const
 
void setId (size_type id)
 
void setOnBoundary (bool b, uint16_type ent_d=invalid_uint16_type_value)
 
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
 
std::set< size_type > & elements ()
 
self_typeaddElementGhost (int proc, size_type e)
 
size_type numberOfElementsGhost () const
 
std::set< boost::tuple< int,
size_type > > const & 
elementsGhost () const
 
std::set< boost::tuple< int,
size_type > > & 
elementsGhost ()
 
- Public Member Functions inherited from Feel::SubFaceOfNone
boost::none_t element (uint16_type) const
 
bool isGhostFace (size_type p) const
 
bool isInterProcessDomain (size_type) const
 
 SubFaceOfNone (SubFaceOfNone const &)
 
template<typename SFO >
 SubFaceOfNone (SFO const &)
 

Static Public Attributes

static const uint16_type nDim = Dim
 
static const uint16_type numLocalEdges = super::numEdges
 Number of local Edges (using Euler Formula)
 
static const uint16_type numLocalFaces = super::numFaces
 Number of local Faces.
 
static const uint16_type numLocalVertices = super::numVertices
 Number of local Vertices.
 
- Static Public Attributes inherited from Feel::GeoND< Dim, GEOSHAPE, T, GeoElement0D< Dim, SubFaceOfNone, T > >
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 uint16_type numLocalEdges
 
static const uint16_type numLocalPoints
 
static const uint16_type numLocalVertices
 
static const uint16_type numNeighbors
 
static const uint16_type numPoints
 
static const int numTopologicalFaces
 
static const uint16_type numVertices
 
static const size_type Shape
 
- Static Public Attributes inherited from Feel::GeoEntity< GEOSHAPE >
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::SubFaceOfNone
static const uint16_type nDim = 1
 

Friends

class boost::serialization::access
 

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 Public Member Functions inherited from Feel::GeoEntity< GEOSHAPE >
static uint16_type eToP (uint16_type const __localEdge, uint16_type const __point)
 
static uint16_type fToP (uint16_type const __localFace, uint16_type const __point)
 
static uint16_type fToE (uint16_type const __localFace, uint16_type const __edge)
 

Constructor & Destructor Documentation

template<uint16_type Dim, typename GEOSHAPE , typename T = double>
Feel::GeoElement3D< Dim, GEOSHAPE, T >::GeoElement3D ( size_type  id = 0)
inlineexplicit
Parameters
ididentifier of the element
template<uint16_type Dim, typename GEOSHAPE , typename T = double>
Feel::GeoElement3D< Dim, GEOSHAPE, T >::GeoElement3D ( GeoElement3D< Dim, GEOSHAPE, T > const &  g)
inline

copy consttructor

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

destructor

Member Function Documentation

template<uint16_type Dim, typename GEOSHAPE , typename T = double>
uint16_type Feel::GeoElement3D< Dim, GEOSHAPE, T >::boundaryEntityDimension ( ) const
inline
Returns
maximum dimension of the sub-entity touching the boundary of the element

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

template<uint16_type Dim, typename GEOSHAPE , typename T = double>
std::pair<face_iterator,face_iterator> Feel::GeoElement3D< Dim, GEOSHAPE, T >::faces ( )
inline
Returns
the iterator pair (begin,end) of faces
template<uint16_type Dim, typename GEOSHAPE , typename T = double>
std::pair<face_const_iterator,face_const_iterator> Feel::GeoElement3D< Dim, GEOSHAPE, T >::faces ( ) const
inline
Returns
the iterator pair (begin,end) of faces
template<uint16_type Dim, typename GEOSHAPE , typename T = double>
size_type Feel::GeoElement3D< Dim, GEOSHAPE, T >::id ( ) const
inline
Returns
true if on the boundary, false otherwise
template<uint16_type Dim, typename GEOSHAPE , typename T = double>
bool Feel::GeoElement3D< Dim, GEOSHAPE, T >::isGhostCell ( ) const
inline
Returns
true if ghost cell, false otherwise

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

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

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

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

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

template<uint16_type Dim, typename GEOSHAPE , typename T = double>
GeoElement3D& Feel::GeoElement3D< Dim, GEOSHAPE, T >::operator= ( GeoElement3D< Dim, GEOSHAPE, T > const &  g)
inline

copy operator

template<uint16_type Dim, typename GEOSHAPE , typename T = double>
uint16_type Feel::GeoElement3D< Dim, GEOSHAPE, T >::processId ( ) const
inline
Returns
process id

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

template<uint16_type Dim, typename GEOSHAPE , typename T = double>
void Feel::GeoElement3D< Dim, GEOSHAPE, T >::setEdge ( uint16_type const  i,
edge_type const &  p 
)
inline
template<uint16_type Dim, typename GEOSHAPE , typename T = double>
void Feel::GeoElement3D< Dim, GEOSHAPE, T >::setFace ( uint16_type const  i,
face_type const &  p 
)
inline

Inserts a face.


The documentation for this class was generated from the following file:

Generated on Sun Dec 22 2013 13:11:19 for Feel++ by doxygen 1.8.5