Synopsis
Stores numeric data located at each node in a field.
group Node_Data {
int nnodes; /* number of nodes */
int nnode_data; /* number of data components */
Data_Array node_data[nnode_data] { /* component data */
nvals = nnodes;
};
};
Description
Node_Data stores the numeric data located at each node in a field. Its subobjects specify how many components there are in the field (nnode_data) and how many values there are for each component (nnodes). The last subobject, node_data, is an array of Data_Arrays, one for each component, that hold the actual data.
Subobjects
nnodes
An integer that specifies the total number of nodes in one component of the field. For example, a 64x64x64 field would have nnodes = 262144. (Components must all be the same length.) This nnodes value is used to set the nvals in the Data_Array of each component.
See FLDget_nnodes
nnode_data
An integer that specifies the number of components in the field. Fields often have more than one numeric value at each node. For example, a color image could have red, green, and blue values at each node (nnode_data = 3). Fluid flow data often has nnode_data = 5, with X, Y, and Z velocity vectors, density, and stagnation values at each node.
This nnode_data value is used to specify how many Data_Array subobjects, one for each component, to associate with the Node_Data.
Fields also support component subcomponents. Components may be represented as: (a, b, c). Subcomponents may be represented as: (a, [b, c], d). Both have three components, and their nnode_data = 3. However,
(a, [b, c], d)'s subcomponents [b, c] are not defined here in Node_Data. Rather, they are defined within the individual component's Data_Array as a veclen, in this case veclen = 2.
node_data[nnode_data]
An array of Data_Arrays that hold the actual node data. There are nnode_data Data_Arrray subobjects in the node_data array, one for each component.
node_data also defines the nval "number of values" subobject of each Data_Array to equal the number of nodes, nnodes.
Note that the type of the data (byte, int, float, and so on) is established within each Data_Array, not globally as part of Node_Data. This allows components to be of different types.
Example
Most module code in the modules directory shows examples of getting/setting nnodes and nnode_data. thresh.c is one specific example.
Files
v/fld.v
See also