# No Convergence: \*STATIC vs \*DYNAMIC with \*RIGID BODY and SPRING2 for joints

**URL:** https://calculix.discourse.group/t/no-convergence-static-vs-dynamic-with-rigid-body-and-spring2-for-joints/870
**Category:** Uncategorized
**Created:** [November 30, 2021, 1:21pm UTC](https://calculix.discourse.group/t/no-convergence-static-vs-dynamic-with-rigid-body-and-spring2-for-joints/870 "2021-11-30T13:21:21Z")
**Posts on this page:** 7
**Page:** 1

<div class="post-metadata">

### Author: ![MarkusS](https://avatars.discourse-cdn.com/v4/letter/m/41988e/32.png) [@MarkusS](https://calculix.discourse.group/u/MarkusS)
#### Post date: [November 30, 2021, 1:21pm UTC](https://calculix.discourse.group/t/no-convergence-static-vs-dynamic-with-rigid-body-and-spring2-for-joints/870/1 "2021-11-30T13:21:21Z")

</div>

Hi,

when I am calculating the following system

 ![00_MKS_Test](https://global.discourse-cdn.com/free1/uploads/calculix/original/1X/7ce009e940517ec423a81c1c8b5092071278e6cf.jpeg)

I have got convergence problems with the \*STATIC solution (NLGEOM=On).

The joints are modeled with \*RIGID BODY (should be nonlinear MPC with respect to the documentation) and reference points/nodes.

The DOF (X,Y,Z,ROTY,ROTZ) of the four coincident nodes (2 for translation and 2 for rotation) at the middle joint are coupled with SPRING2 elements in these directions.

There are no convergence problems, when I am using \*DYNAMIC for solving - but this is numerical more expensive. Do you have an idea, how to get convergence with a nonlinear \*STATIC solution and where these problems come from?

---

<div class="post-metadata">

### Author: ![MarkusS](https://avatars.discourse-cdn.com/v4/letter/m/41988e/32.png) [@MarkusS](https://calculix.discourse.group/u/MarkusS)
#### Post date: [November 30, 2021, 1:24pm UTC](https://calculix.discourse.group/t/no-convergence-static-vs-dynamic-with-rigid-body-and-spring2-for-joints/870/2 "2021-11-30T13:24:09Z")

</div>

Example for the modelling in the input file:

\*\* Node sets +++++++++++++++++++++++++++++++++++++++++++++++  
\*\*  
\*Nset, Nset=n\_k1  
2, 26, 27, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,  
58, 59, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 325, 326, 327, 328,  
329, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547,  
548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563,  
564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579,  
580  
\*Nset, Nset=n\_k1g  
10, 11, 14, 16, 19, 21, 157, 158, 159, 160, 161, 173, 174, 175, 176, 182,  
183, 184, 185, 186, 197, 198, 199, 200, 223, 224, 225, 226, 227, 228, 229, 230,  
231, 232, 233, 234, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264,  
318, 319, 320, 321, 322, 323, 324, 475, 476, 477, 478, 479, 480, 481, 482, 483,  
484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499,  
500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515,  
516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531,  
532  
\*Nset, Nset=n\_k2g  
845, 846, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895,  
896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 1067, 1068, 1069,  
1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085,  
1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101,  
1102, 1103, 1104  
\*Nset, Nset=n\_k2  
843, 844, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868,  
869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 1029, 1030, 1031,  
1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047,  
1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063,  
1064, 1065, 1066  
\*Nset, Nset=r\_k1\_ref\_1535  
1535  
\*Nset, Nset=r\_k1\_rot\_1536  
1536  
\*Nset, Nset=r\_k1g\_ref\_1537  
1537  
\*Nset, Nset=r\_k1g\_rot\_1538  
1538  
\*Nset, Nset=r\_k2g\_ref\_1539  
1539  
\*Nset, Nset=r\_k2g\_rot\_1540  
1540  
\*Nset, Nset=r\_k2\_ref\_1541  
1541  
\*Nset, Nset=r\_k2\_rot\_1542  
1542  
\*\*  
\*\* Element sets ++++++++++++++++++++++++++++++++++++++++++++  
\*\*  
\*Elset, Elset=Internal\_Selection-1\_Solid\_section-1  
K1,  
K2  
\*\*  
\*\* Surfaces ++++++++++++++++++++++++++++++++++++++++++++++++  
\*\*  
\*\*  
\*\* Physical constants ++++++++++++++++++++++++++++++++++++++  
\*\*  
\*\*  
\*\* Materials +++++++++++++++++++++++++++++++++++++++++++++++  
\*\*  
\*Material, Name=S235  
\*Density  
7.8E-09  
\*Elastic  
210000, 0.28  
\*Expansion, Zero=20  
1.1E-05  
\*Conductivity  
14  
\*Specific heat  
440000000  
\*\*  
\*\* Sections ++++++++++++++++++++++++++++++++++++++++++++++++  
\*\*  
\*Solid section, Elset=Internal\_Selection-1\_Solid\_section-1, Material=S235  
\*\*  
\*\* Pre-tension sections ++++++++++++++++++++++++++++++++++++  
\*\*  
\*\*  
\*\* Constraints +++++++++++++++++++++++++++++++++++++++++++++  
\*\*  
\*Rigid body, Nset=n\_k1, Ref node=1535, Rot node=1536  
\*Rigid body, Nset=n\_k1g, Ref node=1537, Rot node=1538  
\*Rigid body, Nset=n\_k2g, Ref node=1539, Rot node=1540  
\*Rigid body, Nset=n\_k2, Ref node=1541, Rot node=1542  
\*\*  
\*\* Surface interactions ++++++++++++++++++++++++++++++++++++  
\*\*  
\*\*  
\*\* Contact pairs +++++++++++++++++++++++++++++++++++++++++++  
\*\*  
\*\*  
\*\* Initial conditions ++++++++++++++++++++++++++++++++++++++  
\*\*  
\*ELEMENT,ELSET=K1K2x,TYPE=SPRING2  
5000001,1537,1539  
\*SPRING,Elset=K1K2x  
1,1  
1000000.0  
\*ELEMENT,ELSET=K1K2y,TYPE=SPRING2  
5000002,1537,1539  
\*SPRING,Elset=K1K2y  
2,2  
1000000.0  
\*ELEMENT,ELSET=K1K2z,TYPE=SPRING2  
5000003,1537,1539  
\*SPRING,Elset=K1K2z  
3,3  
1000000.0  
\*ELEMENT,ELSET=K1K2roty,TYPE=SPRING2  
5000004,1538,1540  
\*SPRING,Elset=K1K2roty  
5,5  
1000000.0  
\*ELEMENT,ELSET=K1K2rotz,TYPE=SPRING2  
5000005,1538,1540  
\*SPRING,Elset=K1K2rotz  
6,6  
1000000.0  
\*AMPLITUDE,NAME=A1  
0.,0.,1.,1.  
\*\*  
\*\* Steps +++++++++++++++++++++++++++++++++++++++++++++++++++  
\*\*  
\*\*  
\*\* Step-1 ++++++++++++++++++++++++++++++++++++++++++++++++++  
\*\*  
\*Step, Nlgeom, Inc=10000  
\*\*\*Static, Solver=PaStiX  
\*\*0.001, 1, 1E-05, 0.1  
\*DYNAMIC,ALPHA=-0.3,SOLVER=Pastix  
1.E-3,1.0,1.E-6,0.1  
\*\*  
\*\* Boundary conditions +++++++++++++++++++++++++++++++++++++  
\*\*  
\*Boundary, op=New  
\*\* Name: d\_k1  
\*Boundary  
1535, 1, 1, 0  
1535, 2, 2, 0  
1535, 3, 3, 0  
1536, 2, 2, 0  
1536, 3, 3, 0  
\*\* Name: d\_k2

\*\*\*Boundary  
\*\*1541, 1, 1, 0  
\*\*1541, 2, 2, 0  
\*\*1541, 3, 3, 50  
\*\*1542, 2, 2, 0  
\*\*1542, 3, 3, 0  
\*Boundary, AMPLITUDE=A1  
1541, 1, 1, 0  
1541, 2, 2, 0  
1541, 3, 3, 50  
1542, 2, 2, 0  
1542, 3, 3, 0  
\*\*  
\*\* Loads +++++++++++++++++++++++++++++++++++++++++++++++++++  
\*\*  
\*Cload, op=New  
\*Dload, op=New  
\*\*  
\*\* Defined fields ++++++++++++++++++++++++++++++++++++++++++  
\*\*  
\*\*  
\*\* History outputs +++++++++++++++++++++++++++++++++++++++++  
\*\*  
\*Node print, Frequency=10, Nset=r\_k2\_ref\_1541, Totals=Yes  
RF  
\*Node print, Frequency=10, Nset=r\_k2\_rot\_1542, Totals=Yes  
RF  
\*\*  
\*\* Field outputs +++++++++++++++++++++++++++++++++++++++++++  
\*\*  
\*Node file, Frequency=10  
RF, U  
\*\*  
\*\* End step ++++++++++++++++++++++++++++++++++++++++++++++++  
\*\*  
\*End step

---

<div class="post-metadata">

### Author: ![Calc\_em](https://avatars.discourse-cdn.com/v4/letter/c/43a26b/32.png) [@Calc\_em](https://calculix.discourse.group/u/Calc_em)
#### Post date: [November 30, 2021, 1:30pm UTC](https://calculix.discourse.group/t/no-convergence-static-vs-dynamic-with-rigid-body-and-spring2-for-joints/870/3 "2021-11-30T13:30:27Z")

</div>

It might be hard to solve this with \*Static due to possible rigid body motions. Have you tried running modal analysis ?

Can you share the complete input file (with node and element definitions) for the purpose of running tests ?

There is a chance that the use of a different solver (Spooles, Pardiso) may help.

---

<div class="post-metadata">

### Author: ![MarkusS](https://avatars.discourse-cdn.com/v4/letter/m/41988e/32.png) [@MarkusS](https://calculix.discourse.group/u/MarkusS)
#### Post date: [November 30, 2021, 1:37pm UTC](https://calculix.discourse.group/t/no-convergence-static-vs-dynamic-with-rigid-body-and-spring2-for-joints/870/4 "2021-11-30T13:37:42Z")

</div>

I think there is no rigid body motion, because I am using displacement control at one reference point in x-direction.  
The integration of a small ROTX-Stiffness makes no difference. Also other solvers or quadratic elements doesn´t work.  
Sorry, but I am not able to share the whole input-file.

---

<div class="post-metadata">

### Author: ![Calc\_em](https://avatars.discourse-cdn.com/v4/letter/c/43a26b/32.png) [@Calc\_em](https://calculix.discourse.group/u/Calc_em)
#### Post date: [November 30, 2021, 2:03pm UTC](https://calculix.discourse.group/t/no-convergence-static-vs-dynamic-with-rigid-body-and-spring2-for-joints/870/5 "2021-11-30T14:03:10Z")

</div>

I was rather thinking about using modal analysis (\*Frequency) to make sure that the connection is defined properly and that there are no rigid body motions but if you are sure that it’s fine then you can skip this test.

Check these examples, they can be useful:

> **[CalculiX-Examples/Test/Joints at master · calculix/CalculiX-Examples](https://github.com/calculix/CalculiX-Examples/tree/master/Test/Joints)**
>
> master/Test/Joints

[![](https://global.discourse-cdn.com/free1/uploads/calculix/original/2X/2/29248957ae9614d98d3d3ddb88e3c23d50d827b2.jpeg "CalculiX Launcher - Pinned Connection (Assembly) FEA") ](https://www.youtube.com/watch?v=ZOc2K0lxKR4)

Unlike Abaqus, CalculiX doesn’t offer connector elements but there are also other ways to define hinged joints. Depending on the purpose of your analysis and behavior of the joint that you want to model, you could use for example equation constraint instead of springs. On the other hand, rigid body constraints (which cause problems in some cases) could be replaced with couplings.

---

<div class="post-metadata">

### Author: ![MarkusS](https://avatars.discourse-cdn.com/v4/letter/m/41988e/32.png) [@MarkusS](https://calculix.discourse.group/u/MarkusS)
#### Post date: [December 1, 2021, 7:22am UTC](https://calculix.discourse.group/t/no-convergence-static-vs-dynamic-with-rigid-body-and-spring2-for-joints/870/6 "2021-12-01T07:22:53Z")

</div>

Thank you very much calc\_em, but I do need NLGEOM=ON for further model details - the models from mkraska are only valid for small displacements.  
Kindly regards,  
Markus 🙂

---

<div class="post-metadata">

### Author: ![MarkusS](https://avatars.discourse-cdn.com/v4/letter/m/41988e/32.png) [@MarkusS](https://calculix.discourse.group/u/MarkusS)
#### Post date: [December 1, 2021, 1:05pm UTC](https://calculix.discourse.group/t/no-convergence-static-vs-dynamic-with-rigid-body-and-spring2-for-joints/870/7 "2021-12-01T13:05:17Z")

</div>

I think I have an idea:

You need an external force in the middle joint to generate an difference between the external and internal force for Newton Raphson with NLGEOM. If you add an concentrated force of maybe 1000N with a joint stiffness of 10e6 N/mm, you have no convergence problems and get an exact result in \*STATIC. If you choose only 100N it doesn´t work.

 ![00_MKS_Test_2](https://global.discourse-cdn.com/free1/uploads/calculix/original/1X/fe2f14bae0ece10080a612d8693c17b54d1c8430.jpeg)

It is not displayed in the picture, but before I generated one more grounded spring to the left joint. The resulting spring force (with a minimum stiffness of 100N/mm for convergence) caused by the displacement boundary has the same effect. Because of the displacement boundary with 50mm you have no force f=0 in the mechanismen, but in the spring f=5000N at 50mm and so an imbalance to solve with Newton Raphson.

I think, if there is no external force  
Fext-Fint=0  
you come into numerical problems by substracting very small values/numbers and this is ending up in non convergence.

Addition: Instead of a force in the joint, you could also add a moment in the right joint to generate an external force.
