mesh.h File Reference

#include "common.h"
#include <common/array.h>
#include <common/arrayptr.h>
#include <common/mapord.h>

Go to the source code of this file.

Classes

class  Vertex
 Represents a vertex in 3D. More...
class  Edge
 Represents an edge in 3D. More...
class  Tri
 Represents a triangle in 3D. More...
class  Quad
 Represents a quadrilateral in 3D. More...
class  Facet
 Stores information about neighboring elements. More...
class  Element
 Base class for elements (abstract). More...
class  Hex
 Represents hexahedron in 3D. More...
class  Tetra
 Represents tetrahedron in 3D. More...
class  Prism
 Represents prism in 3D. More...
class  Boundary
 Base class for boundaries of all types. More...
class  BoundaryTri
 Triangular boundary. More...
class  BoundaryQuad
 Quadrilateral boundary. More...
class  Mesh
 Represents the geometry of a mesh. More...

Defines

#define FOR_ALL_VERTICES(idx, mesh)   for (Word_t (idx) = (mesh)->vertices.first(); (idx) != INVALID_IDX; (idx) = (mesh)->vertices.next((idx)))
 Iterates over all mesh vertex indices.
#define FOR_ALL_EDGES(idx, mesh)   for (Word_t (idx) = (mesh)->edges.first(); (idx) != INVALID_IDX; (idx) = (mesh)->edges.next((idx)))
 Iterates over all mesh edge indices.
#define FOR_ALL_FACETS(idx, mesh)   for (Word_t (idx) = (mesh)->facets.first(); (idx) != INVALID_IDX; (idx) = (mesh)->facets.next((idx)))
 Iterates over all mesh face indices.
#define FOR_ALL_ELEMENTS(idx, mesh)
 Iterates over all mesh element indices.
#define FOR_ALL_ACTIVE_ELEMENTS(idx, mesh)
 Iterates over all active mesh element indices.
#define FOR_ALL_INACTIVE_ELEMENTS(idx, mesh)
 Iterates over all inactive mesh element indices.
#define FOR_ALL_BASE_ELEMENTS(idx, mesh)
 Iterates over all base mesh element indices.
#define H3D_REFT_HEX_NONE   0x0000
#define H3D_REFT_HEX_X   0x0001
#define H3D_REFT_HEX_Y   0x0002
#define H3D_REFT_HEX_Z   0x0003
#define H3D_H3D_REFT_HEX_XY   0x0004
#define H3D_H3D_REFT_HEX_XZ   0x0005
#define H3D_H3D_REFT_HEX_YZ   0x0006
#define H3D_H3D_H3D_REFT_HEX_XYZ   0x0007
#define H3D_REFT_FACE_NONE   0x0000
#define H3D_REFT_QUAD_HORZ   0x0001
#define H3D_REFT_QUAD_VERT   0x0002
#define H3D_REFT_QUAD_BOTH   0x0003
#define H3D_SPLIT_NONE   0x0000
#define H3D_SPLIT_HEX_X   0x0001
#define H3D_SPLIT_HEX_Y   0x0002
#define H3D_SPLIT_HEX_Z   0x0004
#define H3D_H3D_SPLIT_HEX_XY   H3D_SPLIT_HEX_X | H3D_SPLIT_HEX_Y
#define H3D_H3D_SPLIT_HEX_XZ   H3D_SPLIT_HEX_X | H3D_SPLIT_HEX_Z
#define H3D_H3D_SPLIT_HEX_YZ   H3D_SPLIT_HEX_Y | H3D_SPLIT_HEX_Z
#define H3D_H3D_H3D_SPLIT_HEX_XYZ   H3D_SPLIT_HEX_X | H3D_SPLIT_HEX_Y | H3D_SPLIT_HEX_Z

Define Documentation

#define FOR_ALL_ACTIVE_ELEMENTS ( idx,
mesh   ) 
Value:
for (Word_t (idx) = (mesh)->elements.first(), _max = (mesh)->elements.count(); (idx) <= _max && (idx) != INVALID_IDX; (idx) = (mesh)->elements.next((idx))) \
                if ((mesh)->elements[idx]->used) \
                        if ((mesh)->elements[idx]->active)

Iterates over all active mesh element indices.

