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

Revive mixed dimensional relations in topology #843

Open
termi-official opened this issue Nov 14, 2023 · 1 comment
Open

Revive mixed dimensional relations in topology #843

termi-official opened this issue Nov 14, 2023 · 1 comment

Comments

@termi-official
Copy link
Member

The initial version of our topology was able to handle mixed dimensional constraints, but it was removed to obtain type stability in #753 which made the topology construction a bit faster . The idea is for the recovery of this feature basically 6 additional collections for neighborhoods:

  • 3D -> 2D
  • 2D -> 3D
  • 3D -> 1D
  • 1D -> 3D
  • 2D -> 1D
  • 1D -> 2D
    And to have queries by co-dimension which directly works on these arrays. This should be enough for type stability.
@termi-official
Copy link
Member Author

I think with the new face and edge API we can query mixed-dimensional relations in a type stable way with the queries on FaceIndex and EdgeIndex.

Minimal test:

using Ferrite
cells = [
    Hexahedron((1, 2, 3, 4, 5, 6, 7, 8)),
    Quadrilateral((3, 2, 9, 10)),
    ]
nodes = [Node(coord) for coord in zeros(Vec{3,Float64}, 10)]
grid = Grid(cells, nodes)

topo = ExclusiveTopology(grid)
@assert any(.!isempty.(topo.edge_edge_neighbor))

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

1 participant