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

Hi,

when I am calculating the following system

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?

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

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.

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.

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:

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.

1 Like

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 :slight_smile:

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.

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.

1 Like