Equivalencing of nodes of a FEM mesh

About the development of the FEM module/workbench.

Moderator: bernd

User avatar
bernd
Veteran
Posts: 12851
Joined: Sun Sep 08, 2013 8:07 pm
Location: Zürich, Switzerland
Contact:

Equivalencing of nodes of a FEM mesh

Post by bernd »

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? ...
What exaclty is meant by "Equivalencing of nodes of a FEM mesh?" Does it mean you would like to clue meshes together?
aerospaceweeb
Posts: 118
Joined: Fri Apr 09, 2021 3:26 am

Re: Quad Mesh

Post by aerospaceweeb »

"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.
aerospaceweeb
Posts: 118
Joined: Fri Apr 09, 2021 3:26 am

Re: Quad Mesh

Post by aerospaceweeb »

Like this bernd
Equivalence_Example.PNG
Equivalence_Example.PNG (8.93 KiB) Viewed 2396 times
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.
User avatar
bernd
Veteran
Posts: 12851
Joined: Sun Sep 08, 2013 8:07 pm
Location: Zürich, Switzerland
Contact:

Re: Quad Mesh

Post by bernd »

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
aerospaceweeb
Posts: 118
Joined: Fri Apr 09, 2021 3:26 am

Re: Equivalencing of nodes of a FEM mesh

Post by aerospaceweeb »

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.
User avatar
bernd
Veteran
Posts: 12851
Joined: Sun Sep 08, 2013 8:07 pm
Location: Zürich, Switzerland
Contact:

Re: Equivalencing of nodes of a FEM mesh

Post by bernd »

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
User avatar
johnwang
Veteran
Posts: 1382
Joined: Sun Jan 27, 2019 12:41 am

Re: Equivalencing of nodes of a FEM mesh

Post by johnwang »

Got an example where two nodes are used at one location.
That is on the intersection edge, there are two set of nodes.
hinge3.FCStd
(3.82 KiB) Downloaded 50 times
hfc series CAE workbenches for FreeCAD (hfcNastran95, hfcMystran, hfcFrame3DD, hfcSU2 and more)
aerospaceweeb
Posts: 118
Joined: Fri Apr 09, 2021 3:26 am

Re: Equivalencing of nodes of a FEM mesh

Post by aerospaceweeb »

@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.
aerospaceweeb
Posts: 118
Joined: Fri Apr 09, 2021 3:26 am

Re: Equivalencing of nodes of a FEM mesh

Post by aerospaceweeb »

@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?
mesheb82
Posts: 9
Joined: Tue Jul 27, 2021 4:18 am

Re: Equivalencing of nodes of a FEM mesh

Post by mesheb82 »

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.
Post Reply