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
Periodic vertexonlymesh #2437
Periodic vertexonlymesh #2437
Conversation
I believe this is doing the "Quick" solution suggested in #2185 . |
Sure, and I think that's good. It's a small amount of work which makes a lot of things work that don't currently. I don't think it's at all worse than what we're currently doing, and I don't think we should refrain from improving the current situation in favour of a potential future fix. If we ever get there then reversing this change is very easy. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Needs some changes but if this works without significant performance losses at VertexOnlyMesh
creation time then great
Also do our own halo elimination for free.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This looks good pending some tidying on the commit history and adding a small amount of documentation. I hope the tests pass!
|
Great that this all passed tests and works though! Thanks for the PR 😃 |
Since we switched to doing cell location and point location using _parent_mesh_embedding, which relies on firedrake's notion of cells and point locations as opposed to using PETSc's DMPlex embedding via DMSwarmSetPointCoordinates (PR #2437), we ought to be able to support extruded meshes. After all, .at works on extruded meshes!
Since we switched to doing cell location and point location using _parent_mesh_embedding, which relies on firedrake's notion of cells and point locations as opposed to using PETSc's DMPlex embedding via DMSwarmSetPointCoordinates (PR #2437), we ought to be able to support extruded meshes. After all, .at works on extruded meshes!
Since we switched to doing cell location and point location using _parent_mesh_embedding, which relies on firedrake's notion of cells and point locations as opposed to using PETSc's DMPlex embedding via DMSwarmSetPointCoordinates (PR #2437), we ought to be able to support extruded meshes. After all, .at works on extruded meshes!
Since we switched to doing cell location and point location using _parent_mesh_embedding, which relies on firedrake's notion of cells and point locations as opposed to using PETSc's DMPlex embedding via DMSwarmSetPointCoordinates (PR #2437), we ought to be able to support extruded meshes. After all, .at works on extruded meshes!
This PR swaps the order of mesh searching in the VertexOnlyMesh setup so that we do the Firedrake search for parent mesh cell inclusion before the PETSc one. We then use this to set up the swarm coordinates instead of calling
swarm.setPointCoordinates
. This means that we're not dependent on Firedrake and DMPlex agreeing on how coordinates work.This needs a little cleanup and docstrings, and I need to do the parallel bounding box elimination (which isn't hard). I think the extension to extrusion is probably fairly straightforward and I think I might know how to do bendy.