Cell Grid

Hi,

could you point me out to where do I find a file example of the novel CellGrid that is in Paraview that I can potentially download and inspect?
Any further documentation that I might look at while trying to implement it?

Best

I believe @dcthomp could help you

Sorry for the slow reply. Here are some examples

  • dgHexahedra.dg (5.7 KB) has two tri-linear (in shape) hexahedra with functions from a variety of different function spaces (including tri-quadratic Lagrange/H-grad). The scalar3 field shows how continuous (point-centered H-grad a.k.a. Lagrange) fields can be specified. Other fields (scalar0, scalar1, scalar2, quadratic) show how discontinuous H-grad fields may be specified. The curl1 and div1 fields show how the fields from the H-curl and H-div function spaces may be specified (these are only for discontinuous formulations at the moment).
  • dgGhostHexahedra.dg (5.6 KB) has the same geometry above but demonstrates how ghost-node information in the cell-types dictionary entries can be used to handle distributed-memory parallelism. 8 of the 12 nodes are marked as ghost nodes, so only 5 faces of one cell appear when rendering the data.
  • dgTetrahedra.dg (5.1 KB) has two linear tetrahedra.
  • dgQuadrilateral.dg (3.8 KB) has two bi-linear quadrilaterals.
  • dgQuadraticQuadrilaterals.dg (4.7 KB) has two bi-quadratic (in shape) quadrilaterals. You will notice some futziness with the adaptive (on-GPU) tessellation as you align the camera with some axes. But the rendering does perform adaptive tessellation and per-fragment scalar-field interpolation for coloring.
  • dgTriangle.dg (3.7 KB)
  • dgPyr19.dg (2.5 KB) demonstrates a 19-node pyramid.
  • dgWedges.dg (3.9 KB) has two tri-linear wedge elements.
  • dgMixed.dg (6.0 KB) demonstrates how multiple types of cells may exist in the same vtkCellGrid instance (though I strongly advise against this: it is preferred to use a vtkPartitionedDataSetCollection of vtkCellGrid instances with one cell-grid per cell shape).
  • fandisk.dg (110.0 KB) is a larger, all-hexahedral mesh with a few nonsensical scalar fields.
  • bunny-small.dg (7.0 MB) is a larger (though still not large), all-tetrahedral volume mesh of the Stanford bunny.

In terms of developer documentation:

  • if you are trying to understand the JSON cell-grid file format see here
  • if you are writing filters for cell-grids see here
  • if you are writing (or trying to read the existing) rendering code for cell-grids see here
  • discourse topics provide a brief overview of the design here and here
  • There are a couple of figures in this blog post that might be helpful.

That’s about it. Feel free to ask more specific, detail-oriented questions.

Hi @dcthomp thanks a lot for the very detailed answer. I’ll try to mess around with it a little bit and if any doubt arises I will get back in touch!