Parallelism in vtkHyperTreeGrid


I think this is the best place to post my question. I am currently looking at the vtkHyperTreeGrid to see how good it fits my needs. Let say that I have a 2D simulation ran over 16 domains using adaptive mesh refinement starting from level min up to level max if needed (with levelmin cells potentially shared between multiple domains). Until now, I build only one vtkHyperTreeGrid by adding the refinement information of each domains one after another, this works perfectly. Except fot the htg->GetPointData()->GetArray(“anArray”)->GetRange() which gives bad results if no value where added to coarse cells. But in order to have more flexibility and exploit multiprocessing, I am trying to figure out how to use vtkMultiBlockDataSet and/or vtkMultiPieceDataSet in my example. Should I create one hyperTreeGrid for each levelmin cells belonging to one domain and deal with collection of HyperTreeGrids ?

For your information: @LEKIEN

Salut Loïc, :wink:

As it stands, the vtkHyperTreeGrid does not fully support that a tree of decomposition of the grid is shared between several subdomains.

This is particularly the case with the filter for the generation of ghost meshes which only takes into account a whole and unique distribution of the trees of the grid on the servers.
It is normal for the htg-> GetPointData()->GetArray(“anArray”)->GetRange() to give a “bad” result if you have not assigned consistent values ​​to the coarse cells. In fact, I advise you to apply an EvaluateCoarse filter to assign a consistent value to coarse cells (several operators are available for this filter).

I use the vtkMultiBlockDataSet to describe several meshes (HTG or not) contributing to the same simulation (ex: different materials).
I use the vtkMultiPieceDataSet vtk to describe several parts of the same mesh (material) present on a ParaView server.
A piece of this vtkMultiPieceDataSet vtk describes a vtkHyperTreeGrid including the global description of the grid including among others the refinement factor, and the trees described in this part.
In our proprietary reader, we have chosen to define only one piece per server (the reader grouping together on the fly the various calculation subdomains for which the server is responsible). In fact, I only have one piece that is described per server, containing a vtkHyperTreeGrid where a set of grid decomposition trees is described.
The ghost cell generator handles this very well.


thank your for your reply.

1 Like