# IBM Visualization Data Explorer Programmer's Reference

[ Bottom of Page | Previous Page | Next Page | Table of Contents | Partial Table of Contents | Index ]

## 12.2 Group Class

This section summarizes the routines used with Groups, including those that manipulate members, Series Groups, MultiGrid Groups, Composite Field Groups, and parts of a Group. For a detailed description of Groups, see Chapter 3. "Understanding the Data Model" in IBM Visualization Data Explorer User's Guide.

### Generic Operations

This section describes routines used to manipulate the members of a Group.

`Group DXNewGroup()` | Creates a new generic Group Object. See DXNewGroup.
`Group DXSetMember()` | Adds a member to a Group. See DXSetMember.
`Object DXGetMember()` | Gets a named member of a Group. See DXGetMember.
`Group DXGetMemberCount()` | Retrieves the number of members in a group. See DXGetMemberCount.
`Object DXGetEnumeratedMember()` | Returns the members of a Group by index. See DXGetEnumeratedMember.
`Group DXSetEnumeratedMember()` | Adds a member to a Group by index. See DXSetEnumeratedMember.
`Group DXSetGroupType() Group DXSetGroupTypeV();` | Associates a type with a Group. See DXSetGroupType, DXSetGroupTypeV.
`Group DXUnsetGroupType()` | Unsets the type associated with a Group. See DXUnsetGroupType.
`Class DXGetGroupClass()` | Returns the subclass of a Group Object. See Note on Use. See DXGetGroupClass.

Note on Use
The following is an example of how this routine is used:
        switch (DXGetGroupClass(g)) {
        case CLASS_COMPOSITEFIELD
             ...
             break;
        case CLASS_SERIES
             ...
             break;
        }

### Series Groups

Series Groups are a subclass of Group. A Series represents a single Field sampled across some parameter (e.g., a simulation of a CMOS device across a temperature range). Members of a Series have a position. A copy of the position is found in the "series position" attribute.

Every member of the Series must have the same dimensionality, the same data type, and the same connections element type. Members are stored in and retrieved from a Series Group by index rather than by name. Members cannot be retrieved by Series value.

`DXSeries NewSeries()` | Creates a new Series Object. See DXNewSeries.
`Series DXSetSeriesMember()` | Adds an indexed member to a Series Object. See DXSetSeriesMember.
Note: | `DXSetMember()` and `DXSetEnumeratedMember()` can also be used: the position is assumed to be the same as the sequence number of the member.
`Object DXGetSeriesMember()` | Returns an indexed member from a Series Object. See DXGetSeriesMember.
Note: | `DXGetMember()` and `DXGetEnumeratedMember()` can also be used for this purpose, but they do not return the `position` value.

### MultiGrid Groups

A MultiGrid is a Group of Fields that is treated as a single entity. It is useful, for example, for holding certain kinds of simulation data represented by disjoint grids. All the members of a MultiGrid Group must have the same type of data and the same type of connection. However, unlike members of a Composite Field, Multigrid members are not required to be disjoint and abutting. The invalid-positions and invalid-connections components can be used to define which points of a grid are valid in a region of grid overlap.

`MultiGrid DXNewMultiGrid()` | Creates a new MultiGrid Object. See DXNewMultiGrid.

### Composite Fields

A Composite Field is a Group of Fields treated as a single entity. Parallelism in Data Explorer is achieved by explicitly partitioning Fields into a Composite Field. Composite Fields are typically created with the `DXPartition` routine (see DXPartition).

The connections component of each member must be of the same type, and the members are expected to be disjoint and abutting (i.e., sharing positions, data, etc., at the boundary).

`CompositeField DXNewCompositeField()` | Creates a new Composite Field Object. See DXNewCompositeField.

### Parts

The Parts routines are provided to allow easier manipulation of all Fields in a Group Object without having to explicitly traverse the Object.

Figure 8. Parts of a Group

`Object DXProcessParts()` | Applies a function to every constituent Field (part) of a given Object. See DXProcessParts.

Note: | `DXGetPart()`, `DXGetPartClass()`, and `DXSetPart()` are useful for prototyping and in cases where convenience outweighs efficiency. `DXProcessParts()` can often be used for the same purposes, and with greater efficiency.

`Field DXGetPart()` | Returns the parts of an Object by index. See DXGetPart.
`Object DXGetPartClass()` | Returns by index only those sub-members of the given Group that are parts of a specified class. Note that `DXGetPart(o, n)` is equivalent to `DXGetPartClass(o, n, CLASS_FIELD)`. See DXGetPartClass.
`Object DXSetPart()` | Sets a Field as a part of an Object. See DXSetPart.

[ Top of Page | Previous Page | Next Page | Table of Contents | Partial Table of Contents | Index ]
[Data Explorer Documentation | QuickStart Guide | User's Guide | User's Reference | Programmer's Reference | Installation and Configuration Guide ]

[Data Explorer Home Page]

[IBM Home Page | Order | Search | Contact IBM | Legal ]