perform arbitrary math operations on cell-based data
module DVcell_data_math {
string+IPort2 operation = "#1";
Mesh+Cell_Data+IPort2+nonotify &in1;
Mesh+Cell_Data+IPort2+nonotify &in2;
Mesh+Cell_Data+IPort2+nonotify &in3;
Mesh+Cell_Data+IPort2+nonotify &in4;
int+IPort2 data_type = 4;
int dim => in1.ncell_sets;
group+nonotify out_data[dim] {
int ncells => in1.cell_set[index_of(out_data)].ncells;
int ncell_data=1;
Data_Array cell_data[ncell_data] {
&id => in1.cell_set[index_of(out_data)].cell_data[0].id;
&veclen => in1.cell_set[index_of(out_data)].cell_data[0].veclen;
prim values[nvals][veclen];
labels = "cell_data_math";
};
};
group+nonotify out_sets[dim] {
group &out_set => merge(out_data[index_of(out_sets)],
in1.cell_set[index_of(out_sets)]);
};
Cells+Cell_Data+write+nonotify out_cd {
*cell_set[];
ncell_sets => array_size(cell_set);
};
Mesh+OPort2+nonotify &out =>merge(out_cd, in1);
method+notify_val+notify_inst upd_data_math<status=1>
="DVcell_data_math";
};
DVcell_data_math performs arbitrary math operations on up to four cell-based data sets. You can use any operation or expression that can be specified in the V language to operate on the data. The expression you enter may use #1, #2, #3, and
#4 to stand for the four input fields.
The elementwise math expression to perform on the input fields' cell data set(s). Use #1 through #4 to refer to the input fields.
Mesh+Cell_Data+IPort2+nonotify &in1
Mesh+Cell_Data+IPort2+nonotify &in2
Mesh+Cell_Data+IPort2+nonotify &in3
Mesh+Cell_Data+IPort2+nonotify &in4
The desired type of the output data set, as follows:
Mesh+Cell_Data+OPort2+nonotify &out
The output field containing the resulting cell data set.