A common problem in nonlinear static numerical simulations is the presence of instabilities leading to non-convergence. Instabilities are often subtle and easily missed, leaving the analyst largely unaware of why the simulation failed and what to correct to get to a converged solution.
So, it is perhaps not surprising that Abaqus users often default to running simulations using automatic stabilization to troubleshoot problematic models. However, automatic stabilization is not intended to be used as a one-size-fits-all tool to solve instabilities. In fact, when used inappropriately, it can actually cause convergence problems or produce flawed results that could lead to costly product failures.
To help analysts obtain a converged solution that is accurate, this blog will explain instabilities and suitable solving methods, focusing on when and how to use automatic stabilization in Abaqus/Standard to overcome them.
Typical message for non-convergence in Abaqus output files:
Understanding & Overcoming Instabilities
There are many ways to overcome instabilities to facilitate convergence, but first we need to understand the main sources of instabilities and how they lead to non-convergence.
- Geometry – A geometrically nonlinear analysis is one in which the structures stiffness changes as it deforms. Some examples are:
- Large deflections and deformations, large rotations, structural instabilities (buckling), etc.
- Material – Material nonlinearity is caused by the dependence of the stress on the current strain. Some common effects are:
- Nonlinear elasticity, metal plasticity, cracking, crushing, necking etc.
- Boundary (Contact) – Discontinuous stiffness change due to the nature of contact which is defined by normal and tangential behaviors. Normal contact is either established or not, and tangential is either slipping or sticking. These are always a sudden change in stiffness and are thus classified as Discontinuous.
Note that a consistent theme to these instabilities is a change in stiffness – the greater the change in stiffness, the greater the risk of non-convergence. Of the three types of instabilities, Boundary followed by Geometry usually create the biggest problems.
To understand why this is important we must first step back into the fundamentals of what makes a problem static or dynamic. Put simply, the difference is the presence of inertial effects:
|P – I = ma|
|m = Mass Matrix||P = External Forces||I = Internal Forces|
|a = Acceleration||v = Velocity||u = Displacement|
When inertial forces are small (m -> 0), the equation reduces to the static form of equilibrium.
|P – I = 0|
|I = Cv + Ku|
|C = Damping||K = Stiffness||K = EMa|
|E = Elastic Modulus||Ma = Moment of Area|
For a static analysis, we can see we have no inertia, and that the solution is dominated by damping and stiffness. Thus, with no damping and sudden changes in the stiffness, zero stiffness such as contact gaps and unconstrained rigid body motion makes it difficult for the static solver to converge to a solution.
There are three commonly considered options to overcome this:
- An implicit dynamic (quasi-static) procedure in Abaqus/Standard
- A dynamic procedure in Abaqus/Explicit
- A static procedure with automatic stabilization using Abaqus/Standard
As mentioned at the beginning of this blog, because of its widespread overuse and potential negative consequences, we will now look at when to use stabilization in Abaqus/Standard and how to apply it, specifically the Contact Controls Stabilize used on the Contact Pair. For more details, reference Figure 2 below.
How to Automatically Stabilize Your Model in Abaqus/Standard
Stabilization is a viscous damping that is applied between contact pairs. The viscous damping is intended to reduce the motion due to sudden stiffness changes, essentially acting as a pseudo inertia to facilitate analysis convergence of an unstable model.
Problems arise from the fact that stabilization bleeds off energy that would normally be used for the deformation of the structure. Artificially changing the physics of the problem introduces an error into the simulation and to minimize the error and its effects, we must minimize the stabilization used in the analysis.
Recommendations To Minimize Stabilization Use
- Contact Pair Stabilization – Since a common source of instabilities in models stems from Boundary (Contact) problems, it is best to target the contact pairs with stabilization to facilitate establishing initial contact. This helps to minimize the amount of stabilization used and thus reduce the potential for error.
- Contact pair stabilization works by applying the maximum stabilization at the start of the step and ramping down to zero at the end of the step.
- This is best suited to contact pairs with a gap between them at the beginning of the step (unconstrained rigid body motion, DOF numerical singularity, unconnected regions). To do this in Abaqus CAE, create a Contact Control with Automatic Stabilization and on the Contact Pair select the drop down box for your Contact Control as shown in Figure 2 below.
- Check the Energies – You should always check the stabilization energy (ALLSD) against the total energy (ALLSE) of the model. The recommendation is to keep ALLSD to less than 5% of ALLSE. However, in my experience you can easily reduce this to less than 1% and still have a converged model.
- Remember, stabilization is artificial and the greater the amount present, the greater the potential for error in the overall solution.
- Too much stabilization can be a bad thing too. It can cause non-physical behavior or can actually cause non-convergence.
- Figure 3 shows an energy history plot with excessive stabilization.
- Add a Step for Establishing Contact – Another way to reduce the error created by stabilization and facilitate convergence is to split the load step into two load steps. In the first step, apply stabilization but apply a small fraction (1-10%) of the maximum load. That way contact can be established negating the need for stabilization in the subsequent step, in which the load can be ramped up to the maximum load. You can see in Figure 3 that the stabilization energy increases in step 1 but remains constant in step 2. In Abaqus CAE you can set this up as follows:
Example Results from Applying Recommendations
Applying these recommendations to a simple analysis that initially will not run, as shown in Figure 1, we can create the following results table:
The analysis in row A has a single step with the full load applied during this step and stabilization is active on the contact pair using a factor of 1. Checking the stabilization energy we see that it is 13,725%, clearly violating the 5% recommendation.
The analysis in row B has a second step added, with the load being 1% in the first step and increased to 100% in the second step. The Stabilization Factor was reduced to 1E-2 and was applied only in the first step. Checking the stabilization energy we see that it is 149%, less than the previous analysis but still violating the 5% recommendation.
The analysis in row C differs from the analysis in row B with only the stabilization factor being reduced from 1E-2 to 1E-8 and as a result we can see that the stabilization is now 0.27%, clearly less than the 5% recommendation.
Finally, note the change in peak stress in the model and how it increases with the reduction in stabilization. In this case, it is a relatively small change, 3% however, it demonstrates the effect excessive stabilization can have on the results. It should also be noted that as stabilization is a damping force and damping energy is dependent on velocity – distance divided by time even applies in a ‘static’ analysis. This means the faster the components move, the greater the damping force. Thus, for the iterations of the same model (changing contact pair friction for example), we can see different levels of stabilization and inconsistent impact on results such as peak stress.
If you have any questions or would like to learn more about Abaqus and automatic stabilization, contact us at (954) 442-5400 or submit an online inquiry.