Modelling plastic deformation of a column

  • Last Post yesterday
  • Topic Is Solved
TimH posted this 4 weeks ago


Since a few days I am trying to simulate the plastic behaviour of a pinned-pinned column under axial compression. To implement an initial imperfection, I ran a linear buckling analysis first and exported the solution to a static structural analysis via APDL code (see picture), which worked out quite good.

To save some calculation time, I modeled only one half of the column in this static structural analysis and added a symmetry Region to the right faces. I added constraints and a ramped force to the system shown in the following picture (same as in the linear buckling analysis). As I want to simulate pinned-pinned support, I added a fixed support and a displacement with Uz as only degree of freedom to the load application plates (self-defined very stiff material) at the top and bottom of the column respectively. All of the contacts are being modeled as bonded. As a material for the column I defined a multilinear material (taking effects of thermal degradation into account as I want to simulate this effect in an next step), which can be seen in the next picture. After a while of solving this problem, ANSYS WB 18.2 stops the solution by sending several warnings and errors (see picture). Although sending all of those errors, I can view the results, which do not look too bad. After checking stresses and strains of the viewable results I found out, that ANSYS only solved up until the point at which plastic deformation occurs (same problem while using the default material "Structural Steel NL" from the WB material database, so that I assume, that this problem is not due to a wrong definition of my own material).

I would be so thankful, if anyone has an idea on what my fault is.

Thank's very much.


Order By: Standard | Newest | Votes
peteroznewman posted this 4 weeks ago

Hey Tim,

A force loaded column in a Static Structural model can only simulate up to the point when the force-deflection curve goes horizontal and approaches the buckling load.

If you replace the force boundary condition (BC) with a displacement BC, you can plot the force-displacement curve by using the reaction for the displacement BC, but the solver will continue to advance the displacement even after the force has reached its peak value and is onto the negative slope of the curve, which is past the critical buckling load where the structure has buckled and would fail to support a static force.

If you have a Fixed Support on one of the end plates, then that is not a pinned end condition. To create a pinned end condition on the stationary end you can add a joint to ground and specify a Revolute if you want an actual pin axis, or specify a Universal joint and make sure the joint Y axis points along your global Z to fix rotation about the column axis while leaving the other two rotation axes free.

A pinned moving end uses another joint to ground but specify a Slot joint. You have to make sure that the joint X axis points along your global Z. Use a Joint Load and drive the joint X axis with a displacement.

  • Liked by
  • TimH
TimH posted this 4 weeks ago

Hey Peter,

thanks a lot for your quick answer. I thought, that because of the initial imperfection, it is not a buckling issue any more but a bending issue (comparable with a simply supported beam exposed to bending). Therefore, in my opinion, it must be possible to simulate plastic deformation as well. Later on I would like to apply a constant force onto that column while rising temperature till collapse to get the fire resistance in minutes. Thats why I need the boundary condition to be a force. Are you sure that this doesn’t work?

I modeled the pinned support on the stationary end by applying a fixed support on a line around which the system can rotate (see Method 1 in picture). I did the same on the other side of the column but with a displacement support with additional freedom of movement in the direction of the global z-axis. It worked but might not be the most elegant way. I tried your method (see Method 2 in picture). It worked as well although I got the messages:

1)      One or more MPC contact regions or remote boundary conditions may have conflicts with other applied boundary conditions or other contact or symmetry regions. […]

2)      Not enough constraints appear to be applied to prevent rigid body motion. […]

Moreover, with your method (Method 2) I got a slightly different Load Multiplier (9,13e+6) as a solution of the Eugenvalue Buckling Analysis compared with Method 1 (9,25e+6) and a hand calculation (9,31e+6). Do you have any idea why this is and how to avoid those errors?

Thanks for your help

TimH posted this 4 weeks ago

I have a theory on why ANSYS WB fails to solve this problem (axial force-compression of geometric imperfect column). I would be very thankful, if someone could confirm this theory and/or show a solution on this issue.

The Problem might be found in a ramped force combined with large deflections, which I switched on in this analysis. While increasing the force, the deflections normal to the axis of the column (here x-axis) increase and because of that, the stiffness of the system decreases. Hence, no matter if a plastic or elastic material is implemented, there is a point at which the column collapses (brittle collapse) due to a low resistance against further bending. Exceeding this specific point, ANSYS deforms the elements so much, that convergence problems occur.

If this is the case, implementing a ramped deflection [mm/sec] instead of a ramped force [N/sec] would indeed help. But as I mentioned, I definately need to have an axial force to be applied on the column. What might help is a command to tell ANSYS WB 17.2 or 18.2 to stop calculating when a specific deflection (e.g. Uz=100mm) has been reached. Does anyone know about such command?

peteroznewman posted this 4 weeks ago

Hi TIm,

Please read this slide deck. On slides 14-18, it explains how to find the critical buckling load by tracking the load-deflection curve. Slide 18 explains that using a force to approach the buckling load will result in the solver stopping with an error, and to be careful that the error did not happen too soon!

The error that stops the solver is not that an element has deformed too much (although that error is possible in a nonlinear analysis), but that there is no equilibrium solution at any higher load. The solver is ramping up the load and converging on a static equilibrium at increasing increments of force until it can go no further, which is the definition of buckling.  By changing from a force input to a displacement input, there is a static equilibrium at the next increment of displacement, it just has a lower reaction force than the last converged displacement.

You said " I definitely need to have an axial force to be applied on the column." A single DOF displacement load does provide an axial force. If you have a pinned end supported in X and Y displacements and apply an axial Z force of 1 kN and get 1 mm of Z displacement, the structure will be deformed identically to one where 1 mm of Z displacement was applied and the reaction force was 1 kN.

You said, "What might help is a command to tell ANSYS WB 17.2 or 18.2 to stop calculating when a specific deflection (e.g. Uz=100mm) has been reached."  That command is called a Displacement boundary condition. ANSYS ramps the displacement from 0 to 100 mm in increments.  You can add a Reaction Force to the results to track the force required at each increment of displacement.  You can even tell ANSYS to take small steps when incrementing the displacement so you get good resolution on the Reaction Force plot. You might even see the force increase to a maximum, go horizontal, then start to decrease in magnitude. You are now in the post-buckled regime of the structure.

Slide 19 suggests using a STABILIZE option that allows the plotting of post-buckling behavior. That is required in cases such as a pressure load on a shell model of a dome where you can't use a displacement load as I suggested above to follow post-buckling behavior.



  • Liked by
  • TimH
TimH posted this 3 weeks ago

Somehow half of my message got lost. Here again:

 So if I understand right: What I am doing by coupling the result of an Eigenvalue Buckling Analysis to a Static Structural Analysis is nothing else but a Nonlinear Buckling Analysis. In this case, a solution failure caused by convergence problems, sending those errors like "Although the solution failed to solve completely at all points. [...]", still can produce usable results. Usable results will be given till that time at which the ramped force reaches a value which, without further increase of the force, leads to further displacement of the system. That is the reason for convergence problems. By reading out the force at which ANSYS stops calculating, I get the capacity of the column. Nonlinear Buckling can be seen in the Force vs. Deflection curve (see picture), which tends to get horizontal. In my case (see picture) the capacity of the column is -9.1e6 [N] (read out of the tabular data) at a deflection of -74.279 [mm] in the direction of the x-axis. So the point where ANSYS stops calculating is not, how I assumed first, the point at which plastic deformations occur but the point at which nonlinear buckling occurs.

Please correct me, if I summarized wrong.


peteroznewman posted this 3 weeks ago

You have it nearly correct.  ANSYS can stop solving for reasons of numerical instability (bad element shapes) before it has reached the point of physical instability, so you have to plot the force-deformation curve to see if it has gone horizontal to determine the reason for the solver stopping.

  • Liked by
  • TimH
TimH posted this 3 weeks ago

Thank's a lot, Peter. You've been a great help on this. I have one last question on this issue: As I mentioned before, I am attempting to set a constant axial force onto the column while increasing temperature and watch the column collapse due to thermal degradation of the material. Therefore I cannot plot a force-deflection curve (constant force) but a temperature-deflection curve, which goes horizontal as well (see picture). Can I use this curve to prove physical instability (buckling) as cause of the solver stopping?

