Metal extrusion forming simulation cannot converge

Recently I am using ccx to simulate the metal forming. I built a 2D axisymmtric model of metal extrusion. The static analysis with PaStiX solver and NLGEOM is adopted. The linear contact behavior with friction is applied on the workpiece and die. The die and punch are limited by the rigid body and displacement boundary condition is implmented on the punch. Detailed setting can be found from the .inp file. https://drive.google.com/file/d/1Dpv2DDeLJ0-56xdoFo03O0ww0SatZ92D/view?usp=drive_link

However the simulation met some non-convergence problem. I tried to adjust the K value of slope from 5 ~50 times of elastic modules (210000MPa) but cannot improve the convergence. What makes it even more incomprehensible is the different results were obtained each time when I submitted the same .inp file for many times .

Can anybody give some surggestions?

Many thanks

Can you share some screenshots showing the model and describe the boundary conditions ? I can’t open the attachment.

The next is the initial setting picture. the pre-tool is PrePoMax.
(2023-07-16_150625.png - Google Drive)

The next is the best result. Simulation stopped about 0.7 second. (the step time is 1s).
(2023-07-16_150948.png - Google Drive)

The next is some settings in .inp file. I have changed the permission of file, hope the link in the created topic can be downloaded now.

** Materials +++++++++++++++++++++++++++++++++++++++++++++++
**
*Material, Name=40CrMnMo7
*Density
7.8E-09
*Elastic
205000, 0.28
*Expansion, Zero=20
1.1E-05
*Conductivity
14
*Specific heat
440000000
*Material, Name=2014_Alloy
*Density
2.8E-09
*Elastic
73000, 0.33
*Expansion, Zero=20
2.3E-05
*Conductivity
160
*Specific heat
960000000
*Plastic
300, 0
350, 0.5
**
** Sections ++++++++++++++++++++++++++++++++++++++++++++++++
**
*Solid section, Elset=WP-ALLEL, Material=2014_Alloy
*Solid section, Elset=Punch-ALLEL, Material=40CrMnMo7
*Solid section, Elset=Die-AllEL, Material=40CrMnMo7
**
** Pre-tension sections ++++++++++++++++++++++++++++++++++++
**
**
** Constraints +++++++++++++++++++++++++++++++++++++++++++++
**
*Rigid body, Nset=Die-ALLND, Ref node=908, Rot node=909
*Rigid body, Nset=Punch-ALLND, Ref node=910, Rot node=911
**
** Surface interactions ++++++++++++++++++++++++++++++++++++
**
*Surface interaction, Name=Surface_Interaction-1
*Surface behavior, Pressure-overclosure=Linear
1000000, 1
*Friction
0.1
**
** Contact pairs +++++++++++++++++++++++++++++++++++++++++++
**
*Contact pair, Interaction=Surface_Interaction-1, Type=Surface to surface, Adjust=0
WP-Surf, Die-Surf
*Contact pair, Interaction=Surface_Interaction-1, Type=Surface to surface, Adjust=0
WP-Surf, Punch-Surf
**
** Amplitudes ++++++++++++++++++++++++++++++++++++++++++++++
**
**
** Initial conditions ++++++++++++++++++++++++++++++++++++++
**
*Preprint, echo=NO, model=NO, history=NO, contact=NO
*System
**
** Steps +++++++++++++++++++++++++++++++++++++++++++++++++++
**
**
** Step-1 ++++++++++++++++++++++++++++++++++++++++++++++++++
**
*Step, Nlgeom, Inc=9999
*Static
0.001, 1, 1E-07, 0.1
**
** Output frequency ++++++++++++++++++++++++++++++++++++++++
**
*Output, Frequency=1
**
** Boundary conditions +++++++++++++++++++++++++++++++++++++
**
*Boundary, op=New
** Name: Fixed-1
*Boundary
908, 1, 2, 0
909, 3, 3, 0
** Name: Displacement_Rotation-1
*Boundary
910, 1, 1, 0
910, 2, 2, -50
911, 3, 3, 0
**
** Loads +++++++++++++++++++++++++++++++++++++++++++++++++++
**
*Cload, op=New
*Dload, op=New
**
** Defined fields ++++++++++++++++++++++++++++++++++++++++++
**
**
** History outputs +++++++++++++++++++++++++++++++++++++++++
**
**
** Field outputs +++++++++++++++++++++++++++++++++++++++++++
**
*Node file, Last iterations
RF, U
*El file
S, E
*Contact file, Last iterations
CDIS, CSTR
**
** End step ++++++++++++++++++++++++++++++++++++++++++++++++
**
*End step

This is typically due to the fact that your problem is dominated by numerical truncation errors, so each time are different. When you stabilize the problem formulation and understand the influence of several parameters: mesh refinement, penalty factor, material model quality, etc., will see that the problem solution is dominated by the algorithm and change in results obey to changes in the parameters.

Thanks for your suggestions. Could you pls provide more detailed operations to stabilize problem? I tried to refined mesh and cannot get the improvement.

The mesh is way too coarse for an analysis involving contact and large deformations. It needs significant refinement, especially where rhe workpiece is in contact with the die.

You could also try linearly extrapolating the plastic behavior.

Thanks . I refined the mesh by 1mm of size (previously is 6mm). I think this mesh should be small enough. The problem of different results from the same input seems weaken. However the convergence problem still exists. Have any suggestions? The material has been tested as the linear plastic hardening.

Many thanks

@nax

Rule no. 1.
Keep everything as simple as possible, omit the punch piston since can be considered completely stiff compared to the work piece, so it isn’t really necessary for the simulation.

Rule no. 2.
Play a little with the contact stiffness and the step size.

And finally, it would be nice to have an appropriate size for the elements along the contact surfaces.

I don’t know how to upload video, so you will need to run the data set by yourself if you want the video.
extrude.zip - Google Drive

1 Like

Yep, contact parameters can make a big difference.

Extrusion

2 Likes

@fgr Thanks very much. Now the job works well. The tips are useful. It seems constrainted nodes and contact surfaces in my .inp file are too much.

1 Like

@Disla

What’s your contact parameters? Your result seems a little different from @fgr

Mine is not particularly better or worse, was just to make more noticeable how the contact parameters affect the result. You can try it yourself to see differences changing the friction coefficient for example.
Check how much difference there will be on the equivalent plastic strain and if your curve is large enough to cover that range.

The worst thing is that one would normally solve this problem using dynamic explicit analysis (with settings aiming for a quasi-static solution) to avoid convergence issues but in CalculiX it doesn’t work when axisymmetric model involves rigid body constraints in explicit dynamics. Guido suggests artificially increasing the Young’s modulus but this has negative impact on the stable time increment and thus the analysis requires a large amount of mass scaling.

Yes I also tried to using dynamic explicit analysis. However the analysis always failed without any error message.

I got this error message when I tried running explicit dynamics with axisymmetric elements and rigid body constraint:

*ERROR in nonlingeo: linear and nonlinear MPC’s depend on each other This is not allowed in a explicit dynamic calculation

Here’s what Guido replied (apart from the tips mentioned above):

A rigid body condition is nonlinear due to the rotation. Axisymmetric elements are expanded and therefore, linear equations are introduced between the two sides of the 2-degree segment. Therefore, linear and nonlinear equations will depend on each other. I do not recall any more why it is not allowed in an explicit dynamic calculation, however, it may not be easy to remove this limitation.