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

**URL:** <https://calculix.discourse.group/t/trick-nonlinear-convergence-issue-error-increment-size-smaller-than-minimum/2837>\
**Category:** Analysis issues\
**Created:** [July 31, 2025, 12:55pm UTC](https://calculix.discourse.group/t/trick-nonlinear-convergence-issue-error-increment-size-smaller-than-minimum/2837 "2025-07-31T12:55:43Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![Disla](https://yyz2.discourse-cdn.com/free1/user_avatar/calculix.discourse.group/disla/32/3548_2.png) [@Disla](https://calculix.discourse.group/u/Disla)\
**Post date:** [July 31, 2025, 12:55pm UTC](https://calculix.discourse.group/t/trick-nonlinear-convergence-issue-error-increment-size-smaller-than-minimum/2837/1 "2025-07-31T12:55:43Z")

</div>

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.

 ![imagen](https://global.discourse-cdn.com/free1/uploads/calculix/original/2X/9/94fd5618cf42e0bde471acd07e476f3d5346c53c.png)

FAIL

```auto
*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

```auto
** 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

```

---

<div class="post-metadata">

**Author:** ![fgr](https://avatars.discourse-cdn.com/v4/letter/f/f4b2a3/32.png) [@fgr](https://calculix.discourse.group/u/fgr)\
**Post date:** [July 31, 2025, 6:01pm UTC](https://calculix.discourse.group/t/trick-nonlinear-convergence-issue-error-increment-size-smaller-than-minimum/2837/2 "2025-07-31T18:01:34Z")

</div>

@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.

---

<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:** [July 31, 2025, 7:46pm UTC](https://calculix.discourse.group/t/trick-nonlinear-convergence-issue-error-increment-size-smaller-than-minimum/2837/3 "2025-07-31T19:46:41Z")

</div>

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](https://blog.3ds.com/brands/simulia/debugging-abaqus-models/)

---

<div class="post-metadata">

**Author:** ![Disla](https://yyz2.discourse-cdn.com/free1/user_avatar/calculix.discourse.group/disla/32/3548_2.png) [@Disla](https://calculix.discourse.group/u/Disla)\
**Post date:** [July 31, 2025, 8:50pm UTC](https://calculix.discourse.group/t/trick-nonlinear-convergence-issue-error-increment-size-smaller-than-minimum/2837/4 "2025-07-31T20:50:15Z")

</div>

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

 ![screenshot.5](https://global.discourse-cdn.com/free1/uploads/calculix/original/2X/9/900fcf0b1b6d56cd4586b83b7cbd444cc08d853e.jpeg)

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?

---

<div class="post-metadata">

**Author:** ![Disla](https://yyz2.discourse-cdn.com/free1/user_avatar/calculix.discourse.group/disla/32/3548_2.png) [@Disla](https://calculix.discourse.group/u/Disla)\
**Post date:** [July 31, 2025, 9:03pm UTC](https://calculix.discourse.group/t/trick-nonlinear-convergence-issue-error-increment-size-smaller-than-minimum/2837/5 "2025-07-31T21:03:49Z")

</div>

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? .

 ![imagen](https://global.discourse-cdn.com/free1/uploads/calculix/original/2X/3/321987f9870ce224d3c021a5010639417e7e1e2b.png)

---

<div class="post-metadata">

**Author:** ![fgr](https://avatars.discourse-cdn.com/v4/letter/f/f4b2a3/32.png) [@fgr](https://calculix.discourse.group/u/fgr)\
**Post date:** [August 1, 2025, 5:44am UTC](https://calculix.discourse.group/t/trick-nonlinear-convergence-issue-error-increment-size-smaller-than-minimum/2837/6 "2025-08-01T05:44:10Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![Disla](https://yyz2.discourse-cdn.com/free1/user_avatar/calculix.discourse.group/disla/32/3548_2.png) [@Disla](https://calculix.discourse.group/u/Disla)\
**Post date:** [August 1, 2025, 10:14am UTC](https://calculix.discourse.group/t/trick-nonlinear-convergence-issue-error-increment-size-smaller-than-minimum/2837/7 "2025-08-01T10:14:21Z")

</div>

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.

 ![imagen](https://global.discourse-cdn.com/free1/uploads/calculix/original/2X/f/f42260af13fbf4c6bdc0d17a4e1d47812c5912f9.png)
