-
Notifications
You must be signed in to change notification settings - Fork 93
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
ExclusiveTopology skeletons #988
Comments
This boils down to: Is there a cheap algorithm to deduplicate the edges and vertices, given the grid and facet skeleton. Can you sketch the algorithm which you have in mind to achieve this? |
Currently, we only support ExclusiveTopology for grids where all cells have the same reference dimension, and then there is no need to de-duplicate as facet corresponds to vertex, edge, or face - same for all cells. If we have a grid with cells of different reference dimension, what is actually the definition of any skeleton? (7) --- (8) --- (9)
| | |
| 4 5 6 7
| | |
(4) --- (5) --- (6)
| | |
| 1 2 3 |
| | |
(1) --- (2) --- (3)
So to me it sounds like the skeleton functionality is tricky for mixed reference dimensions and only makes sense for facets between cells of the same reference dimension. Therefore, we would then rather error for mixed refdim grids on creating the skeleton, even after supporting topology for mixed refdims. If the need to combine these two features would come in the future, I guess there will be solutions, which just requires more information from the user side. E.g. the user could pass a cellset or similar to the topology constructor. |
In adaptivity with hexahedrons, don't you need to find hanging nodes on faces and edges, so only keeping track of facets would not be enough? |
Taking your example grid above, if I iterate over the edge skeleton, how do I know that I have visited an edge already only with the information with in EdgeIndex?
A set of unique entities. E.g. for the face skeleton a set with all unique faces.
The algorithms for adaptivity indeed need extra information, which is stored in the corresponding data structures. See e.g. Ferrite.jl/src/Adaptivity/BWG.jl Lines 795 to 919 in b913af4
|
Actually, it seems like grid = generate_grid(Quadrilateral, (2,1));
Ferrite.vertexskeleton(ExclusiveTopology(grid), grid) # Gives 8-element Vector{VertexIndex}: whereas there are only 6 unique vertices in this grid. This should be fixed!
Ah, should have known, I got confused since entities without neighbors are skipped by the Sidetrack, but is it only me who finds skeleton confusing? (It makes sense for facets, but for vertices these are not connected and its sounds strange.) Are |
Where does this function even come from? I can only remember providing the face skeleton for DG.
I do not understand the problem here. Can you elaborate?
Skeleton is the name used in literature, so we sticked to it while implementing it. |
This was included in the massive
Makes sense!
The InterfaceIterator only supports the case of single refdim, hence to me it made sense that the skeleton should also only support single refdim (and then facetskeleton should be enough). But since that errors for mixed refdim, I guess this is ok for now. |
Ah, I see. Yes, for now we mostly use the facet skeleton for operations on the trace space (e.g. interface integrals in DG). I know also use-cases where the edge skeleton or the vertex skeleton is needed, but these are really niche (e.g. interaction with generalized finite difference stencils or anisotropic preconditioning) so I think it is okay to just remove the edge and vertex skeleton for now.
Got it, thanks. |
While working with ExclusiveTopology in #974, I get the impression that we would only require a single
facet_skeleton::Vector{FacetIndex}
, instead of having separatevertex_skeleton
,edge_skeleton
, andface_skeleton
fields saved. I don't want to do those changes there since unrelated, but unless there is anything I'm missing, I think simplifying that in a later PR would be good...The text was updated successfully, but these errors were encountered: