-
Notifications
You must be signed in to change notification settings - Fork 92
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
Grid inconsistencies #394
Comments
Let us use this issue to gather general problems with the grid and its interface. I will pick documenting part of this this. My vote would go for defining different entity types. For example we have partial entities local to a cell (currently named FaceIndex, EdgeIndex and VertexIndex) where I am not sure if vertex cosistently refers to an actual vertex and not also too notes. Further we have the global entities which are defined by sorted tuples of vertices.
Another issue is that for large grids the recommended way for boundary integrals is O(N), which can become surprisingly slow. |
We also should check for more definition inconsistencies in what edges and faces are. |
I dont think CellIndex is used anywhere in ferrite, and one reason to not use it is because then you cant do stuff like cellid + 10 (though, I dont know how common this is either) |
I tried to get a bit of an overview of the grid interface and figured I could share my notes/thoughts here. I found a few (probably known) inconsistencies and made some suggestions on how they could be fixed. Also related to the Grid interfaceCoordinates
Nodes
Cells
Ideas for changesDeprecation and replacement
Suggestion for new methods
Personal thoughts on naming
I have often wanted to write Faces, edges, verticesTackled in #581, notes here for referenceEdit based on @termi-official's clarification below (ref) and discussion in 581
(The local (algebraic) node index refers to the coordinate number in the |
Note that I suggest a renaming of Edit: Also note that |
Nice change!
Im not sure if I follow, do you mean something else than that they return global vs local indices? |
For cells the corresponding vertex node indices are returned while for interpolations all local dof indices on the closure of the entity are returned. E.g. for a quadratic triangle with quadratic Lagrange interpolation faces(cell) would return something like ((1,3),(3,2),(2,1)) while faces(ip) returns something like ((1,3,4),(3,2,5),(2,1,6)). |
Aha, I missed that completely now. |
Related comment for reference #743 (comment) : Is the vertex in 1D a face? |
I think this is all handled. |
There are a few inconsistencies related to the
Grid
typeGrid
the cellsets defined asDict{String,Set{Int}}
, but I guess we should useDict{String,Set{CellIndex}}
Ferrite.jl/src/Grid/grid.jl
Line 105 in a8b0690
compute_vertex_values
should probably renamed tocompute_nodal_values
since the vertex is defined as the corners of a cell and neglects the "higher order" nodesFerrite.jl/src/Grid/grid.jl
Lines 246 to 260 in a8b0690
I don't know who or what part of Ferrite uses this function, but strictly speaking this would be a breaking change. Although easy to fix for everyone.
@termi-official edit the issue or write me if I forgot something
The text was updated successfully, but these errors were encountered: