Subsections

3.1 Mesh Entity Types

A mesh consists of entities, such as nodes and elements. Entities always have a local number, which is just the entities' current index in its array. Entites may also have a global number, which is the entity's index in the unpartitioned serial mesh. Entities have data values called attributes. For example, the location of each node might be called the ``location'' attribute of the ``node'' entity type. Attributes are always stored in regular arrays indexed by the entity's local number. This table lists the different attributes that can be read or written for each type of entity.

A shared entity is a boundary entitity that two or more chunks can both update--currently, only nodes can be shared. Shared nodes are mixed in with regular nodes, and the framework currently provides no way to identify which nodes are shared.

A ghost entity is a boundary entity that is asymmetrically shared--one side provides values for the ghost from one of its real entities, and the other sides accept read-only copies of these values. Ghosts are described in more detail in Section 5, and can be accessed by adding the constant FEM_GHOST to the corresponding real entity's type.

The different kinds of entities are described in the following sections.

Real Entity Ghost Entity
FEM_NODE FEM_GHOST+FEM_NODE
FEM_ELEM+ FEM_GHOST+FEM_ELEM+
FEM_SPARSE+ FEM_GHOST+FEM_SPARSE+

3.1.1 Nodes

FEM_NODE is the entity code for nodes, the simplest kind of entity. A node is a single point in the domain, and elements are defined by their nodes. Nodes can have the following attributes:

3.1.2 Elements

FEM_ELEM+ is the entity code for one kind of element. is a small, user-defined value that uniquely identifies this element type. Like nodes, elements can have the attributes FEM_DATA+, FEM_GLOBALNO, or FEM_SYMMETRIES; but every element type must have this attribute:

3.1.3 Sparse Elements

FEM_SPARSE+ is the entity code for one kind of sparse element. Again, is a small, user-defined unique value. The only difference between ordinary elements and sparse elements regards partitioning. Ignoring ghosts, ordinary elements are never duplicated--each element is sent to its own chunk. Sparse elements may be duplicated, and are always dependent on some other entity for their partitioning. Sparse elements have all the attributes of ordinary elements: FEM_DATA+, FEM_GLOBALNO, FEM_SYMMETRIES, and FEM_CONN, as well as the special attribute FEM_SPARSE_ELEM.

Without the FEM_SPARSE_ELEM attribute, a sparse element will be copied to every chunk that contains all the sparse element's nodes. This is useful for things like node-associated boundary conditions, where the sparse element connectivity might list the nodes with boundary conditions, and the sparse element data might list the boundary condition values.

The FEM_SPARSE_ELEM attribute lists the ordinary element each sparse element should be partitioned with. This attribute consists of pairs (,), indicating that this sparse element should be sent to wherever the 'th FEM_ELEM+ is partitioned.

June 29, 2008
FEM Homepage
Charm Homepage