peteroznewman posted this 3 weeks ago

Hi Tim, yes, this curve looks like it has approached horizontal.  If you want more points between 750 and 1150, go to Analysis Settings and change Auto Time Stepping to On and set a high number for Initial Substeps and Minimum Substeps, even higher than 10 if you want. 

You can show your appreciation by clicking Like below the posts that are helpful.

  • Liked by
  • TimH
TimH posted this 3 weeks ago

Awesome, thank's very much!

TimH posted this 4 days ago

Sorry for reopening this discussion but some more questions concerning this issue appeared:

I modeled the column with a self-defined temperature dependent, multilinear material and found out by viewing the time vs deflection curve, that in some cases (stub column), ANSYS WB 18.2 stops calculating before buckling occurs. I therefore assume that convergence problems are due to reaching the materials capacity (stress = ultimate strength). Now I would like to know, in which elements this is the case. I tried to display the Safety Factor but it seems like this is not possible because the ultimate strength is temperature dependent and varies from element to element (due to different element temperatures).

Is there a way to display Safety Factors despite those described circumstances (temperature, time and location dependence of the ultimate strength)?

Moreover I guess, ANSYS stops calculating until the materials capacity reaches its limit in a single element although the whole structure would bear the load for another while, as the materials ultimate strength in colder regions inside the column still have a higher value of ultimate strength.

How can I tell ANSYS WB to kill elements as soon as they reach ultimate strength without stopping the calculation?

peteroznewman posted this 3 days ago

In a linear statics model, with isotropic elasticity and no plasticity, the only use made of the ultimate strength entry in the material database is to plot the Safety Factor result.

Once you add a multilinear plasticity model, the ultimate strength is not so relevant.  Ductile materials have an Elongation (at break) material property value that can be compared with the Total Strain result to determine failure in a tensile portion of the model.

ANSYS doesn't stop calculating when it reaches any strength limit in a plasticity model, but it does stop calculating when the element shape becomes too distorted to provide valid results. This is where a higher quality mesh can help the solver get further along.

There is an APDL command to kill an element when it reaches a failure limit, such as when the Total Strain > Elongation. It is called ekill and you can look it up in the online help. Ekill works in Static Structural and I have an example of an APDL script that will remove elements and keep going, but I have to go now so I will come back later and post that.

The Explicit Dynamics solver will automatically kill elements that reach a particular value of strain and keep going, but that is a very different environment to work in and less suited to obtaining precise results, it is well suited to giving guidance on how structures will evolve the failure over time, especially for high speed events.

  • Liked by
  • TimH
TimH posted this 2 days ago

Hi Peter,

thanks again for your advice, you're a really great help. Determining the location of failure by comparing Total Strain results with the maximum strains defined in the Engineering Data is not so easy, because maximum strains (strains at which Multilinear Plasticity Model ends) are temperature dependent (see picture) and therefore time and location dependent. Hence, if I view the Total Strain result, outputted by ANSYS WB, I need to plot the temperature as well and derive maximum strains at certain temperatures. I tried to plot an excel sheet, in which I compare Total Strains and Body Temperatures at certain locations of a Path lying in mid height diameter of the column followed by manually calculating maximum strains at those certain locations via interpolation of the material data. By doing so, I can get a safety factor by dividing Total Strains by maximum Strains. This is a very time consuming-method, which I hoped can be done by WB automatically (and not only along ome single Path).

As you explained, ANSYS doesn’t stop calculating when it reaches a strength limit in a plasticity model. By strength limit I meant the last point defined in the Multilinear Plasticity Model at which deformations increase till infinity. As I said, I think that this causes convergence problems and makes ANSYS stop calculating although the system would bear the load much longer. That’s why I would like to kill those highly deformed Elements to avoid early convergence issues. By online help you mean this: I will try if I can figure out how that works. It would be awesome if you could post that APDL script of yours, which you mentioned, anyways.

peteroznewman posted this 2 days ago

Hi Tim,

I have a different understanding about when failure occurs that contrasts with your statement.

"Determining the location of failure by comparing Total Strain results with the maximum strains defined in the Engineering Data is not so easy,"