Parameters:
idx Element hash table index.
mesh Pointer to the Mesh object.
#define FOR_ALL_BASE_ELEMENTS ( idx,
mesh   ) 
Value:
for (Word_t (idx) = (mesh)->elements.first(); (idx) <= mesh->get_num_base_elements(); (idx) = (mesh)->elements.next((idx))) \
                if ((mesh)->elements[idx]->used)

Iterates over all base mesh element indices.

Parameters:
idx Element hash table index.
mesh Pointer to the Mesh object.
#define FOR_ALL_EDGES ( idx,
mesh   )     for (Word_t (idx) = (mesh)->edges.first(); (idx) != INVALID_IDX; (idx) = (mesh)->edges.next((idx)))

Iterates over all mesh edge indices.

Parameters:
idx Edge hash table index.
mesh Pointer to the Mesh object.
#define FOR_ALL_ELEMENTS ( idx,
mesh   ) 
Value:
for (Word_t (idx) = (mesh)->elements.first(), _max = (mesh)->elements.count(); (idx) <= _max && (idx) != INVALID_IDX; (idx) = (mesh)->elements.next((idx))) \
                if ((mesh)->elements[idx]->used)

Iterates over all mesh element indices.

Parameters:
idx Element hash table index.
mesh Pointer to the Mesh object.
#define FOR_ALL_FACETS ( idx,
mesh   )     for (Word_t (idx) = (mesh)->facets.first(); (idx) != INVALID_IDX; (idx) = (mesh)->facets.next((idx)))

Iterates over all mesh face indices.

Parameters:
idx Face hash table index.
mesh Pointer to the Mesh object.
#define FOR_ALL_INACTIVE_ELEMENTS ( idx,
mesh   ) 
Value:
for (Word_t (idx) = (mesh)->elements.first(), _max = (mesh)->elements.count(); (idx) <= _max && (idx) != INVALID_IDX; (idx) = (mesh)->elements.next((idx))) \
                if ((mesh)->elements[idx]->used) \
                        if (!(mesh)->elements[idx]->active)

Iterates over all inactive mesh element indices.

Parameters:
idx Element hash table index.
mesh Pointer to the Mesh object.
#define FOR_ALL_VERTICES ( idx,
mesh   )     for (Word_t (idx) = (mesh)->vertices.first(); (idx) != INVALID_IDX; (idx) = (mesh)->vertices.next((idx)))

Iterates over all mesh vertex indices.

Parameters:
idx Vertex hash table index.
mesh Pointer to the Mesh object.
#define H3D_H3D_H3D_REFT_HEX_XYZ   0x0007
#define H3D_H3D_H3D_SPLIT_HEX_XYZ   H3D_SPLIT_HEX_X | H3D_SPLIT_HEX_Y | H3D_SPLIT_HEX_Z
#define H3D_H3D_REFT_HEX_XY   0x0004
#define H3D_H3D_REFT_HEX_XZ   0x0005
#define H3D_H3D_REFT_HEX_YZ   0x0006
#define H3D_H3D_SPLIT_HEX_XY   H3D_SPLIT_HEX_X | H3D_SPLIT_HEX_Y
#define H3D_H3D_SPLIT_HEX_XZ   H3D_SPLIT_HEX_X | H3D_SPLIT_HEX_Z
#define H3D_H3D_SPLIT_HEX_YZ   H3D_SPLIT_HEX_Y | H3D_SPLIT_HEX_Z
#define H3D_REFT_FACE_NONE   0x0000
#define H3D_REFT_HEX_NONE   0x0000
#define H3D_REFT_HEX_X   0x0001
#define H3D_REFT_HEX_Y   0x0002
#define H3D_REFT_HEX_Z   0x0003
#define H3D_REFT_QUAD_BOTH   0x0003
#define H3D_REFT_QUAD_HORZ   0x0001
#define H3D_REFT_QUAD_VERT   0x0002
#define H3D_SPLIT_HEX_X   0x0001
#define H3D_SPLIT_HEX_Y   0x0002
#define H3D_SPLIT_HEX_Z   0x0004
#define H3D_SPLIT_NONE   0x0000
Generated on Fri Sep 3 09:22:20 2010 for Hermes3D Library: Real Version by  doxygen 1.6.3