Convergence issues with plastic deformation

Hello,

I am trying to model the plastic deformation of a steel washer with an axissymmetric 2D-sim.

I have defined the surface behaviour as hard and surface to surface method between the upper part and the washer and the lower part and the washer.

The load is a defined displacement.

When I compute it non-linear with only the elastic material model, it converges just fine. When I add a plastic material model, it diverges before there is a full surface contact (see the picture).

Does anyone have an idea how to get it to converge?

It’s usually necessary to use softer contact. I rely on this approach to estimate its stiffness: Snap-fit contact snagging problem - #17 by JuanP74 - Analysis issues - CalculiX (official versions are on www.calculix.de, the official GitHub repository is at https://github.com/Dhondtguido/CalculiX).

Hard to say more without seeing the model. Can you share the .pmx file ?

1 Like

20260302_deformation_washer.pmx (1.7 MB)

Thx for the help, I will try out the softer contact.

Attached is my file.

Try this file where I made some changes:

20260302_deformation_washer mod.pmx (8.3 MB)

You may want to restore some features such as Nlgeom or sliding BC, but the idea is to add complexity gradually.

Perhaps you could make the tools rigid ?

And I forgot to switch to CAXR elements, you can change it when you edit parts.

1 Like

You changed mostly the incrementation settings, right?

I switched to CAX4R, Nlgeom with elastic works fine.

I made the tools rigid, but when adding plastic behaviour it still does not converge.

20260302_deformation_washer_V3.pmx (8.7 MB)

i’m only guessed the part have excessive deformation and higher stress in ratio to yield of material. My experience also similar in metal forming analysis, an elastic material is easy to convergence but plasticity is not.

p.s some report shown successfully using MFront material library in plasticity, but i’m not yet to try.

1 Like

I experimented with the soft contact, but I can’t find fitting parameters for K (linear) or p_0 and c_0 (exponential). It always diverges at the first touch.

Yes, mostly step settings - Nlgeom and incrementation (max inc number should be large, initial and max inc higher, minimum inc lower).

But also element type (second-order elements are risky for contact). And constrained the right/bottom part in the X direction.

I haven’t changed the contact stiffness because the equation I shared shows that it should be even higher than the default.

In this case, the default contact stiffness might be ok if you consider the approach I shared above (it results in an even higher number).

But your workpiece is unconstrained which is risky. You may need to support it with some soft springs if it still fails.

Sometimes 2D elements in CalculiX are problematic (especially with rigid body constraints, contact and Nlgeom) and it helps to use a 3D model instead. For debugging, I usually disable Nlgeom too.

You should correct your plasticity definition too - it’s true stress vs true plastic strain, so it should start from yield stress and true plastic strain (non-zero). Then the strains should only increase. So the first line and the last two lines with all zeros (perhaps added accidentally) should be removed.

can model with 3d solid element and reduced size provided? result shown no part excessive deformation occurs.

Extrusion to 3D (or actually revolution in this case) often helps with convergence and other issues because of how CalculiX’s 2D elements are internally expanded to solids with some nonlinear subprocedures potentially interfering with nonlinearities in the model: Rigid-body constraint convergance problems - #25 by dhondt - CalculiX (official versions are on www.calculix.de, the official GitHub repository is at https://github.com/Dhondtguido/CalculiX).

This is especially the case with shells, but it may occur with other 1D and 2D elements as well. Another known problem is that rigid body constraints don’t work with such elements in explicit dynamics.

Here’s a list of all the major known CalculiX’s limitations: Known CalculiX limitations

However, this case doesn’t seem so bad. If you make the suggested changes, add nonlinearities carefully and adjust some inputs, it should converge eventually.

If it doesn’t, the 3D solid wedge approach (2° and one layer of elements if we want to replicate what CalculiX does internally here) with cyclic symmetry or even just BCs in cylindrical CSYS can always be applied.

