# Question about PLASTICITY simulation

**URL:** <https://prepomax.discourse.group/t/question-about-plasticity-simulation/3030>\
**Category:** General Questions\
**Created:** [October 19, 2025, 3:08pm UTC](https://prepomax.discourse.group/t/question-about-plasticity-simulation/3030 "2025-10-19T15:08:23Z")\
**Posts on this page:** 12\
**Page:** 1

<div class="post-metadata">

**Author:** ![Myjinn](https://avatars.discourse-cdn.com/v4/letter/m/839c29/32.png) [@Myjinn](https://prepomax.discourse.group/u/Myjinn)\
**Post date:** [October 19, 2025, 3:08pm UTC](https://prepomax.discourse.group/t/question-about-plasticity-simulation/3030/1 "2025-10-19T15:08:23Z")

</div>

[SPRING\_PLASTICITY-TRY.pmx](https://prepomax.discourse.group/uploads/short-url/jDnqxAwb2j8kcaEejrczvYQ7voq.pmx) (467.1 KB)

I make a plasticity test model, a displacement is add to a spring. and 2nd step I removed the displacement, with this model I can see the set of the spring.It worked well if Nlgeom is Off.

But if I “On“ the Nlgeom , the 2nd step will not worked. Here is the model uploaed.The total run time is within 1 min.

 ![image](https://global.discourse-cdn.com/free1/uploads/prepomax/original/2X/6/62aaf5eb0b518c19ebbbd4441a12de220c3bba9f.png)

---

<div class="post-metadata">

**Author:** ![FEAnalyst](https://yyz2.discourse-cdn.com/free1/user_avatar/prepomax.discourse.group/feanalyst/32/688_2.png) [@FEAnalyst](https://prepomax.discourse.group/u/FEAnalyst)\
**Post date:** [October 19, 2025, 4:07pm UTC](https://prepomax.discourse.group/t/question-about-plasticity-simulation/3030/2 "2025-10-19T16:07:27Z")

</div>

Try refining the mesh (and use a hex or hex-dominated mesh - change recombination to avoid getting only wedge elements). Also, use different incrementation settings - increase max increments, decrease initial time increment, and reduce minimum time increment significantly. Finally, make sure that the Nlgeom setting is consistent across both steps.

---

<div class="post-metadata">

**Author:** ![Myjinn](https://avatars.discourse-cdn.com/v4/letter/m/839c29/32.png) [@Myjinn](https://prepomax.discourse.group/u/Myjinn)\
**Post date:** [October 20, 2025, 4:51am UTC](https://prepomax.discourse.group/t/question-about-plasticity-simulation/3030/3 "2025-10-20T04:51:47Z")

</div>

Thank you very much for your suggestion. It has given me a clear direction. I will modifying the model and try again.

---

<div class="post-metadata">

**Author:** ![Vitek\_SAA](https://yyz2.discourse-cdn.com/free1/user_avatar/prepomax.discourse.group/vitek_saa/32/6106_2.png) [@Vitek\_SAA](https://prepomax.discourse.group/u/Vitek_SAA)\
**Post date:** [October 21, 2025, 7:07pm UTC](https://prepomax.discourse.group/t/question-about-plasticity-simulation/3030/4 "2025-10-21T19:07:35Z")

</div>

That won’t be easy to compute with an implicit solver. I’ve always wanted to try using **inp2rad** to convert a case from Prepomax to **OpenRadioss** , so here’s an example. I applied a very quick **1e-3 s loading** and **1e-3 s unloading**. The material is **steel with noticeable plasticity**.

> **[OR\_fastrun.mp4](https://drive.google.com/file/d/1eynn1ipdDNFdRh2WbFg_8tko6NzSUGbz/view?usp=sharing)**
>
> Google Drive file.

---

<div class="post-metadata">

**Author:** ![Vitek\_SAA](https://yyz2.discourse-cdn.com/free1/user_avatar/prepomax.discourse.group/vitek_saa/32/6106_2.png) [@Vitek\_SAA](https://prepomax.discourse.group/u/Vitek_SAA)\
**Post date:** [October 22, 2025, 8:15am UTC](https://prepomax.discourse.group/t/question-about-plasticity-simulation/3030/5 "2025-10-22T08:15:55Z")

</div>

I kind of worked around it — instead of applying a prescribed deformation, I first determined the force needed to achieve approximately the desired deformation, and then applied that force with an amplitude going from zero to one and back to zero.

> **[prepomax\_force\_load.mp4](https://drive.google.com/file/d/1cpqa5C5YfNICVVxFmJeMKIT5bBoxCoAJ/view?usp=sharing)**
>
> Google Drive file.

> **[SPRING\_PLASTICITY-TRY\_remesh\_force\_applied.pmx](https://drive.google.com/file/d/1I61tNmMN3zzoqk2kkk4EW_u4YD9ojLZK/view?usp=sharing)**
>
> Google Drive file.

---

<div class="post-metadata">

**Author:** ![FEAnalyst](https://yyz2.discourse-cdn.com/free1/user_avatar/prepomax.discourse.group/feanalyst/32/688_2.png) [@FEAnalyst](https://prepomax.discourse.group/u/FEAnalyst)\
**Post date:** [October 22, 2025, 8:37am UTC](https://prepomax.discourse.group/t/question-about-plasticity-simulation/3030/6 "2025-10-22T08:37:17Z")

</div>

Typically, displacement control is much better for the convergence of nonlinear problems than load control, but indeed, amplitude could be used (also for displacement) to simulate loading and unloading in one step. However, it might be good to spread it across a small surface instead of an edge.

---

<div class="post-metadata">

**Author:** ![Vitek\_SAA](https://yyz2.discourse-cdn.com/free1/user_avatar/prepomax.discourse.group/vitek_saa/32/6106_2.png) [@Vitek\_SAA](https://prepomax.discourse.group/u/Vitek_SAA)\
**Post date:** [October 22, 2025, 9:00am UTC](https://prepomax.discourse.group/t/question-about-plasticity-simulation/3030/7 "2025-10-22T09:00:34Z")

</div>

Definitely, but there is a first step with displacement control, and in the second step the prescribed displacement is removed, which causes convergence problems. A slow decrease of the force to zero resolves this.

---

<div class="post-metadata">

**Author:** ![Myjinn](https://avatars.discourse-cdn.com/v4/letter/m/839c29/32.png) [@Myjinn](https://prepomax.discourse.group/u/Myjinn)\
**Post date:** [October 23, 2025, 8:34am UTC](https://prepomax.discourse.group/t/question-about-plasticity-simulation/3030/8 "2025-10-23T08:34:20Z")

</div>

Thank you for your effort on this topic. This analysis primarily focuses on the plastic deformation of a metal spring and the contact force.

Additionally, I also utilized force amplitude to conduct this non-linear geometry (Nlgeom) analysis, but the results showed only a minimal difference compared to when Nlgeom was disabled. And the result is very same with a sheet metal company result.

---

<div class="post-metadata">

**Author:** ![Myjinn](https://avatars.discourse-cdn.com/v4/letter/m/839c29/32.png) [@Myjinn](https://prepomax.discourse.group/u/Myjinn)\
**Post date:** [January 2, 2026, 8:38am UTC](https://prepomax.discourse.group/t/question-about-plasticity-simulation/3030/9 "2026-01-02T08:38:17Z")

</div>

I finally make the 2nd step without any displacement load while NLgeom is on.

2nd step can be a DYNAMIC with implict/implict, total time can be small like 0.001s,step time can also be small, (1st Step should also add EF/NF output that is required in 2nd step)

With this DYNAMIC step I can see the plasticity deformaiton while NLgeom is on.

 ![image](https://global.discourse-cdn.com/free1/uploads/prepomax/original/2X/6/6006dcd96fed43ed5e46022ce478db04416de588.png)

**OpenRadioss** is also a great soltion for impact and especially drop simulation, it is fast and support material plasticity, hyperelastic which is mainly used in my work.

@FEAnalyst @Vitek_SAA Thanks for your suggestions and happy new year 2026.

---

<div class="post-metadata">

**Author:** ![FEAnalyst](https://yyz2.discourse-cdn.com/free1/user_avatar/prepomax.discourse.group/feanalyst/32/688_2.png) [@FEAnalyst](https://prepomax.discourse.group/u/FEAnalyst)\
**Post date:** [January 2, 2026, 12:08pm UTC](https://prepomax.discourse.group/t/question-about-plasticity-simulation/3030/10 "2026-01-02T12:08:25Z")

</div>

> [@Myjinn](#):
>
> 2nd step can be a DYNAMIC with implict/implict, total time can be small like 0.001s,step time can also be small, (1st Step should also add EF/NF output that is required in 2nd step)
> 
> With this DYNAMIC step I can see the plasticity deformaiton while NLgeom is on.

Yeah, a little bit of inertia often helps stabilize the solution in such cases. You should just be careful about its amount and check the model energies (not as easy as in Abaqus, though). There’s no special dynamic implicit quasi-static step dedicated to such cases, so you have to rely on the standard dynamic implicit procedure and adjust the alpha damping if needed.

> [@Myjinn](#):
>
> **OpenRadioss** is also a great soltion for impact and especially drop simulation, it is fast and support material plasticity, hyperelastic which is mainly used in my work.

Unfortunately, nonlinear dynamic procedures (especially the explicit one) are very limited and far from sufficient robustness, so OpenRadioss is indeed a better choice in such high-speed and/or highly nonlinear cases.

---

<div class="post-metadata">

**Author:** ![ViV](https://yyz2.discourse-cdn.com/free1/user_avatar/prepomax.discourse.group/viv/32/3262_2.png) [@ViV](https://prepomax.discourse.group/u/ViV)\
**Post date:** [January 5, 2026, 9:05am UTC](https://prepomax.discourse.group/t/question-about-plasticity-simulation/3030/11 "2026-01-05T09:05:30Z")

</div>

The static spring condition can also be checked via contact with one STEP step (I think).

 ![image](https://global.discourse-cdn.com/free1/uploads/prepomax/original/2X/b/b7bb45c46b97cba30cb9db29d8ad3d8e59e827bf.png)

 ![image](https://global.discourse-cdn.com/free1/uploads/prepomax/original/2X/3/362bbdcafaccec24deddcd4e2e15b2cc55878bb5.png)

[030.pmx](https://prepomax.discourse.group/uploads/short-url/S2lrYOazvIJxrbtUSPCY92BvHE.pmx) (644.5 KB)

To all PPM developers and users, a successful 2026!

---

<div class="post-metadata">

**Author:** ![FEAnalyst](https://yyz2.discourse-cdn.com/free1/user_avatar/prepomax.discourse.group/feanalyst/32/688_2.png) [@FEAnalyst](https://prepomax.discourse.group/u/FEAnalyst)\
**Post date:** [January 5, 2026, 11:52am UTC](https://prepomax.discourse.group/t/question-about-plasticity-simulation/3030/12 "2026-01-05T11:52:44Z")

</div>

Yeah, that’s the usual way of simulating bending of such curved springs or gaskets, but of course, there’s a risk of non-convergence due to contact. I had a particularly nasty case of this kind in Abaqus. Also, too bad that CalculiX doesn’t have rigid surface/line elements (for both 3D and 2D) and that shells don’t work properly (or even at all) with rigid body constraints. Not to mention issues with rigid body constraints on 2D and shell elements in explicit dynamics: [Rigid body constraint doesn't work with shell, axisymmetric and plane stress/strain elements in explicit dynamics · Issue #59 · Dhondtguido/CalculiX · GitHub](https://github.com/Dhondtguido/CalculiX/issues/59)

All that makes it rather problematic to model rigid plates, indenters etc. since 3D models and solid elements have to be used all the time.
