Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unsupported cell types: pyramid, wedge #1249

Open
mlohry opened this issue Feb 7, 2024 · 6 comments
Open

Unsupported cell types: pyramid, wedge #1249

mlohry opened this issue Feb 7, 2024 · 6 comments
Milestone

Comments

@mlohry
Copy link

mlohry commented Feb 7, 2024

Meshes which use pyramid aka PYRA_5as well as wedge aka PENTA_6 elements, as specified in the conduit mesh docs, are not supported as seen here:

ASCENT_ERROR("Unsupported cell type "<<shape_type);

Are there plans to support this, or the arbitrary polyhedron type?

@cyrush
Copy link
Member

cyrush commented Feb 8, 2024

related to:
#1038

we do have arbitrary polyhedral support, here is an test that plots one of our example meshes:

https://github.com/Alpine-DAV/ascent/blob/develop/src/tests/ascent/t_ascent_render_3d_poly.cpp

This allows you to have heterogeneous element types within a topology as well as polyhedra.

Long term: goal is to support unstructured pyramids and widgets, as well heterogeneous elements w/o the full polyhedra spec.

@cyrush cyrush modified the milestones: 0.10.0, 0.9.4 May 10, 2024
@FreddieWitherden
Copy link

Is there a proposed Conduit syntax for what mixed topologies (but with fixed element types rather than polyhedra) would look like?

@cyrush
Copy link
Member

cyrush commented May 21, 2024

Hi @FreddieWitherden

Yes, Blueprint provides the a concept of a shape_map + a shapes array, and a set of indexed arrays for this case:

https://llnl-conduit.readthedocs.io/en/latest/blueprint_mesh.html#mixed-topologies-with-shapes-shape-map

The conduit braid example dataset has a mixed case that demos this, it includes fixed element types and polyehdra, here is a snapshot:

state: 
  time: 3.1415
  cycle: 100
coordsets: 
  coords: 
    type: "explicit"
    values: 
      x: [-10.0, -5.0, 0.0, ..., 5.0, 10.0]
      y: [-10.0, -10.0, -10.0, ..., 10.0, 10.0]
      z: [-10.0, -10.0, -10.0, ..., 10.0, 10.0]
topologies: 
  mesh: 
    type: "unstructured"
    coordset: "coords"
    elements: 
      shape: "mixed"
      shape_map: 
        polyhedral: 42
        tet: 10
        hex: 12
      shapes: [10, 10, 10, ..., 42, 12]
      sizes: [4, 4, 4, ..., 5, 8]
      offsets: [0, 4, 8, ..., 787, 792]
      connectivity: [0, 1, 5, ..., 124, 123]
    subelements: 
      shape: "mixed"
      shape_map: 
        quad: 9
        tri: 5
      shapes: [9, 9, 9, ..., 5, 5]
      sizes: [4, 4, 4, ..., 3, 3]
      offsets: [0, 4, 8, ..., 570, 573]
      connectivity: [1, 26, 30, ..., 122, 118]
fields: 
  braid: 
    association: "vertex"
    topology: "mesh"
    values: [3.42859718441792, 0.153213421293581, 0.725718098203051, ..., -0.449498317544991, -1.1475095392738]
  vel: 
    association: "vertex"
    topology: "mesh"
    values: 
      u: [-10.0, -5.0, 0.0, ..., 5.0, 10.0]
      v: [-10.0, -10.0, -10.0, ..., 10.0, 10.0]
      w: [-10.0, -10.0, -10.0, ..., 10.0, 10.0]

For the case w/o polyhedra, you won't need the sub-elements -- it would look more like:

elements: 
      shape: "mixed"
      shape_map: 
        pyramid: 14
        wedge: 13
        tet: 10
        hex: 12
      shapes: [10, 10, 10, ..., 14, 12]
      sizes: [4, 4, 4, ..., 5, 8]
      offsets: [0, 4, 8, ..., 787, 792]
      connectivity: [0, 1, 5, ..., 124, 123]

@FreddieWitherden
Copy link

Perfect! I'll get support wired up in our code for this. We only need it for pyramids (since being high-order we have to subdivide and pyramids divide into pyramids and tets giving rise to a mixed grid).

What are the blockers in terms of getting Ascent ready for pyramids and prisms?

@cyrush
Copy link
Member

cyrush commented May 21, 2024

We will first add pyramids and wedges as single element types, then support mixed meshes.
We plan to have this done in June.

@cyrush
Copy link
Member

cyrush commented May 21, 2024

#1302 Adds support for all pyramid and all wedge typologies.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants