I want to SEE the failure!

  • Topic Is Locked
  • Last Post 22 July 2019
  • Topic Is Solved
peteroznewman posted this 03 May 2018

Engineers new to Static Structural simulations build a model, overload it and some expect to see the failure appear as a crack in the model.  ANSYS has sophisticated capabilities to compute cracks in the model, but this is unnecessary if the goal of the analysis is to see when and where the part will fail.

Engineers learn to compare the state of stress with values provided by a failure theory to decide if the part has failed. This is done by comparing a maximum stress in the model with some limiting value.  For example, if the material is ductile, a quick linear elastic analysis will calculate a von Mises Equivalent Stress that can be compared with the Tensile Ultimate Strength. If the maximum stress is larger than the strength, the conclusion is that the part would have fractured. A common method to show failure in a linear elastic model is to set the threshold for the last bar on the legend, which is red, equal to the Tensile Ultimate Strength. If red appears on the contour plot of Equivalent Stress, then it is easy to say that the part has failed under this load and where the part would crack. But people still want to see the crack.

One way to show the crack without using Explicit Dynamics is to use the APDL command ekill. This command removes the element from the model when it reaches the failure criterion; the trick is how to get the model to continue solving after removing the element and incrementing the load. 

SimuTech Group, a Premier ANSYS Partner, provided me with an APDL script and permission to share it with anyone. The script implements ekill in a way that allows elements to be removed and the solution to continue. It works best with displacement loads, not force loads.  I was successful following the directions to use the script on one model and then another. I release this script into the community, as is, with no support and no warranty. I hope someone else finds it useful.

To show the script in use, I created a 2D plane stress model so each solve would be very fast.  The model is a hook with an end load. The question is how much load can the hook support without failure. 

I have three systems: Linear Elastic, Elastic Perfectly Plastic and Ekill Script.

In the Linear Elastic model, the legend has been configured so the color red shows elements that are above the Tensile Ultimate Strength of 640 MPa

ANSYS provides a stress tool to make a Safety Factor plot that divides the Tensile Ultimate Strength by the von Mises Equivalent Stress at each node. Therefore when SF < 1 the part has failed, and when SF > 1 the part has not failed.

In the Elastic Perfectly Plastic model, Bilinear Kinematic Hardening plasticity has been added to the Structural Steel model using the Yield Stress that was defined for that material and setting the Tangent Modulus to zero. During the solution, any element that exceeds the yield stress will plastically deform. This behavior can go on way past the point when the material would have failed. If you keep pulling, the element will keep stretching until the shape collapses on itself and the solver will stop because the element has become invalid.

In the plot below, the strain is over 50%, way past the point of fracture.

In the Ekill Script model, the analysis settings are configured with a large End Time of 500 seconds. That means after each one second increment of time, the script will find any elements that have exceeded the strain threshold, remove them from the model using ekill, then submit the job to solve for the next second.

The above sequence is what some Engineers want to see.

The attached project archive for ANSYS 19.0 has the three systems described.

Attached Files

Order By: Standard | Newest | Votes
peteroznewman posted this 03 May 2018

Here is the Explicit Dynamics version but it is a totally different model since it has an explosive velocity of the tip.


beyaz17 posted this 31 October 2018

 Hey Peter,

thank you a lot for shearing the script. It is very useful to me. But I have one question. 

Ive used the APDL-code for my 3D-Modell and it works fine. Now the question, the death elements are still in my "Geometry" they dont disappear like you pictures show us. I have to mention that I use a older version of Ansys. I use Ansys WB17 and WB18. the ekill function works fine just the graphical representation doesnt show my how the elements are disappear. What is the problem? maybe i have to change a setting? or is the problem the version of ansys?

peteroznewman posted this 02 November 2018

Hey Beyaz,

Glad it's working. That script has been used well before WB17. I don't know why the failed elements are still showing for you. I didn't do anything special to make them disappear. Maybe someone else can explain.


  • Liked by
  • beyaz17
  • khaledelmonajjed
khaledelmonajjed posted this 02 December 2018

Hey Peter,

Thank you for a wonderful explanation!

I found this really interesting and attempted to implement it. While using a simplistic model first, I used the same code but decreased the steps to 3 for a faster iteration just to see if I can get the code up and running. The strain is still set to 0.0023.

The probe deforms downwards at 30mm while the block is fixed at its endpoints. The killelem is set to the block only. The result is that the probe displaces with no effect on the block. Also, I receive this error in the solution output:  The birth and death capability requires that the NROPT,FULL command be 
 specified before the first SOLVE command and before the first EKILL    
 command.  The EKILL command is ignored

Might you know why this is happening?




peteroznewman posted this 02 December 2018

Hey Khaled,

Are you trying to use Static Structural with Contact elements? That isn't the best way to use ekill because contact elements are only on the surface of the model and when the underlying element is gone, there is no longer a contact element for the object penetrating the target to interface with.

For piercing type problems, I recommend Explicit Dynamics because the contact algorithm is on an element by element basis and can maintain a solution all the way through the thickness.


  • Liked by
  • khaledelmonajjed
khaledelmonajjed posted this 02 December 2018

Hello Peter,

Thank you so much for replying! I would have gone initially to explicit dynamics, however, I got to the understanding that it is used only for high impact analysis and all I would like to do is pierce through at a slow rate. I will definitely try out explicit dynamics, however, for this analysis if the algorithm is more suitable. Is it possible, if you provide me with the same model above in explicit dynamics as you describe in your first comment? I could not find the explicit dynamics archive attachment in the thread it leads to.



Aman1735 posted this 19 April 2019

 Hello sir,

i want to ask is it possible to do crack initiation and crack propagation with each and every increment of the load on ANSYS WORKBENCH..?

As you know ANSYS software consists of two interfaces:-

1: Workbench

2:- Mechanical APDL 

I know that this crack analysis can be done on Mechanical APDL, but is it possible with the Workbench  go to static structural.?

My problem is i want to do the analysis of cracks for RC beam on ANSYS workbench, but i need some documentation on it,,, so pls hlp me out

DG89 posted this 21 July 2019

Hi everybody,

Thank you to peteroznewman for its interesting file!

Now, I'm trying to use the ekill script provided by peteroznewman with a solid body but it does not run. Is it possible? What I have to change?

peteroznewman posted this 22 July 2019

How many steps do you have in your solution?

DG89 posted this 22 July 2019

I have no solution, because I encountered the following error message:

 *** ERROR ***                           CP =       0.452   TIME= 1894
 Attempt to divide by zero in parameter expression.                     

 *** ERROR ***                           CP =       0.452   TIME= 1894
 The above error occurred processing field= TIME_END/STEPS              
  Line= *SET,timeinc,(TIME_END/steps).

Attached Files

DG89 posted this 22 July 2019

I attached the file:

peteroznewman posted this 22 July 2019

Please download the attachment to this post and run the model in that example to establish that the version of ANSYS you are using can run the script.

DG89 posted this 22 July 2019

I did, and it run without problems ... So I tried to adapt the script to a simple new project and I obtained that error message

peteroznewman posted this 22 July 2019

I don't write scripts, I only use them. Looking at the error you posted above, it seems that during execution, STEPS = 0 is set and the divide by zero error occurs.

Good luck.

Topic Is Locked