# IBM Visualization Data Explorer Programmer's Reference

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

## 14.2 Interpolation and Mapping

The interpolation service described here performs linear interpolations on the values of a Field or Composite Field. The values are those of a function y(x) defined in terms of points xi ("positions"), values yi ("data"), and basis functions bi (x) (implicitly defined by the element type or by the faces).

Interpolator Objects are the interface to calling applications. They:

- Provide interpolation methods that are appropriate to the values in the Field Object operated on. The choice of method is based on factors such as the hierarchical structure of the data model, data formats, primitive types, and interpolation model.
- Contain data structures that facilitate interpolation. These structures are initialized either:
  - immediately, when the interpolator is created, or
  - on demand, during the interpolation process. This delayed initialization is especially useful when the data being interpolated is partitioned and only some of the partitions require interpolation. However, if the interpolator is intended for sharing, it must be fully initialized before it is copied. This initialization can be done in parallel prior to the creation of subtasks.
- Use information gathered in previous interpolations to speed subsequent interpolations. For that reason, Interpolator Objects contain data specific to the process that uses the interpolator. Consequently, each parallel process must be provided with its own interpolator. The most efficient way of creating such "individualized" interpolators is to generate a single, fully initialized interpolator; pass it to the parallel subtasks that need to use it; and have the subtasks then copy that interpolator for local operation. When this approach is used, the parent interpolator cannot delay initialization: it must be fully initialized before it is copied.

Note: Fields interpolated through this interface must have the same dimensionality as the space in which they are embedded. For example, triangles embedded in a 2-dimensional plane can be interpolated; triangles in 3-dimensional space cannot. For interpolation, faces must link 2-dimensional positions, and data must be dependent on "faces."

    enum interp_init {
        INTERP_INIT_DELAY,
        INTERP_INIT_IMMEDIATE,
        INTERP_INIT_PARALLEL
    };

`Interpolator DXNewInterpolator()` | Creates an Interpolator Object. See DXNewInterpolator.
`Interpolator DXInterpolate()` | Interpolates data values in a Field. See DXInterpolate.
`Interpolator DXLocalizeInterpolator()` | Copies the interpolator structures into local memory. See DXLocalizeInterpolator.
`Object DXMap()` | Interpolates data values at sample points. See DXMap.
`Array DXMapArray()` | Provides an intermediate-level mapping function. See DXMapArray.
`Object DXMapCheck()` | Verifies that Objects are valid for mapping. See DXMapCheck.

[ 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 ]