CFDRangeNodeData

Synopsis

The CFDRangeNodeData module processes multi-block data, setting the min/max elements of each block to either the true global values or to user-defined values.


module CFDRangeNodeData <src_file="cfdrange.c"> {
  Node_Data+read+notify+req &in <NEportLevels={2,0}>[];
  CFDRangeParams &CFDRangeParams <NEportLevels={2,0}>;
  double+read+notify+req min => CFDRangeParams.min;
  double+read+notify+req max => CFDRangeParams.max;
  int+read+notify+req lock_mode => CFDRangeParams.lock_mode;
  int nblocks => array_size(in);
    
  Node_Data+write+nonotify+OPort2 out[nblocks] => in;
  omethod+notify_val+notify_inst update <status=1> = "cfd_range_update";
};

Description

The CFDRangeNodeData module is a true multi-block module, the C code takes an array of blocks in and out. Actually, the output is CONNECTED to the input in V, so this is a pure reference pass-through module. It modifies the data inplace.

If locked mode is off, it scans ALL the data in ALL the blocks, and finds each data component range. It then SETS the min/max subelement in EACH block to be this value, to force global consistancy. The first data element in the first component is shown on the user-interface.

If lock mode is on, then the user type-in values on the interface or parameter block are used to force this range on all data components. This is likely to work best on just a single component, and is intended to have extract_component_ARR upstream.

Inputs

&in

The input mult-block array of NodeData.

&CFDRangeParams

Reference to the parameter block, which contains real instances of the min, max and lock_mode parameters.

min

User-defined min value for data if lock_mode is on.

max

User-defined max value for data if lock_mode is on.

lock_mode

Toggle the lock_mode. If on, the min/max values of the multi-block data is set to the user-defined values. If off, the true global value from the input blocks is used.

Outputs

out

The output multi-block node data array with the min/max subelements set accordingly.

Utility Macros

The user interface is provided in the CFDRangeUI macro, and this is combined with the low-level CFDRangeNodeData module to form the User Macro cfd_range.

Example

An example application is not provided.

Files

iac_proj/cfdrange/cfdrmods.v contains the CFDRangeParams group and the CFDRangeNodeData module V definitions.

Other Notes

The low-level CFDRangeMods library containing the module CDFRangeNodeData does not specify a process. By default the express process will be used.

Authors

Ian Curington

Modifications

Paul G. Lever

Contact

International AVS Centre
Manchester Visualization Centre
Manchester Computing
University of Manchester
Oxford Road
Manchester
United Kingdom
M13 9PL

See Also

CFDRangeParams, CFDRangeUI, cfd_range