For a ductile metal, if we define material failure as the Total Strain when fracture occurs in a tensile test, that has nothing to do with the last value of strain in a multilinear plasticity material model table. The material property that describes the Total Strain when fracture occurs is Elongation. The table of strains in a material model won't have any values of Total Strain larger than the value of Elongation, but the last value in the table might be much less than Elongation. That is okay, ANSYS will continue to solve the model well past the point when Total Strain exceeded the last point in the table. It just won't have any higher value of stress. ANSYS will not stop solving when the Total Strain exceeds the Elongation either. ANSYS will stop solving when the element becomes highly deformed.

That’s why I would like to kill those highly deformed Elements to avoid early convergence issues.

You don't kill elements because they are getting highly deformed, you kill elements because Total Strain is greater than Elongation.  If the solution stops due to highly deformed elements and you need it to go further, then you need to improve the mesh, potentially shaping elements that get squashed to a wide-thin aspect ratio at the end of the simulation to be narrow and tall at the start so they have more capacity to deform.

By online help, I mean when you click on the Help menu item and select Mechanical Help.

I created an Engineering Demo (ED) model of a coat hook with a remote displacement that pulls the tip down to demonstrate plasticity and solving past the last point in the material table. I used a Bilinear Kinematic Plasticity model and entered 0 as the Tangent Modulus, to demonstrate what is called an Elastic-Perfectly Plastic (EPP) material. The plastic part of this behavior is just like what happens after the strain exceeds the last point on a multilinear kinematic plasticity material. The video shows what is known as a "plastic hinge".


This model converged to the end. There are some metals with Elongation at break of 100%. The plastic strain at the end in this model is over 200%. This example illustrates the limitation of a nonlinear plasticity model; it is not going to show the tearing of the material when Total Strain exceeds Elongation. To illustrate tearing, the ekill script would be used to remove elements. That is not implemented in this model, but the model is useful as it allows a plot of Total Strain and Pull Force vs. Tip -Y Displacement (up to load step 3).

The hook starts yielding at 308 N. As the tip continues to be pulled down, the force to pull it decreases and the Total Strain increases. Most metal exhibit strain hardening, so the force would increase for some displacement, which is not the case for this EPP material model.

If the material property Elongation at Break is known, then the Tip Displacement where tearing begins could be read from this graph. For example, if Elongation was 0.5, then the Tip Displacement where tearing begins would be 13 mm. If Elongation was 1.0, then the Tip Displacement where tearing begins would be 28 mm. I plan to apply the ekill script to this model and in a later reply, show the result.

Note that this model applies a displacement. If the model had applied a force to the tip of the hook, the solution would have failed to converge after the first couple of increments. The non convergence occurs when the force changes from a positive to a negative slope as the solver would not be able to find an equilibrium after that load.

This EPP material doesn't exist, but if it did, and had an Elongation value < 2.0, then there is an equilibrium for the next load increment, but it is at a 50+ mm deformation and ANSYS can't find something so far away in a Static Structural model. In a physical test, the tip would suddenly drop 50+ mm, but then continue to support higher loads. ANSYS could model this drop in a Transient (or Explicit) Dynamics model.

Attached is an ANSYS 18.2 archive.

Attached Files

peteroznewman posted this yesterday

In Explicit Dynamics, element death is called Erosion and is automatically included in the model. The video below, while it looks similar to the shape above is a very different model. Explicit Dynamics cannot do Kinematic Hardening Plasticity, only Isotropic Hardening. I should make a version of the model above using Isotropic Hardening to look for the difference. The bigger difference is that this is Dynamics instead of Statics. There are significant inertia forces when the tip of the hook moves down in 300 ms and the elements are eroded when they reach a strain of 1.0 (100%).  The even bigger difference is this geometry is 1000 times larger than the model above. The tip is moving down 60 meters in 300 ms which is a velocity of 200 m/s or nearly 450 miles per hour! I made this model because it solves in about 1 minute. If I had kept the geometry the same size, with the same fine mesh and move 60 mm in 300 ms, then the solution would have taken 100 hours to compute and I would still be waiting to illustrate element death.