Hello together…it’s been a little while, but here I am again.
We experimented a lot with a quarter model and results are starting to be as expected, but they take a lot of time.
We are using our cluster and have made some experiments, but multithreading still takes a long time. Interestingly, computing time doesn’t really decrease with an increasing number of cores:

Cores | Time (Sek) | Time (HH:MM:SS)
4 | 84089 | 23:21:29
8 | 72702 | 20:11:42
16 | 139830 | 38:50:30
32 | 40293 | 11:11:33
64 | 80771 | 22:26:11

I split the total displacement into (at least) three steps with different amounts of displacement, iteratively finding the limits.
We also tried to solve dynamic-explicit, but couldn’t achieve proper results.
We also tried Ansys, which gave us a result in a matter of minutes, computing on an office laptop.

By the way, we also tried the 3D wedge, but couldn’t really achieve proper cyclic symmetry, so we went back to 90 degrees.

Does anyone have an idea how to decrease computing time or if we are overlooking something here?

The link is only valid for 3 days (until 23.04.2026) unfortunately, does anyone know a better site for sharing?

Your mesh has 282238 nodes, it would be good to reduce its size. If you tried using *CYCLIC SYMMETRY MODEL, what was the problem with it ?

You could mesh the parts whose geometries don’t touch the revolution axis using the Revolve Mesh or Sweep Mesh algorithm with recombination to get more efficient first-order hex-dominated meshes with C3D8R elements.

This quickly generated mesh has 48628 nodes.

Perhaps the tools could be treated as rigid (using the rigid body constraint) ?

Better sites need setting up an account. The standard ones are OneDrive, Google Drive and Dropbox.

1 Like

Starting with Cyclic Symmetry:

We looked at one of your old issues (Cyclic symmetry) and those instructions (*CYCLIC SYMMETRY MODEL) and edited the Calculix Keywords in PPM according to that. However we couldn’t find proper settings. The file is “20260414_deformation_washer_15deg_cycl_sym”.

Without cyclic symmetry (just a cylindrical CS) we also recieved a weird displacement in z. We stopped this sim rather quick, but ultimately, the disc moved out of the symmetry planes. The file is “20260414_deformation_washer_15deg.pmx”.

Now to your previous answer: Do I understand correctly that ridig bodies are actually more like rigid surfaces? So I would make the two surfaces rigid, that have contact with the disc? Is a fine mesh still needed for those surfaces, when it cannot deform?
I couldnt find how to properly set the reference points (or what characteristics a proper ref point should have). However, I get this error message:

"Decascading the MPC’s

*ERROR in cascade: the DOF corresponding to
node 1 in direction 3 is detected on the
dependent side of a MPC and a SPC"

The file is “20260421_deformation_washer_quarter_rigid_body”.

Onedrive link: PPM_Forum_Share

Starting from this one as the other files are still downloading (I guess they are so large because they include the results - it’s usually better to close them before saving the file).

Rigid body constraints are well explained in the Abaqus documentation:

A rigid body is a collection of nodes, elements, or surfaces whose motion is governed by the motion of a single node, called the rigid body reference node. The relative positions of the nodes and elements that are part of the rigid body remain constant throughout a simulation. Therefore, the constituent elements do not deform but can undergo large rigid body motions.

So if you apply a rigid body constraint to a part, you will make it perfectly rigid (undeformable), and the reference node will control its movement.

However, you can’t apply boundary conditions to nodes included in rigid body constraints - hence the error message you quoted. All boundary conditions should be applied to the reference node (that has 6 degrees of freedom, so you usually also have to constrain rotations).

20260421_deformation_washer_quarter_rigid_body_mod.pmx (2.4 MB)

I corrected this model too (removed redundant keywords and BCs, but also eliminated overconstraint caused by BCs on the slave surface and corrected the symmetry axis):

20260414_deformation_washer_15deg_cycl_sym_mod.pmx (2.1 MB)

I made some small changes here too:

20260414_deformation_washer_15deg_mod.pmx (2.1 MB)

But I’d rather use the other approaches (including cyclic symmetry) if I were you.