NGSolve  4.9
Public Member Functions
ngcomp::MeshAccess Class Reference

Access to mesh topology and geometry. More...

#include <meshaccess.hpp>

Inheritance diagram for ngcomp::MeshAccess:
ngstd::BaseStatusHandler

List of all members.

Public Member Functions

 MeshAccess ()
 connects to Netgen - mesh
virtual ~MeshAccess ()
 not much to do
int GetDimension () const
 the spatial dimension of the mesh
int GetNP () const
 number of points. needed for isoparametric nodal elements
int GetNV () const
 number of vertices
int GetNE () const
 number of elements in the domain
int GetNSE () const
 number of boundary elements
int GetNEdges () const
 number of edges in the whole mesh
int GetNFaces () const
 number of faces in the whole mesh
int GetNDomains () const
 maximal sub-domain (material) index. range is [0, ndomains)
int GetNBoundaries () const
 maximal boundary condition index. range is [0, nboundaries)
template<int D>
void GetPoint (int pi, Vec< D > &p) const
 returns point coordinate
template<int D>
Vec< D > GetPoint (int pi) const
 returns point coordinate
ELEMENT_TYPE GetElType (int elnr) const
 the geometry type of the element
ELEMENT_TYPE GetSElType (int elnr) const
 the geometry type of the boundary element
int GetElIndex (int elnr) const
 the sub-domain index of the element
int GetSElIndex (const int elnr) const
 the boundary-condition index of the boundary element
void SetElIndex (int elnr, int index) const
 change sub-domain index (???)
string GetElMaterial (int elnr) const
 the material of the element
string GetDomainMaterial (int domnr) const
 the material of the sub-domain
string GetSElBCName (int selnr) const
 the boundary condition name of surface element
string GetBCNumBCName (const int bcnr) const
 the boundary condition name of boundary condition number
int GetSElSurfaceNumber (const int elnr) const
 not sure who needs that
int GetSElFDNumber (const int elnr) const
 not sure who needs that
void GetSElNeighbouringDomains (const int elnr, int &in, int &out) const
 the sub-domain indices next to boundary element.
void UpdateBuffers ()
 update buffered global quantities.
int GetNElements (int dim) const
 number of elements of dimension dim
int GetNNodes (NODE_TYPE nt) const
 number of nodes of type nt
void GetTopologicElement (int elnr, TopologicElement &topel) const
 the topology of a domain - element experimental, not recommended for use yet
Ng_Element GetElement (int elnr) const
 returns topology of a Netgen - element.
Ng_Element GetSElement (int elnr) const
 returns topology of a Netgen - element.
template<int DIM>
Ng_Element GetElement (int elnr) const
 returns element of compile-time fixed dimension
template<int DIM>
Ng_Node< DIM > GetNode (int nr) const
 returns node topology.
int GetElNV (int elnr) const
void GetElPNums (int elnr, Array< int > &pnums) const
 returns the points of an element.
void GetSElPNums (int selnr, Array< int > &pnums) const
 returns the points of a boundary element.
void GetElVertices (int elnr, Array< int > &vnums) const
 returns the vertices of an element
void GetSElVertices (int selnr, Array< int > &vnums) const
 returns the vertices of a boundary element
void GetElEdges (int elnr, Array< int > &ednums) const
 returns the edges of an element
void GetElEdges (int elnr, Array< int > &ednums, Array< int > &orient) const
void GetSElEdges (int selnr, Array< int > &ednums) const
 returns the edges of a boundary element
void GetSElEdges (int selnr, Array< int > &ednums, Array< int > &orient) const
void GetElFaces (int elnr, Array< int > &fnums) const
 returns the faces of an element
void GetElFaces (int elnr, Array< int > &fnums, Array< int > &orient) const
int GetSElFace (int selnr) const
 returns face number of surface element
void GetSElFace (int selnr, int &fnum, int &orient) const
void GetFacePNums (int fnr, Array< int > &pnums) const
 returns vertex numbers of face
void GetEdgePNums (int enr, int &pn1, int &pn2) const
 returns vertex numbers of edge
void GetEdgePNums (int enr, Array< int > &pnums) const
 returns vertex numbers of edge
void GetEdgeElements (int enr, Array< int > &elnums) const
 returns all elements connected to an edge
void GetFaceEdges (int fnr, Array< int > &edges) const
 returns all edges of a face
void GetFaceElements (int fnr, Array< int > &elnums) const
 returns elements connected to a face
void GetSegmentPNums (int snr, Array< int > &pnums) const
 point numbers of a 1D element
int GetSegmentIndex (int snr) const
 index of 1D element
int GetNFacets () const
 number of facets of an element.
void GetElFacets (int elnr, Array< int > &fnums) const
 facets of an element
void GetSElFacets (int selnr, Array< int > &fnums) const
 facet of a surface element
void GetFacetPNums (int fnr, Array< int > &pnums) const
 vertices of a facet
ELEMENT_TYPE GetFacetType (int fnr) const
 geometry type of facet
void GetFacetElements (int fnr, Array< int > &elnums) const
 elements connected to facet
int GetElOrder (int enr) const
 element order stored in Netgen
INT< 3 > GetElOrders (int enr) const
 anisotropic order stored in Netgen
void SetElOrder (int enr, int order) const
 set element order in Netgen
void SetElOrders (int enr, int ox, int oy, int oz) const
 set anisotropic element order in Netgen
int GetSElOrder (int enr) const
 order of suface element
INT< 2 > GetSElOrders (int enr) const
 anisotropic order of suface element
void SetSElOrder (int enr, int order) const
 set surface element order
void SetSElOrders (int enr, int ox, int oy) const
 set anisotropic surface element order
double ElementVolume (int elnr) const
 the volume of an element (mid-point rule)
