Feel++
0.91.4
|
Base class for Multi-dimensional basis Geometrical Entities. More...
#include <geond.hpp>
Classes | |
struct | GetGm |
struct | tt |
Public Types | |
typedef T | value_type |
typedef GeoND< Dim, GEOSHAPE, value_type, POINTTYPE > | self_type |
typedef self_type | element_type |
typedef GEOSHAPE | GeoShape |
typedef POINTTYPE | PointType |
typedef PointType | point_type |
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 node< value_type >::type | 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 super::vertex_permutation_type | vertex_permutation_type |
typedef super::edge_permutation_type | edge_permutation_type |
typedef super::face_permutation_type | face_permutation_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 |
Public Member Functions | |
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 | |
MeshBase const * | mesh () const |
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 |
permutation_type | permutation (uint16_type) const |
PointType & | point (uint16_type i) |
PointType const & | point (uint16_type i) const |
PointType * | pointPtr (uint16_type i) |
PointType const * | pointPtr (uint16_type i) const |
PointType const & | facePoint (uint16_type __f, uint16_type const __i) const |
PointType & | reversepoint (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 | vertices () const |
matrix_node_type & | G () |
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) |
Marker1 const & | marker () const |
Marker1 & | marker () |
void | setMarker (flag_type v) |
Marker2 const & | marker2 () const |
Marker2 & | marker2 () |
void | setMarker2 (flag_type v) |
Marker3 const & | marker3 () const |
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) |
Static Public Member Functions | |
static uint16_type | fToP (uint16_type const _localFace, uint16_type const _point) |
Static Public Attributes | |
static const size_type | Shape = super::Shape |
static const uint16_type | numPoints = super::numPoints |
static const uint16_type | numVertices = super::numVertices |
static const uint16_type | numLocalPoints = super::numPoints |
static const uint16_type | numLocalEdges = super::numEdges |
static const uint16_type | numLocalVertices = super::numVertices |
static const int | numFaces = super::numFaces |
static const int | numEdges = super::numEdges |
static const int | numTopologicalFaces = super::numTopologicalFaces |
static const uint16_type | numNeighbors = super::numTopologicalFaces |
static const uint16_type | nDim = super::nDim |
static const uint16_type | nOrder = super::nOrder |
static const uint16_type | nRealDim = super::nRealDim |
Base class for Multi-dimensional basis Geometrical Entities.
Feel::GeoND< Dim, GEOSHAPE, T, POINTTYPE >::GeoND | ( | ) | [inline] |
default constructor
Feel::GeoND< Dim, GEOSHAPE, T, POINTTYPE >::GeoND | ( | size_type | id | ) | [inline, explicit] |
constructor from an id
id | identifier for the element to store |
virtual Feel::GeoND< Dim, GEOSHAPE, T, POINTTYPE >::~GeoND | ( | ) | [inline, virtual] |
destructor, make it virtual for derived classes
node_type Feel::GeoND< Dim, GEOSHAPE, T, POINTTYPE >::barycenter | ( | ) | const [inline] |
void Feel::GeoND< Dim, GEOSHAPE, T, POINTTYPE >::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 (remeber 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
node_type Feel::GeoND< Dim, GEOSHAPE, T, POINTTYPE >::faceBarycenter | ( | uint16_type | f | ) | const [inline] |
matrix_node_type Feel::GeoND< Dim, GEOSHAPE, T, POINTTYPE >::faceBarycenters | ( | ) | const [inline] |
double Feel::GeoND< Dim, GEOSHAPE, T, POINTTYPE >::faceMeasure | ( | uint16_type | f | ) | const [inline] |
f
std::vector<double> const& Feel::GeoND< Dim, GEOSHAPE, T, POINTTYPE >::faceMeasures | ( | ) | const [inline] |
uint16_type Feel::GeoND< Dim, GEOSHAPE, T, POINTTYPE >::faceToOppositePoint | ( | uint16_type const | _localFace, |
uint16_type const | _point | ||
) | const [inline] |
faceToOppositePoint(i,j) = localId of jth opposite point to ith local face
Referenced by Feel::GeoND< Dim, GEOSHAPE, T, GeoElement0D< Dim, SubFaceOfNone, T > >::faceToOppositePoint().
static uint16_type Feel::GeoND< Dim, GEOSHAPE, T, POINTTYPE >::fToP | ( | uint16_type const | _localFace, |
uint16_type const | _point | ||
) | [inline, static] |
Get the local id of the point in the element
_localFace | local id of a face in the element |
_point | local id of a point in the face |
Reimplemented from Feel::GeoEntity< GEOSHAPE >.
Referenced by Feel::GeoND< Dim, GEOSHAPE, T, GeoElement0D< Dim, SubFaceOfNone, T > >::fToP().
matrix_node_type const& Feel::GeoND< Dim, GEOSHAPE, T, POINTTYPE >::G | ( | ) | const [inline] |
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
Referenced by Feel::GeoND< Dim, GEOSHAPE, T, GeoElement0D< Dim, SubFaceOfNone, T > >::isAnticlockwiseOriented().
matrix_node_type& Feel::GeoND< Dim, GEOSHAPE, T, POINTTYPE >::G | ( | ) | [inline] |
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
double Feel::GeoND< Dim, GEOSHAPE, T, POINTTYPE >::h | ( | ) | const [inline] |
get the max length of the edges of the element
bool Feel::GeoND< Dim, GEOSHAPE, T, POINTTYPE >::hasPoints | ( | ) | const [inline] |
double Feel::GeoND< Dim, GEOSHAPE, T, POINTTYPE >::hFace | ( | uint16_type | f | ) | const [inline] |
get the max length of the edge in the local face f
f | local id of the face |
bool Feel::GeoND< Dim, GEOSHAPE, T, POINTTYPE >::isAnticlockwiseOriented | ( | ) | const [inline] |
Determines if the local numbering of a 2D element is oriented anticlockwise
double Feel::GeoND< Dim, GEOSHAPE, T, POINTTYPE >::measure | ( | ) | const [inline, virtual] |
Implements Feel::GeoEntity< GEOSHAPE >.
value_type Feel::GeoND< Dim, GEOSHAPE, T, POINTTYPE >::measurePointElementNeighbors | ( | ) | const [inline] |
MeshBase const* Feel::GeoND< Dim, GEOSHAPE, T, POINTTYPE >::mesh | ( | ) | const [inline] |
Reimplemented in Feel::GeoElement3D< Dim, GEOSHAPE, T >, Feel::GeoElement2D< Dim, GEOSHAPE, SubFace, T >, and Feel::GeoElement1D< Dim, GEOSHAPE, SubFace, T >.
std::pair<size_type,size_type> const& Feel::GeoND< Dim, GEOSHAPE, T, POINTTYPE >::neighbor | ( | uint16_type | n | ) | const [inline] |
Neighbors are stored as pointers and some of them can be null pointers if the corresponding face is on the boundary.
n
index and process id
it belongs to uint16_type Feel::GeoND< Dim, GEOSHAPE, T, POINTTYPE >::nNeighbors | ( | ) | const [inline] |
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.
uint16_type Feel::GeoND< Dim, GEOSHAPE, T, POINTTYPE >::nOppositePointsPerFace | ( | ) | const [inline] |
get the number of opposite points per face
ublas::matrix_column<matrix_node_type const> Feel::GeoND< Dim, GEOSHAPE, T, POINTTYPE >::normal | ( | uint16_type | f | ) | const [inline] |
f
matrix_node_type const& Feel::GeoND< Dim, GEOSHAPE, T, POINTTYPE >::normals | ( | ) | const [inline] |
uint16_type Feel::GeoND< Dim, GEOSHAPE, T, POINTTYPE >::nPoints | ( | ) | const [inline] |
Reimplemented from Feel::GeoEntity< GEOSHAPE >.
size_type Feel::GeoND< Dim, GEOSHAPE, T, POINTTYPE >::numberOfPointElementNeighbors | ( | ) | const [inline] |
permutation_type Feel::GeoND< Dim, GEOSHAPE, T, POINTTYPE >::permutation | ( | uint16_type | ) | const [inline] |
Reimplemented in Feel::GeoElement3D< Dim, GEOSHAPE, T >, Feel::GeoElement2D< Dim, GEOSHAPE, SubFace, T >, and Feel::GeoElement1D< Dim, GEOSHAPE, SubFace, T >.
PointType& Feel::GeoND< Dim, GEOSHAPE, T, POINTTYPE >::point | ( | uint16_type | i | ) | [inline] |
It returns the reference to an point object (possibly derived from Geo0D)
PointType const& Feel::GeoND< Dim, GEOSHAPE, T, POINTTYPE >::point | ( | uint16_type | i | ) | const [inline] |
It returns the reference to an point object (possibly derived from Geo0D)
std::set<size_type> const& Feel::GeoND< Dim, GEOSHAPE, T, POINTTYPE >::pointElementNeighborIds | ( | ) | const [inline] |
PointType* Feel::GeoND< Dim, GEOSHAPE, T, POINTTYPE >::pointPtr | ( | uint16_type | i | ) | [inline] |
It returns the pointer to an point object (possibly derived from Geo0D)
PointType const* Feel::GeoND< Dim, GEOSHAPE, T, POINTTYPE >::pointPtr | ( | uint16_type | i | ) | const [inline] |
It returns the pointer to an point object (possibly derived from Geo0D)
PointType& Feel::GeoND< Dim, GEOSHAPE, T, POINTTYPE >::reversepoint | ( | uint16_type const | i | ) | [inline] |
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)
PointType const& Feel::GeoND< Dim, GEOSHAPE, T, POINTTYPE >::reversepoint | ( | uint16_type const | i | ) | const [inline] |
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)
void Feel::GeoND< Dim, GEOSHAPE, T, POINTTYPE >::setMeshAndGm | ( | MeshBase const * | m, |
gm_ptrtype const & | gm, | ||
gm1_ptrtype const & | gm1 | ||
) | const [inline] |
set the mesh to which this geometric entity belongs to
void Feel::GeoND< Dim, GEOSHAPE, T, POINTTYPE >::setNeighbor | ( | uint16_type | n, |
size_type | neigh_id, | ||
size_type | proc_id | ||
) | [inline] |
set the n
-th neighbor with neigh
void Feel::GeoND< Dim, GEOSHAPE, T, POINTTYPE >::setPoint | ( | uint16_type const | i, |
point_type const & | p | ||
) | [inline] |
Inserts a point. Uses point references put point
void Feel::GeoND< Dim, GEOSHAPE, T, POINTTYPE >::setTags | ( | std::vector< int > const & | tags | ) | [inline] |
set the tags associated to the points
std::ostream & Feel::GeoND< Dim, GEOSHAPE, T, POINTTYPE >::showMe | ( | bool | verbose = false , |
std::ostream & | c = std::cout |
||
) | const |
show information about the geoND
verbose | true if verbose mode, false otherwise |
c | output stream |
void Feel::GeoND< Dim, GEOSHAPE, T, POINTTYPE >::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
pt1 | 1st point to swap with 2nd point |
pt2 | 2nd point to swap with 1st point |
matrix_node_type Feel::GeoND< Dim, GEOSHAPE, T, POINTTYPE >::vertices | ( | ) | const [inline] |
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