fcFEM - FEA from start to finish

About the development of the FEM module/workbench.

Moderator: bernd

User avatar
HarryvL
Posts: 1042
Joined: Sat Jan 06, 2018 7:38 pm

Re: fcFEM - FEA from start to finish

Postby HarryvL » Sun Feb 17, 2019 10:00 pm

Is there a simple way to test what PART a mesh volume element is a member of (embedded in)? I need this info to resolve a boundary condition issues across interface elements.
User avatar
HarryvL
Posts: 1042
Joined: Sat Jan 06, 2018 7:38 pm

Re: fcFEM - FEA from start to finish

Postby HarryvL » Sun Feb 17, 2019 10:32 pm

An example of curved interface elements and a jump in boundary condition ... stiff, smooth axle pushed down in soft material. it is clear from the deformed mesh that the soft material can slide in two directions tangentially along the shaft.


punch indentation mesh.jpg
punch indentation mesh.jpg (97.65 KiB) Viewed 382 times



punch indentation.jpg
punch indentation.jpg (96.13 KiB) Viewed 382 times
User avatar
HarryvL
Posts: 1042
Joined: Sat Jan 06, 2018 7:38 pm

Re: fcFEM - FEA from start to finish

Postby HarryvL » Mon Feb 18, 2019 12:19 am

And again, export to VTK works:


punch_indentation_VTK.png
punch_indentation_VTK.png (207.71 KiB) Viewed 371 times

punch_indentation.gif
punch_indentation.gif (988.42 KiB) Viewed 371 times
User avatar
Pauvres_honteux
Posts: 196
Joined: Sun Feb 16, 2014 12:05 am
Location: Far side of the moon

Re: fcFEM - FEA from start to finish

Postby Pauvres_honteux » Mon Feb 18, 2019 6:09 am

:shock: the foundation of forging simulations!

Harry, you are really something extra!!
User avatar
bernd
Posts: 8216
Joined: Sun Sep 08, 2013 8:07 pm
Location: Zürich, Switzerland

Re: fcFEM - FEA from start to finish

Postby bernd » Mon Feb 18, 2019 9:20 am

HarryvL wrote:
Sun Feb 17, 2019 10:00 pm
Is there a simple way to test what PART a mesh volume element is a member of (embedded in)? I need this info to resolve a boundary condition issues across interface elements.
Would you like to knw to which PART a element belongs to, or would youl like to know to which Solid of a Part an element belongs to?

Best would be to post some specific example file.
User avatar
HarryvL
Posts: 1042
Joined: Sat Jan 06, 2018 7:38 pm

Re: fcFEM - FEA from start to finish

Postby HarryvL » Mon Feb 18, 2019 9:52 am

bernd wrote:
Mon Feb 18, 2019 9:20 am
... or would youl like to know to which Solid of a Part an element belongs to?
That’s indeed what meant. The main issue was that initially I could not achieve a jump in displacement boundary condition as shown in the above example. The reason is that in a compound, nodes are duplicated across solids. Only mesh volume elements have unique nodes. So I wanted to test for every “ConstraintDisplacement” node what elements it is attached to and then see what solid those elements belong to. This is an indirect way of testing if the node is really part of the target face.

In the end I solved it differently. I use meshtools.get_femnodes_ele_table(mesh.Nodes, femelement_table) to get a dictionary that collects all volume elements that a candidate boundary node connects to and then I test if at least one of those volume elements has a face (ie 6 nodes) on the boundary.

So for now it works but feels a bit clunky.
thschrader
Posts: 1407
Joined: Sat May 20, 2017 12:06 pm
Location: Germany

Re: fcFEM - FEA from start to finish

Postby thschrader » Mon Feb 18, 2019 8:11 pm

HarryvL wrote:
Fri Feb 15, 2019 11:47 pm
Hi Thomas,

General/motivation; there are quite a few practical and interesting engineering problems that are hard to do or even impossible with the current FreeCAD/Calculix combination and I don’t think adding more external solvers or waiting for their developer(s) is the answer. For example: mixed meshes (sandwich panels, soil/structure interaction, pre-stressed concrete, bridges), analysis beyond limit points (plastic collapse of frames, plates and soil bodies, non-linear buckling of structures, etc.)

