Hello,
I am rather new to paraview, and I have a rather complicated challenge. I will divide this topic in three parts: (1) some background, (2) summary of data sets and (3) what I am trying to do
Some background:
We have a code, suitable for exa-scale supercomputing, which provides data in semi-disconnected patches (each patch is locally Cartesian), the simulation setup can have different, non-cartesian geometries. For example, now I am running simulations, where I have Cartesian patches arranged in almost a spherical arrangement, they have small overlaps. Each of these patches have their own local cartesian meshes (let’s say 20x20x20 cells) and a rotation matrix to know, where these cells would end up in a global reference frame.
My current lightweight development setup has about 25000 of such patches, arranged in 5 spherical shells. Production runs could have orders of magnitude more patches.
In short, the data set includes:
a large series of patches in some arbitrary arrangement;
each of these patches have central positions in global reference frame
each of these patches have local Cartesian system, with cell positions being in reference to the patch centre
each patch has a rotation matrix to know the orientation of the patch in a global domain
combining the local positions with global positions and the rotation matrix, I can have exact positions of each cell in the global reference frame ( matmul(e_rot, loc_pos)+glob_pos
)
Loading all the data as a single point would be a terrible idea, of course.
My question is - is there an efficient way to load such data sets, e.g. using vtkPartitionedDataSet
? Ideally I would like to load all the Cartesian patches and give them a position and tilt with respect to the centre of the global frame of reference.
Lastly, since these patches are fully locally Cartesian, they overlap each other in the global domain. Would Paraview handle the overlaps correctly? E.g. using data just from one source? Or should I expect glitches at such interfaces?
Thank you very much in advance,
Andrius