Modeling bolt connection with preloaded beam element

Hi everybody,
it’s my first time here so i’d like, first, to say thank you to the people that are improving the software.
I’m planning to test this software in some jobs where i’m using Ansys (some simple structures). The future objective is to use PrePoMax in the early stage of the design and Ansys only for the final checks.
The software has almost all the needed features, the only thing that is missing is the design of bolt connections. I’m tryng to create the missing parts with the editor (Model → Edit Calculix Keyword) but I have some problems.
In Ansys I use spring elements with preload and Cylindrical Joint (it’s basically a rigid radial connection) to simulate the bolt connection.



In PrePoMax I’m plannig to use the beam element with preload instead of the spring (for the Cylindrical Joint I’ll think how to do later).
I created a model and changed the script using the file in this video as reference (https://www.youtube.com/watch?v=VA0eg0LWfWM&t=783s) but the analisys has some issue and I can’t find the problem.
Can someone help me? On the forum I saw that no one indicated the entire procedure to follow, which I would like to describe.
BoltConnectionDesign.pmx (849.9 KB)

1 Like

You should make sure that it works with beam elements without pre-tension first (pre-tension with beams in CalculiX is tricky as those elements are deleted internally). It seems that the model is underconstrained. Also, the beams are misplaced.

BoltConnectionDesign_mod.pmx (322.1 KB)

Something similar is used in the Nastran world for aircraft structures. The fasteners are modeled using springs/beams and it is connected to the mesh directly (or to the hole border) using interpolation elements. I would like to see this in PrePoMax in the future!

“Sealing” connection in Hypermesh:
image

Same for OptiStruct:
image

Good evening FEAnalyst,
I checked at first the correct position of the beams but I changed so many things tryng to solve this problem that it seams I made some mystakes with the nodes in the last try.
By the way even with the correct beams position the anlaysis is a failure.
In the different attempts I found that changing the reference nodes in the load:
*Cload
5678,1,80000
5679,1,80000

with, for example, existing nodes (I know that is not correct):
*Cload
678,1,80000
679,1,80000
I obtain some results (even if they are obviously incorrect).
Isn’t that strange?
Attached the PrePoMax with preload activated and Cload “wrongly” changed (if you insert the reference nodes you’ll see that the analysis is a failure).
BoltConnectionDesign_mod2.pmx (543.0 KB)

P.S.1: In Ansys with the same restrain the system is not underconstrained (but I added some other restrain, I’m more interested in find the problem with the pretension at the moment)
P.S.2: I watched all your videos on youtube, they are really well made

*CLOAD should be applied to the reference node of the pre-tension section. Maybe there’s an issue with the way those beam elements are attached to the solid model. CalculiX documentation suggests distributing coupling and equation constraints for that. There’s a simple example that you can try first:

**
**   Structure: bolt-like structure.
**   Test objective: pre-tension force with beam element.
**
*NODE, NSET=Nall
       1,0.000000000000e+00,0.000000000000e+00,0.000000000000e+00
       2,0.000000000000e+00,1.000000000000e+00,0.000000000000e+00
       3,2.000000000000e-01,1.000000000000e+00,0.000000000000e+00
       4,2.000000000000e-01,0.000000000000e+00,0.000000000000e+00
       5,1.414213562373e-01,0.000000000000e+00,-1.414213562373e-01
       6,1.414213562373e-01,1.000000000000e+00,-1.414213562373e-01
       7,1.000000000000e+00,1.000000000000e+00,0.000000000000e+00
       8,1.000000000000e+00,0.000000000000e+00,0.000000000000e+00
       9,7.071067811865e-01,0.000000000000e+00,-7.071067811865e-01
      10,7.071067811865e-01,1.000000000000e+00,-7.071067811865e-01
      11,2.000000000000e-01,5.000000000000e-01,0.000000000000e+00
      12,1.847759065023e-01,0.000000000000e+00,-7.653668647302e-02
      13,1.414213562373e-01,5.000000000000e-01,-1.414213562373e-01
      14,1.847759065023e-01,1.000000000000e+00,-7.653668647302e-02
      15,6.000000000000e-01,1.000000000000e+00,0.000000000000e+00
      16,6.000000000000e-01,0.000000000000e+00,0.000000000000e+00
      17,4.242640687119e-01,0.000000000000e+00,-4.242640687119e-01
      18,4.242640687119e-01,1.000000000000e+00,-4.242640687119e-01
      19,1.000000000000e+00,5.000000000000e-01,0.000000000000e+00
      20,9.238795325113e-01,0.000000000000e+00,-3.826834323651e-01
      21,7.071067811865e-01,5.000000000000e-01,-7.071067811865e-01
      22,9.238795325113e-01,1.000000000000e+00,-3.826834323651e-01
      23,2.775557561563e-17,0.000000000000e+00,-2.000000000000e-01
      24,2.775557561563e-17,1.000000000000e+00,-2.000000000000e-01
      25,2.220446049250e-16,0.000000000000e+00,-1.000000000000e+00
      26,2.220446049250e-16,1.000000000000e+00,-1.000000000000e+00
      27,7.653668647302e-02,0.000000000000e+00,-1.847759065023e-01
      28,2.775557561563e-17,5.000000000000e-01,-2.000000000000e-01
      29,7.653668647302e-02,1.000000000000e+00,-1.847759065023e-01
      30,1.249000902703e-16,0.000000000000e+00,-6.000000000000e-01
      31,1.249000902703e-16,1.000000000000e+00,-6.000000000000e-01
      32,3.826834323651e-01,0.000000000000e+00,-9.238795325113e-01
      33,2.220446049250e-16,5.000000000000e-01,-1.000000000000e+00
      34,3.826834323651e-01,1.000000000000e+00,-9.238795325113e-01
      35,-1.414213562373e-01,0.000000000000e+00,-1.414213562373e-01
      36,-1.414213562373e-01,1.000000000000e+00,-1.414213562373e-01
      37,-7.071067811865e-01,0.000000000000e+00,-7.071067811865e-01
      38,-7.071067811865e-01,1.000000000000e+00,-7.071067811865e-01
      39,-7.653668647302e-02,0.000000000000e+00,-1.847759065023e-01
      40,-1.414213562373e-01,5.000000000000e-01,-1.414213562373e-01
      41,-7.653668647302e-02,1.000000000000e+00,-1.847759065023e-01
      42,-4.242640687119e-01,0.000000000000e+00,-4.242640687119e-01
      43,-4.242640687119e-01,1.000000000000e+00,-4.242640687119e-01
      44,-3.826834323651e-01,0.000000000000e+00,-9.238795325113e-01
      45,-7.071067811865e-01,5.000000000000e-01,-7.071067811865e-01
      46,-3.826834323651e-01,1.000000000000e+00,-9.238795325113e-01
      47,-2.000000000000e-01,0.000000000000e+00,-8.326672684689e-17
      48,-2.000000000000e-01,1.000000000000e+00,-8.326672684689e-17
      49,-1.000000000000e+00,0.000000000000e+00,-2.775557561563e-16
      50,-1.000000000000e+00,1.000000000000e+00,-2.775557561563e-16
      51,-1.847759065023e-01,0.000000000000e+00,-7.653668647302e-02
      52,-2.000000000000e-01,5.000000000000e-01,-8.326672684689e-17
      53,-1.847759065023e-01,1.000000000000e+00,-7.653668647302e-02
      54,-6.000000000000e-01,0.000000000000e+00,-1.804112415016e-16
      55,-6.000000000000e-01,1.000000000000e+00,-1.804112415016e-16
      56,-9.238795325113e-01,0.000000000000e+00,-3.826834323651e-01
      57,-1.000000000000e+00,5.000000000000e-01,-2.775557561563e-16
      58,-9.238795325113e-01,1.000000000000e+00,-3.826834323651e-01
      59,-1.414213562373e-01,0.000000000000e+00,1.414213562373e-01
      60,-1.414213562373e-01,1.000000000000e+00,1.414213562373e-01
      61,-7.071067811865e-01,0.000000000000e+00,7.071067811865e-01
      62,-7.071067811865e-01,1.000000000000e+00,7.071067811865e-01
      63,-1.847759065023e-01,0.000000000000e+00,7.653668647302e-02
      64,-1.414213562373e-01,5.000000000000e-01,1.414213562373e-01
      65,-1.847759065023e-01,1.000000000000e+00,7.653668647302e-02
      66,-4.242640687119e-01,0.000000000000e+00,4.242640687119e-01
      67,-4.242640687119e-01,1.000000000000e+00,4.242640687119e-01
      68,-9.238795325113e-01,0.000000000000e+00,3.826834323651e-01
      69,-7.071067811865e-01,5.000000000000e-01,7.071067811865e-01
      70,-9.238795325113e-01,1.000000000000e+00,3.826834323651e-01
      71,-1.110223024625e-16,0.000000000000e+00,2.000000000000e-01
      72,-1.110223024625e-16,1.000000000000e+00,2.000000000000e-01
      73,-4.440892098501e-16,0.000000000000e+00,1.000000000000e+00
      74,-4.440892098501e-16,1.000000000000e+00,1.000000000000e+00
      75,-7.653668647302e-02,0.000000000000e+00,1.847759065023e-01
      76,-1.110223024625e-16,5.000000000000e-01,2.000000000000e-01
      77,-7.653668647302e-02,1.000000000000e+00,1.847759065023e-01
      78,-2.775557561563e-16,0.000000000000e+00,6.000000000000e-01
      79,-2.775557561563e-16,1.000000000000e+00,6.000000000000e-01
      80,-3.826834323651e-01,0.000000000000e+00,9.238795325113e-01
      81,-4.440892098501e-16,5.000000000000e-01,1.000000000000e+00
      82,-3.826834323651e-01,1.000000000000e+00,9.238795325113e-01
      83,1.414213562373e-01,0.000000000000e+00,1.414213562373e-01
      84,1.414213562373e-01,1.000000000000e+00,1.414213562373e-01
      85,7.071067811865e-01,0.000000000000e+00,7.071067811865e-01
      86,7.071067811865e-01,1.000000000000e+00,7.071067811865e-01
      87,7.653668647302e-02,0.000000000000e+00,1.847759065023e-01
      88,1.414213562373e-01,5.000000000000e-01,1.414213562373e-01
      89,7.653668647302e-02,1.000000000000e+00,1.847759065023e-01
      90,4.242640687119e-01,0.000000000000e+00,4.242640687119e-01
      91,4.242640687119e-01,1.000000000000e+00,4.242640687119e-01
      92,3.826834323651e-01,0.000000000000e+00,9.238795325113e-01
      93,7.071067811865e-01,5.000000000000e-01,7.071067811865e-01
      94,3.826834323651e-01,1.000000000000e+00,9.238795325113e-01
      95,1.847759065023e-01,0.000000000000e+00,7.653668647302e-02
      96,1.847759065023e-01,1.000000000000e+00,7.653668647302e-02
      97,9.238795325113e-01,0.000000000000e+00,3.826834323651e-01
      98,9.238795325113e-01,1.000000000000e+00,3.826834323651e-01
99,0.,0.,0.
100,0.,0.,0.
101,0.,0.,0.
*ELEMENT, TYPE=B31, ELSET=Ebeam
     1,      1,      2
*ELEMENT, TYPE=C3D20R, ELSET=Evol
     2,     3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
          13,    14,    19,    20,    21,    22,    15,    16,    17,    18
     3,     6,     5,    23,    24,    10,     9,    25,    26,    13,    27,
          28,    29,    21,    32,    33,    34,    18,    17,    30,    31
     4,    24,    23,    35,    36,    26,    25,    37,    38,    28,    39,
          40,    41,    33,    44,    45,    46,    31,    30,    42,    43
     5,    36,    35,    47,    48,    38,    37,    49,    50,    40,    51,
          52,    53,    45,    56,    57,    58,    43,    42,    54,    55
     6,    48,    47,    59,    60,    50,    49,    61,    62,    52,    63,
          64,    65,    57,    68,    69,    70,    55,    54,    66,    67
     7,    60,    59,    71,    72,    62,    61,    73,    74,    64,    75,
          76,    77,    69,    80,    81,    82,    67,    66,    78,    79
     8,    72,    71,    83,    84,    74,    73,    85,    86,    76,    87,
          88,    89,    81,    92,    93,    94,    79,    78,    90,    91
     9,    84,    83,     4,     3,    86,    85,     8,     7,    88,    95,
          11,    96,    93,    97,    19,    98,    91,    90,    16,    15
*ELEMENT,TYPE=DCOUP3D,ELSET=Ecoup1
10,100
*ELEMENT,TYPE=DCOUP3D,ELSET=Ecoup2
11,101
*MATERIAL,NAME=EL
*ELASTIC
210000.,.3
*SOLID SECTION,ELSET=Evol,MATERIAL=EL
*BEAM SECTION,ELSET=Ebeam,MATERIAL=EL,SECTION=RECT
0.001,0.001
0.,0.,1.
*PRE-TENSION SECTION,ELEMENT=1,NODE=99
0.,1.,0.
*NSET,NSET=FIX
49,68,61,80,73,92,85,97,8,20,9,32,25,44,37,56
*NSET,NSET=Ncoup1
5,12,4,95,83,87,71,75,59,63,47,51,35,39,23,27
*NSET,NSET=Ncoup2
6,14,3,96,84,89,72,77,60,65,48,53,36,41,24,29
*BOUNDARY
FIX,1,3
*DISTRIBUTING COUPLING,ELSET=Ecoup1
Ncoup1,1.
*DISTRIBUTING COUPLING,ELSET=Ecoup2
Ncoup2,1.
*EQUATION
2
100,1,1.,1,1,-1.
2
100,2,1.,1,2,-1.
2
100,3,1.,1,3,-1.
*EQUATION
2
101,1,1.,2,1,-1.
2
101,2,1.,2,2,-1.
2
101,3,1.,2,3,-1.
*STEP
*STATIC
*CLOAD
99,1,1.
*NODE PRINT,NSET=Nall
U
*NODE PRINT,NSET=Ncoup1,TOTALS=YES
RF
*NODE PRINT,NSET=Ncoup2,TOTALS=YES
RF
*END STEP

Ah! ok… reading the “.inp” file I associated the *EQUATION at a sort of “rigid link” between the edge of the hole and the node of the beam so I didn’t added it (for that I have the constraints “BOLT-B-1-RIGID”, “BOLT-B-2-RIGID”,… ).

If it’s as you say, well, that is something so unfriendly that is basically unusable for my projects where I have at the minimum 10/15 bolts.

Without even the graphic visualization of the bolt and the preload for a check of the input data and, I suppose, the possibility to check the preload in the bolt after the analysis (as you said the bolt is deleted after the analysis).

My only hope is that mr. Matej will consider in the future to implement these two features (bolt with preload and cylindrical joint).

I’ll write something in the relative section.

Thankyou very much for the help.

You can still try with just the rigid body constraint, possibly using a very simple model like a single brick/cylinder or two such parts connected together. But it may not work properly and there are still the limitations of pre-tension with beam elements. So all in all, it might be best to just model the bolts as solids.

Those might be better as feature requests for CalculiX. Especially improved preloaded bolts. You could ask Guido (CalculiX) dev about it or post here: GitHub - Dhondtguido/CalculiX: This repository contains the source files of CalculiX, a three-dimensional Finite Element Program (www.calculix.de).

Thank you, that’s a great idea… I’ll do as you suggest…

good night

Side note, by using solid elements and connecting the bolt head to the shaft with tied contact, you can use the History output to get the summed up normal/shear loads + moments for the slave surface.

2 Likes

That’ really interesting Gunnar.
Can you please share the .pmx file?

Sure
BoltConnectionDesign_solid-bolt.pmx (352.3 KB)

It would be nice if you could run the same simulation with Ansys for comparing the results (I’m just interested in the beam forces + moments in the bolt head region) and how many iterations Ansys needs per time step (with default settings and similar mesh).

Thank you

Very interesting and stable. May I ask you why you define two rigid bodies with the same Ref ?. Is it a Prpomax limitation?

You could save the contact definition requesting the SOF SOM directly at the internal surface. I will try to do it with Prepomax. Calc_em proposed a workaround on the Calculix forum.

True this is just a habit and not necessary at all.

That’s definitely just as good, but i prefer to work with the gui only if possible and have all results available in prepomax.

Thanks for the tips.