Multi-step contact issues

Hi all.

I am running some large nonlinear static models that have a shell structure loaded (with contact) by a solid with constrained displacement. It runs no problem (contact works etc) in a step with a small amount of displacement. My thought it would be more stable etc if I established contact before applying the main displacement with a second step (it didn’t converge with just one large step). I am now using restart so I can test out variations without running the first step.

As you can see from my input files here. I tried with a much smaller increment (two orders of magnitude which twice the increase in displacement) but still there is no convergence.

I looked into using a rigid part but the conversion of the model proved to be a bit complicated. I am creating them in PrePoMax and then working with the inp files.

** Step-1 ++++++++++++++++++++++++++++++++++++++++++++++++++
**
*Step, Nlgeom, Inc=100
*Static, Solver=Pardiso
0.005, 1, 1E-05, 1E+30
**
** Controls ++++++++++++++++++++++++++++++++++++++++++++++++
**
**
** Output frequency ++++++++++++++++++++++++++++++++++++++++
**
*Output, Frequency=1
**
** Boundary conditions +++++++++++++++++++++++++++++++++++++
**
*Boundary, op=New
** Name: Fixed-1
*Boundary
Internal_Selection-1_Fixed-1, 1, 6, 0
** Name: Fixed-2
*Boundary
Internal_Selection-1_Fixed-2, 1, 6, 0
** Name: Displacement_Rotation-1
*Boundary
282928, 1, 1, 0
282928, 2, 2, 0
282928, 3, 3, -5
282929, 1, 1, 0
282929, 2, 2, 0
282929, 3, 3, 0
**
** Loads +++++++++++++++++++++++++++++++++++++++++++++++++++
**
*Cload, op=New
*Dload, op=New
**
** Defined fields ++++++++++++++++++++++++++++++++++++++++++
**
**
** History outputs +++++++++++++++++++++++++++++++++++++++++
**
*Node print, Nset=Reference_Point-1_ref_2829271, Global=Yes
RF, U
*Node print, Nset=Reference_Point-1_rot_2829272, Global=Yes
RF, U
**
** Field outputs +++++++++++++++++++++++++++++++++++++++++++
**
*Node file
RF, U
*El file
S, E, NOE
*El file
S, E, ME, PEEQ, ENER, NOE
**
** End step ++++++++++++++++++++++++++++++++++++++++++++++++
**
*RESTART, WRITE, FREQ=1

*End step

And the second step:

*RESTART, READ, STEP=1

*STEP, NLGEOM, INC=1000
*STATIC, Solver=Pardiso
0.00005, 1.0, 1e-10  

*BOUNDARY
** Apply the full displacement for this step
Internal_Selection-1_Fixed-2, 2, 2, 500.0 

*CONTACT PRINT, FREQ=100
*NODE FILE, FREQ=100

*END STEP```

@lukerickert
maybe you might have advantage of using amplitude load, then you will be able to divide your load into different step intervals.

**
** Amplitude Example
** End steptime = 1.0 
** End load = 0.55
**
*Amplitude, Name=move_z
0, 0,
0.33, 0.05,
0.66, 0.15,
1.0,  0.55
**
*Step, Nlgeom, Inc=10000
*Static, Solver=Pardiso
0.001, 1, 1E-05, 0.001
**
*Boundary, op=New
*Boundary, Amplitude=move_z
nset2move, 3, 3, 1

Thanks, I have a rough memory of doing something like this in Abaqus years ago, I will give it a try here.

One related question, are any of the solver options going to be more stable than the others? (Solid shell contact interface)

thanks

Luke