Element Struct Reference

Stores one element of a mesh. More...

#include <mesh.h>

List of all members.

Public Member Functions

bool is_triangle () const
bool is_quad () const
bool is_curved () const
int get_mode () const
int next_vert (int i) const
int prev_vert (int i) const
bool hsplit () const
bool vsplit () const
bool bsplit () const
Elementget_neighbor (int ie) const
 Returns a pointer to the neighboring element across the edge 'ie', or NULL if it does not exist or is across an irregular edge.
double get_area () const
 Calculates the area of the element. For curved elements, this is only an approximation: the curvature is not accounted for.
double get_diameter () const
 Returns the length of the longest edge for triangles, and the length of the longer diagonal for quads. Ignores element curvature.
void ref_all_nodes ()
void unref_all_nodes (HashTable *ht)

Public Attributes

int id
 element id number
unsigned nvert:30
 number of vertices (3 or 4)
unsigned active:1
 0 = active, no sons; 1 = inactive (refined), has sons
unsigned used:1
 array item usage flag
int marker
 element marker
int userdata
 arbitrary user-defined data
int iro_cache
 increase in integration order, see RefMap::calc_inv_ref_order()
Nodevn [4]
 vertex node pointers
union {
   Node *   en [4]
 edge node pointers
   Element *   sons [4]
 son elements (up to four)
}; 
CurvMapcm
 curved mapping, NULL if not curvilinear

Detailed Description

Stores one element of a mesh.

The element can be a triangle or a quad (nvert == 3 or nvert = 4), active or inactive.

Vertex/node index number [2] (3)-------(2) | | [3]| quad. |[1] | | (0)-------(1) [0] Active elements are actual existing elements in the mesh, which take part in the computation. Inactive elements are those which have once been active, but were refined, ie., replaced by several other (smaller) son elements. The purpose of the union is the following. Active elements store pointers to their vertex and edge nodes. Inactive elements store pointers to thier son elements and to vertex nodes.

If an element has curved edges, the member 'cm' points to an associated CurvMap structure, otherwise it is NULL.


Member Function Documentation

bool Element::bsplit (  )  const [inline]
double Element::get_area (  )  const

Calculates the area of the element. For curved elements, this is only an approximation: the curvature is not accounted for.

double Element::get_diameter (  )  const

Returns the length of the longest edge for triangles, and the length of the longer diagonal for quads. Ignores element curvature.

int Element::get_mode (  )  const [inline]
Element * Element::get_neighbor ( int  ie  )  const

Returns a pointer to the neighboring element across the edge 'ie', or NULL if it does not exist or is across an irregular edge.

bool Element::hsplit (  )  const [inline]
bool Element::is_curved (  )  const [inline]
bool Element::is_quad (  )  const [inline]
bool Element::is_triangle (  )  const [inline]
int Element::next_vert ( int  i  )  const [inline]
int Element::prev_vert ( int  i  )  const [inline]
void Element::ref_all_nodes (  ) 
void Element::unref_all_nodes ( HashTable ht  ) 
bool Element::vsplit (  )  const [inline]

Member Data Documentation

union { ... }
unsigned Element::active

0 = active, no sons; 1 = inactive (refined), has sons

curved mapping, NULL if not curvilinear

edge node pointers

element id number

increase in integration order, see RefMap::calc_inv_ref_order()

element marker

unsigned Element::nvert

number of vertices (3 or 4)

son elements (up to four)

unsigned Element::used

array item usage flag

arbitrary user-defined data

vertex node pointers


The documentation for this struct was generated from the following files:
Generated on Sat Jun 5 15:17:43 2010 for Hermes2D Library: Real Version by  doxygen 1.6.3