What exaclty is meant by "Equivalencing of nodes of a FEM mesh?" Does it mean you would like to clue meshes together?aerospaceweeb wrote: ↑Fri Jul 30, 2021 3:51 am ... Is there a macro that is already written that can perform the equivalencing of nodes in FreeCAD FEM? ...
Equivalencing of nodes of a FEM mesh
Moderator: bernd
Forum rules
and Helpful information for the FEM forum
and Helpful information for the FEM forum
Equivalencing of nodes of a FEM mesh
-
- Posts: 118
- Joined: Fri Apr 09, 2021 3:26 am
Re: Quad Mesh
"Equivalence" is the patran term for "if two nodes are on top of eachother, delete one, and make the elements using those nodes attach together by the one node that remains."
I don't know what else gmsh or FreeCAD would call that operation.
I don't know what else gmsh or FreeCAD would call that operation.
-
- Posts: 118
- Joined: Fri Apr 09, 2021 3:26 am
Re: Quad Mesh
Like this bernd
Where the total number of nodes in the model goes from 8, to 7, as one of them is deleted, and two elements end up sharing the one.Re: Quad Mesh
AFAIK there is no tool in FreeCAD which can do this on a existing mesh. In GMSH this can be adjusted on mesh time. ATM we do not create two nodes AFAIK. Means modells are clued together. If you would like to have to nodes you have to make a gap in the geometry.
That said. Since mesh are clued already in GMSH there was no need for such a tool.
bernd
That said. Since mesh are clued already in GMSH there was no need for such a tool.
bernd
-
- Posts: 118
- Joined: Fri Apr 09, 2021 3:26 am
Re: Equivalencing of nodes of a FEM mesh
Ah that makes sense.
In that sense, gmsh is certainly like a modern auto-mesher like I've seen in hyperworks, where geometry must be explicitly connected in order for it to share a common mesh. It's a far more robust way to do things if you have very high quality geometry, but it kind of ignores orphan mesh operations, which is understandable. Orphan meshes are a real pain to deal with, especially if you have a robust enough code base to do geometric feature recognition, which gmsh absolutely does.
I'll add to a todo list that I should look into the scipy kdtree utility for node equivolencing.
PyNastran uses it, and I think it could be pretty useful in some cases.
One key example I've used before is when I need to connect some parts together that may not have their nodes in exactly the right location.
I forsee a way to attach two meshes together at a common edge with it, or something. Might be useful.
In that sense, gmsh is certainly like a modern auto-mesher like I've seen in hyperworks, where geometry must be explicitly connected in order for it to share a common mesh. It's a far more robust way to do things if you have very high quality geometry, but it kind of ignores orphan mesh operations, which is understandable. Orphan meshes are a real pain to deal with, especially if you have a robust enough code base to do geometric feature recognition, which gmsh absolutely does.
I'll add to a todo list that I should look into the scipy kdtree utility for node equivolencing.
PyNastran uses it, and I think it could be pretty useful in some cases.
One key example I've used before is when I need to connect some parts together that may not have their nodes in exactly the right location.
I forsee a way to attach two meshes together at a common edge with it, or something. Might be useful.
Re: Equivalencing of nodes of a FEM mesh
May be one remark. In FreeCAD FEM I do try to avoid to work with meshes manually as much as possible. Everything is on the geometry. Only the preferences of the mesher are changed but not the mesh itself once it is meshed. since all constraints are defined on the geometry you can make the mesh as often as you wish and change anything you want and just remesh. You do not need it for results either. The results do have their own mesh.
bernd
bernd
Re: Equivalencing of nodes of a FEM mesh
Got an example where two nodes are used at one location.
That is on the intersection edge, there are two set of nodes.
That is on the intersection edge, there are two set of nodes.
-
- Posts: 118
- Joined: Fri Apr 09, 2021 3:26 am
Re: Equivalencing of nodes of a FEM mesh
@Bernd,
I understand that you prefer to work with geometry as much as possible.
In the cases of working with orphan meshes, which is something that I run into quite a bit, the ability to manually move individual nodes and equivalence them is something that I can't really think of a way around, for the super old fashioned way that Patran users (like me) think.
A good alternative for nastran esque workflows could be to allow usage of RBE2s similar to how I saw you had Ties implemented. https://forum.freecadweb.org/viewtopic. ... 3&start=20
I'll try this out something like this later today, I think this could be a good workaround. "Sewing" nodes together with RBARs and RBE2s is one of the original ways that glued contact was modeled. In my opinion, Calculix handles things like ties in a slightly better way than how nastran handles things like RBE2s to sew faces together. A single tie card can do what you'd need a ton of individual RBE2s tying nodes together to do with nastran. It makes sense that nodal equivalencing isn't as important for calculix, in my opinion. There's other options for non-coincident meshes that are pretty good by comparison, in my opinion.
I understand that you prefer to work with geometry as much as possible.
In the cases of working with orphan meshes, which is something that I run into quite a bit, the ability to manually move individual nodes and equivalence them is something that I can't really think of a way around, for the super old fashioned way that Patran users (like me) think.
A good alternative for nastran esque workflows could be to allow usage of RBE2s similar to how I saw you had Ties implemented. https://forum.freecadweb.org/viewtopic. ... 3&start=20
I'll try this out something like this later today, I think this could be a good workaround. "Sewing" nodes together with RBARs and RBE2s is one of the original ways that glued contact was modeled. In my opinion, Calculix handles things like ties in a slightly better way than how nastran handles things like RBE2s to sew faces together. A single tie card can do what you'd need a ton of individual RBE2s tying nodes together to do with nastran. It makes sense that nodal equivalencing isn't as important for calculix, in my opinion. There's other options for non-coincident meshes that are pretty good by comparison, in my opinion.
-
- Posts: 118
- Joined: Fri Apr 09, 2021 3:26 am
Re: Equivalencing of nodes of a FEM mesh
@JohnWang
I'm stuck thinking about something.
Is there a way we could have made your hinge problem, if we had complete geometry to represent the mesh, as Bernd mentioned is the norm in FreeCAD?
I can think of a few ways, but they're all kind of bad.
Manually splitting the surfaces perpendicularly to the hinges would have guarantee'd that there would always be nodes at the edge in certain places, but all you would have to do is put a more refined mesh on those split surfaces, and then there would be more nodes on that edge than we would have known to create 1D bar elements for?
Do you know how other solvers that have more kinds of connectors handle this issue?
I'm stuck thinking about something.
Is there a way we could have made your hinge problem, if we had complete geometry to represent the mesh, as Bernd mentioned is the norm in FreeCAD?
I can think of a few ways, but they're all kind of bad.
Manually splitting the surfaces perpendicularly to the hinges would have guarantee'd that there would always be nodes at the edge in certain places, but all you would have to do is put a more refined mesh on those split surfaces, and then there would be more nodes on that edge than we would have known to create 1D bar elements for?
Do you know how other solvers that have more kinds of connectors handle this issue?
Re: Equivalencing of nodes of a FEM mesh
The challenge with that is you run into lots of problems with doubly dependent nodes. Equivalencing avoids that problem. You can technically avoid it with a rbe2-celas-rbe2 connector (or conversely rbe3s), but you need to be very careful with how you define your dependent degrees of freedom.
I can make you a routine if you have a bag of node ids and xyz locations.
I can make you a routine if you have a bag of node ids and xyz locations.