Specify Component Data with Expressions

When a data component can be expressed in terms of another, it is unnecessary to include the full set of values for both.

The derivative values can be computed by the program when the file is read. In this case, the component data is specified by abfDefineComponent(), which takes an expression string as its parameter, it is not specified by abfAddReals().

There are two methods used to refer to other components.

To reference components in the same request when the file being translated contains X, Y and Z components, the magnitude of the vector can also be designated by these values. This is done by passing the expression, sqrt(c0 * c0 + c1 * c1 + c2 * c2), to abfDefineComponent(). The variables, c0, c1, and c2, represent the first, second and third components in the request (numbering begins at zero).

To reference values in other requests, an expanded form of the previous method is used that includes datatype, request and component labels. Labels must be defined for all the file components. In the previous method, the variable c0 could be replaced with accel:head:X, where accel indicates the Acceleration datatype and head indicates, for instance, Driver Dummy Head. If the component is not specified (accel:head), the first component in that request is assumed. If neither request nor component is specified (accel or time), the first component in the first request is assumed.