Scalar, vector, tensor, texture and norm fields from vtk file

I’m writing results data out to various xml file formats (vti, vtu, vtp) depending on simulation data but regardless of whether it’s point or cell data, I usually have multiple scalars or vectors in the data and occasionally some tensors such as stress/strain.

While vtk files support “active” Scalars, Vectors, etc, I’m not quite sure how paraview deals with this information. For example, in the following example file, I have a few different types of DataArrays but I can’t see any difference in how vtk or paraview are differentiating between Normals and Vectors or even just some result which has 2,3 or 4 components. In my dataset I’m calling these multi-component scalars because they containing things like counters or percentage limits for results such as “failure mode” which may have several different modes (1,2,3,4, etc) but don’t have a magnitude and should be grouped together.

How are vtk/paraview differentiating? Does it just use the number of components? A single component is always scalar, 2-component is a texture, 3-5 is a vector and 6 or 9 are shown as tensors. I’ve also been experimenting with using some named components to help differentiate some of these multi-component scalars and by grouping them all under active Scalars in the vtk file which mean that when the are loaded in paraview the first component is always loaded first in the drop-down but I still see the magnitude option.

And the magnitude option still seems to be enabled for the Normals data, which seems somewhat redundant since everything will be 1 anyway. Can this also be disabled or controlled from within the vtk files or is it a paraview setting that needs to be specified?

test_uniform_image_data_3.vti (40.8 KB)

Simple, ParaView mostly ignore those fields and let users specify which field they want to visualize and which field filter should apply on.

Do you have any specific issue with that behavior ?