TRICK . NonLinear convergence issue.*ERROR: increment size smaller than minimum

Hi,

I have faced convergence issues with nonlinear springs (Only Tension) that took me some days to isolate and sort and I think it’s worth to share what was finally the workarround.
Could be usefull for those nonlinear models that fail to start with messages like:
*ERROR: increment size smaller than minimum best solution and residuals are in the frd file

Instead of applying the load directly, reverse it first and then apply it in the right direction. (Using amplitude)
“Take a running start” if that makes sense (also helps to remember the trick).
I guess it jump over the starting point/zero which can be sometimes problematic.

Example that works or fails depending on the starting skeme.

FAIL

*NODE
1,-10,-10,0
2,10,-10,0
3,10,10,0
4,-10,10,0
5,-1.339745962156,15,0
6,-1.339745962156,-15,0
7,10,-20,0
8,10,20,0
9,-18.66025403784,-15,0
10,0,0,0
11,-10,-10,0
*ELEMENT,TYPE=SPRINGA
1,1,9
2,4,5
3,3,8
4,2,7
5,11,6
*NSET,NSET=REACTIONS
5
6
7
8
9
*NSET,NSET=NSET_ROOT
1
2
3
4
11
*ELSET,ELSET=SP_A
1
2
3
4
5
*ELSET,ELSET=1
1
*ELSET,ELSET=2
2
*ELSET,ELSET=3
3
*ELSET,ELSET=4
4
*ELSET,ELSET=5
5
*BOUNDARY
5,1,,0
5,2,,0
5,3,,0
6,1,,0
6,2,,0
6,3,,0
7,1,,0
7,2,,0
7,3,,0
8,1,,0
8,2,,0
8,3,,0
9,1,,0
9,2,,0
9,3,,0
10,3,,0
*AMPLITUDE,NAME=Ax_10_6
0,0
1,100000
*SURFACE,NAME=NSet_Root,TYPE=NODE
NSet_Root
*COUPLING,REF NODE=10,SURFACE=NSet_Root,CONSTRAINT NAME=RootCouple
*KINEMATIC
1,2,3
*SPRING,ELSET=SP_A,NONLINEAR

0.0,0.0 
9.81E11,1.
*STEP,NLGEOM=YES,INC=334,AMPLITUDE=STEP
*STATIC
0.0033,1,0,0.0033
*CLOAD,AMPLITUDE=Ax_10_6
10,1,1
*NODE FILE,GLOBAL=YES
U,RF
*EL FILE
ENER
*END STEP

GOOD

** Generated by Mecway 28
*NODE
1,-10,-10,0
2,10,-10,0
3,10,10,0
4,-10,10,0
5,-1.339745962156,15,0
6,-1.339745962156,-15,0
7,10,-20,0
8,10,20,0
9,-18.66025403784,-15,0
10,0,0,0
11,-10,-10,0
*ELEMENT,TYPE=SPRINGA
1,1,9
2,4,5
3,3,8
4,2,7
5,11,6
*NSET,NSET=REACTIONS
5
6
7
8
9
*NSET,NSET=NSET_ROOT
1
2
3
4
11
*ELSET,ELSET=SP_A
1
2
3
4
5
*ELSET,ELSET=1
1
*ELSET,ELSET=2
2
*ELSET,ELSET=3
3
*ELSET,ELSET=4
4
*ELSET,ELSET=5
5
*BOUNDARY
5,1,,0
5,2,,0
5,3,,0
6,1,,0
6,2,,0
6,3,,0
7,1,,0
7,2,,0
7,3,,0
8,1,,0
8,2,,0
8,3,,0
9,1,,0
9,2,,0
9,3,,0
10,3,,0
*AMPLITUDE,NAME=Ax_10_6
0,0
0.01,-100000
1,100000
*SURFACE,NAME=NSet_Root,TYPE=NODE
NSet_Root
*COUPLING,REF NODE=10,SURFACE=NSet_Root,CONSTRAINT NAME=RootCouple
*KINEMATIC
1,2,3
*SPRING,ELSET=SP_A,NONLINEAR

0.0,0.0 
9.81E11,1.
*STEP,NLGEOM=YES,INC=334,AMPLITUDE=STEP
*STATIC
0.0033,1,0,0.0033
*CLOAD,AMPLITUDE=Ax_10_6
10,1,1
*NODE FILE,GLOBAL=YES
U,RF
*EL FILE
ENER
*END STEP

1 Like

@Disla I have tested both dataset with Pardiso ccx_2.20, 2.21 & 2.22 and in all cases I end up with

*ERROR: increment size smaller than minimum

despite it hadn’t any success with my setup it’s good to know it could be a possible work around solution.

Some nonlinear springs can be really tricky to converge. This one diverges in Abaqus too. Displacement control can help here, at least as the first step. The initial example in the following article can be interesting for this discussion: Debugging Abaqus Models | Dassault Systèmes blog

That’s weird and cool in some way. Mecway ccx is converging and Abaqus failing.:sweat_smile:

I have try ccx 2.22 and 2.21MKL. Windows system. Mecway file and inp directly from Scite.

By the way ¿Does it succes for someone or it’s just me?

1 Like

Hi again,

I have a possible explanation of your failure.

I have copy paste the code to a plain text file and change name to .inp.

It has fail to me too. Looking in detail the original file and my post I have noticed the forum removes double comas when pasting a text. The GOOD inp was not code formated for any reason. That could be the reason. I will fix it. Could you please add double comma to the boundary condition to see if that works for you now? .

1 Like

@Disla the missing punctation solved the problem, and then dataset named good is running to finish :+1:

2 Likes

It also works adding a load in an arbitrary direction as far as it cancels at the end of the analisys. This is valid as far as the run is conservative, no friction or plasticity involved for example.

It’s kind of circumvent unstable load paths. Good to keep in mind.

1 Like