double SurfaceElementVolume (int selnr) const
 the area of a boundary element (mid-point rule)
int GetNLevels () const
 number of multigrid levels
void GetParentNodes (int pi, int *parents) const
 the two parent vertices of a vertex. -1 for coarse-grid vertices
int GetParentElement (int ei) const
 number of parent element on next coarser mesh
int GetParentSElement (int ei) const
 number of parent boundary element on next coarser mesh
int GetClusterRepVertex (int pi) const
 representant of vertex for anisotropic meshes
int GetClusterRepEdge (int pi) const
 representant of edge for anisotropic meshes
int GetClusterRepFace (int pi) const
 representant of face for anisotropic meshes
int GetClusterRepElement (int pi) const
 representant of element for anisotropic meshes
ngfem::ElementTransformationGetTrafo (int elnr, bool boundary, LocalHeap &lh) const
 returns the transformation from the reference element to physical element.
void SetPointSearchStartElement (const int el) const
int FindElementOfPoint (FlatVector< double > point, IntegrationPoint &ip, bool build_searchtree, const Array< int > *const indices=NULL) const
int FindElementOfPoint (FlatVector< double > point, ngfem::IntegrationPoint &ip, bool build_searchtree, const int index) const
int FindSurfaceElementOfPoint (FlatVector< double > point, ngfem::IntegrationPoint &ip, bool build_searchtree, const Array< int > *const indices=NULL) const
int FindSurfaceElementOfPoint (FlatVector< double > point, ngfem::IntegrationPoint &ip, bool build_searchtree, const int index) const
bool IsElementCurved (int elnr) const
 is element straiht or curved ?
void GetPeriodicVertices (Array< ngstd::INT< 2 > > &pairs) const
int GetNPairsPeriodicVertices () const
void GetPeriodicVertices (int idnr, Array< ngstd::INT< 2 > > &pairs) const
int GetNPairsPeriodicVertices (int idnr) const
void GetPeriodicEdges (Array< ngstd::INT< 2 > > &pairs) const
int GetNPairsPeriodicEdges () const
void GetPeriodicEdges (int idnr, Array< ngstd::INT< 2 > > &pairs) const
int GetNPairsPeriodicEdges (int idnr) const
virtual void PushStatus (const char *str) const
virtual void PopStatus () const
virtual void SetThreadPercentage (double percent) const
virtual void GetStatus (string &str, double &percent) const
virtual void SetTerminate (void) const
virtual void UnSetTerminate (void) const
virtual bool ShouldTerminate (void) const
void GetVertexElements (int vnr, Array< int > &elems) const
void GetVertexSurfaceElements (int vnr, Array< int > &elems) const
void SetHigherIntegrationOrder (int elnr)
void UnSetHigherIntegrationOrder (int elnr)
void LoadMeshFromString (const string &str)
void InitPointCurve (double red=1, double green=0, double blue=0) const
void AddPointCurvePoint (const Vec< 3 > &point) const
MPI_Comm GetCommunicator () const
void GetDistantProcs (Node node, Array< int > &procs) const
 Returns the list of other MPI - processes where node is present.
int GetGlobalNodeNum (Node node) const
 Returns the global number of the node.
template<typename T >
void AllReduceNodalData (NODE_TYPE nt, Array< T > &data, MPI_Op op) const
 Reduces MPI - distributed data associated with mesh-nodes.

Detailed Description

Access to mesh topology and geometry.

MeshAccess provides information such as element-to-vertex table, elemenet-to-edge table etc.

It provides also element-geometry (straight or curved elements) via GetTrafo.

Internally, MeshAccess calls functions from Netgen.


Member Function Documentation

void ngcomp::MeshAccess::GetDistantProcs ( Node  node,
Array< int > &  procs 
) const

Returns the list of other MPI - processes where node is present.

The ordering coincides for all processes.

Ng_Element ngcomp::MeshAccess::GetElement ( int  elnr) const [inline]

returns topology of a Netgen - element.

This is the new (2008), unified concept. The function returns a direct access to the Netgen mesh structure instead of copying point numbers etc. The nasty 1-0 convertion is done on the fly.

void ngcomp::MeshAccess::GetElPNums ( int  elnr,
Array< int > &  pnums 
) const

returns the points of an element.

vertices and possibly edge-midpoints

Returns the global number of the node.

Currently, this function works only for vertex-nodes.

int ngcomp::MeshAccess::GetNFacets ( ) const [inline]

number of facets of an element.

facets are edges (2D) or faces (3D)

template<int DIM>
Ng_Node<DIM> ngcomp::MeshAccess::GetNode ( int  nr) const [inline]

returns node topology.

A facet or edge-node knows its vertices etc. The method is not yet fully functional.

Ng_Element ngcomp::MeshAccess::GetSElement ( int  elnr) const [inline]

returns topology of a Netgen - element.

This is the new (2008), unified concept. The function returns a direct access to the Netgen mesh structure instead of copying point numbers etc. The nasty 1-0 convertion is done on the fly.

void ngcomp::MeshAccess::GetSElNeighbouringDomains ( const int  elnr,
int &  in,
int &  out 
) const [inline]

the sub-domain indices next to boundary element.

returns -1 for void

void ngcomp::MeshAccess::GetSElPNums ( int  selnr,
Array< int > &  pnums 
) const

returns the points of a boundary element.

vertex and possibly edge-midpoints

ngfem::ElementTransformation& ngcomp::MeshAccess::GetTrafo ( int  elnr,
bool  boundary,
LocalHeap lh 
) const

returns the transformation from the reference element to physical element.

Given a point in the refrence element, the ElementTransformation can compute the mapped point as well as the Jacobian

update buffered global quantities.

Must be called after every change of the mesh topology


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