Specific: I built a macro that takes FC mesh and material data and performs the basic tasks of a finite element program. Now I am adding functionality that allows me to do the analyses that were previously out of reach. Zero-thickness elasto-plastic interface elements were high on the list for me as they are a simple and robust alternative for (small deformation) contact problems and can be used in mixed meshes to model the interaction (e.g. cohesive or frictional slip) between 1D/2D structural elements and the surrounding 3D matrix (eg concrete reinforcement, soil anchors, tunnel linings, foundation plates, piles).

Status: basic linear elastic solver framework and curved 2D interface elements work, although I am still running into trouble with more complex contact geometries. This is work in progress.

Next steps: 1) calculate and export stress results (note: interface elements are really handy to visualize contact stresses); 2) extend the solver framework to handle plasticity and collapse (simplest example being the slip and pull-out of structural elements along elasto-plastic interfaces); 3) include simple, traditional, beams and shell elements; 4) include general material and geometric non-linearity for 1D, 2D and 3D elements; 5) Add essential QT5 GUI functionality to provide specific input; 6) Make available for testing.
Harry,
thanks for this detailed explanation. I am not a "theory-guy", thats why I asked for a "break".
I often wondered why people are spending time into putting a new FEM solver into Freecad
( I mean only static analysis). But as Bernd mentioned (am I right?) calculix is a "one man show" from
Guido Dhondt. This could be difficult for the future. So keep on your spirit Harry :)
Thomas
User avatar
HarryvL
Posts: 1042
Joined: Sat Jan 06, 2018 7:38 pm

Re: fcFEM - FEA from start to finish

Postby HarryvL » Fri Feb 22, 2019 11:43 pm

Contact stresses for two stacked blocks compressed at the top:


Interface Contact Pressure.png
Interface Contact Pressure.png (105.09 KiB) Viewed 233 times


looks promising, but needs further verification for more complex geometries, e.g. the punch indentation problem from my earlier post:


punch_indentation_Contact_Pressure.png
punch_indentation_Contact_Pressure.png (283.62 KiB) Viewed 233 times
-alex-
Posts: 167
Joined: Wed Feb 13, 2019 9:42 pm
Location: France

Re: fcFEM - FEA from start to finish

Postby -alex- » Sat Feb 23, 2019 7:10 pm

Hi Harry, I first thank you for the job and devellopements you are doing in this great FEM module. My first post in FEM forum, have to thanks Bernd and others FEM devellopers too :D .

The internal solver you are develloping is very exciting and your actual investigation are very promasing, I hope there will be implemented soon in FEM module (even if I remember Freecad motto :roll: ).
I'm just an end user with no skills in programming, if i understand correctly you are now dealing with contact stuffs, and multi-mesh bodies/shells/beams.
I used Solidwoks simulation in the past and there are several ways to define contacts beetwen faces:
- select faces in contact manualy (pretty fastidious for large models)
- select bodies or parts in contact then an auto-detection of faces in contact is performed (far better)
What is your vision? Are you devellopping such kind of system? manual selection? Auto detection of faces in contact beetween multi-bodies or beetween parts (by using boolean fragment and compounds)?
Last question: what about contact condition? (friction, penetration, possibility of gap).
Hope I'm unambiguious, forgive my limited english.

Alex
User avatar
HarryvL
Posts: 1042
Joined: Sat Jan 06, 2018 7:38 pm

Re: fcFEM - FEA from start to finish

Postby HarryvL » Sat Feb 23, 2019 9:34 pm

Hi Alex, the interface elements are generated automatically between bodies that share a face. In the two examples I present above it works well, but there are plenty cases where the mesh generation does not deliver what I need. So this is still very much work in progress and I fear that I will have to dig deep to understand the file structure between GMSH and FreeCAD before I have a robust, automatic scheme.

I programmed a classical zero thickness interface element. For now it behaves elastically (normal stiffness and shear stiffness), but can easily be extended to elasto-plasticity (on my todo list). This enables description of stick-slip, friction and separation. In fact they can all be captured in a single Coulomb plasticity model with tension cut-off. The advantage of this model compared to the contact model in Calculix is that convergence is fast and stable. The drawback is that it only works for relatively small deformations (ie not suitable for a car crash simulation). The applications I envisage are more in civil engineering (soil-structure interaction, delamination, pre-stressed concrete, etc)