conduit icon indicating copy to clipboard operation
conduit copied to clipboard

Documentation -- Example Triangle mesh has bad connectivity

Open gsjaardema opened this issue 5 years ago • 1 comments

On the https://llnl-conduit.readthedocs.io/en/latest/blueprint_mesh.html#tris example, I think that the connectivity for the "odd" numbered triangles is incorrect. For all of the "even" triangles, the connectivity progresses clockwise around the element; for the "odd-numbered" triangles, the connectivity progresses counter-clockwise around the element. I think that they should be consistent -- either all CW or all CCW.

topologies: 
  mesh: 
    type: "unstructured"
    coordset: "coords"
    elements: 
      shape: "tri"
      connectivity: [0, 3, 4, 0, 1, 4, 1, 4, 5, 1, 2, 5, 3, 6, 7, 3, 4, 7, 4, 7, 8, 4, 5, 8]

image

gsjaardema avatar Nov 30 '20 22:11 gsjaardema

The orientations are inconsistent in this example because Blueprint doesn't require/enforce any particular element orientation; so long as the vertices of an element are presented end-to-end (which is always the case for triangles), the schema is considered to be valid. That being said, I've been thinking a lot about this issue lately in the context of LLNL data exchange and I think it may be beneficial to allow for the specification of an orientation field for unstructured topologies to enable annotation, enforcement, and transformation at the Conduit/Blueprint layer. Bringing this concept into Blueprint would allow us to better handles cases wherein the client has some assumptions about element orientation, like a recipient code that assumes all CCW orientations in 2D.

@cyrush: Do you have any thoughts on this? This is very relevant for @terryhaut's current use case and something I've been planning to incorporate into #651.

xjrc avatar Dec 01 '20 16:12 xjrc