Solving problems with static instabilities in Abaqus
Often, we run into difficulties while solving a nonlinear FEA problem due to some instability in the system. Here I will review static instabilities and techniques available to solve problems with such instabilities.
Nonlinear static problems can become unstable. Such instabilities may be local or global in nature. Instabilities may also occur in a contact problem. There are different techniques available to overcome difficulties arising due to these instabilities. In this post I will discuss static instabilities and techniques available in Abaqus to solve problems with such instabilities.
In case of global buckling in a model, sudden energy release occurs which appears as a load drop in the response curve. This release of energy causes an instability in the system. To solve such unstable problems, Abaqus provides Riks method. Riks method is a global load-control method that is suitable for global buckling.
Figure 1: Typical load-displacement curve for problems with global instabilities
The instabilities in a model may be due to geometrical changes, such as buckling, or due to material behavior, such as material softening. If the instability appears in a global load-displacement response with a negative stiffness, the problem can be treated as a buckling.
Figure 2: Defining a Riks step in Abaqus
If the instabilities are localized in a static problem, there will be a transfer of strain energy from unstable area of the model to neighboring areas and global solution methods, such as Riks method, may not work well. If such a problem is analyzed dynamically, the strain energy released is transformed into kinetic energy. So the inertia has a stabilizing effect on the model. This mostly works well but solving a quasi-static problem dynamically could be computationally expensive. Another alternative is to introduce damping to dissipate the strain energy. For that purpose, Abaqus/Standard provides an automatic stabilization capability to stabilize unstable quasi-static problems by applying volume-proportional damping to the model.
When automatic stabilization is activated, viscous forces of the form
are added to the global equilibrium equations as
where is an artificial mass matrix, is a damping factor and is the vector of nodal velocities. Nodal velocities are computed by dividing incremental displacements, by the time increment size i.e.
Figure 3 shows load-displacement curve for a problem with local instabilities. The release of strain energy is associated with negative tangent stiffness matrix. Abaqus indicates the presence of local instabilities by producing “negative eigenvalue” warning messages.
Figure 3: Load-displacement curve for a problem with local instabilities
Local instabilities can be either geometrical in nature, such as local buckling, or due to material behavior, such as material softening.
In Abaqus, automatic stabilization is activated in the Edit Step dialog box. The applied damping factors can be constant, or they can increase/decrease with time to account for changes occurring in the model during the step. The later option is called Adaptive stabilization and allows to increase the damping factor if the convergence behavior is problematic or to decrease the damping factor if it distorts the solution.
Figure 4: Specifying automatic stabilization for problems with local instabilities
Instability in Contact Problems
Instability may also occur in contact problems. This could be either due to unconstrained rigid body motion or chattering.
In many cases not all the degrees of freedom of the contacting parts are constrained expecting that contact will prevent unconstrained rigid body motion. This usually does not happen as contact intended to prevent rigid body motions is not established initially. It causes the convergence difficulties and analysis could be aborted with the “Numerical singularities” warnings. Initial displacement of the loaded parts should be principally determined by their inertia which is not considered in a static analysis. This results in singular system of equations before the contact could be established. This can be elaborated by the simplified representation of an elastic body contacting a rigid obstacle as shown in the figure below.
Figure 5: Load-control problem
In this load-control problem, stiffness matrix becomes singular and hence it cannot be inverted. Therefore solution to the static problem cannot be determined. On the other hand, in a displacement-control problem, solution can be obtained readily as elaborated for the simplified system in the figure below.
Figure 6: Displacement-control problem
Once contact is established, the matrix becomes nonsingular also for the load-control problem and a solution can be obtained. For load-control problems it is suggested to apply additional boundary conditions initially to get the components into contact, instead of applying loads directly. In a later step those additional boundary conditions are removed and load is applied. This approach requires more steps but it is less likely that analysis will face convergence difficulties. An alternate way is to ground the body with soft springs or dashpots.
Another approach to stabilize the rigid body motion in a load control problem is to introduce viscous damping at the contact interface. This damping opposes incremental relative motion and can be conducive to avoid convergence problems while contact is established. The normal pressure and shear stress associated with contact stabilization depend upon the relative normal and tangential velocities, respectively, between nearby points on opposing contact surfaces.
Figure 7: Load control problem with damping
In these expressions, and are the normal and tangential stabilization stiffnesses which represent resistance to relative motion between contacting surfaces. In a static analysis relative velocities are computed by dividing relative incremental displacements, and , by the time increment size, i.e.
A large amount of strain energy can be stored in the contacting bodies. If the bodies separate suddenly, this energy will be released. Local instabilities could arise in a static analysis due to contact openings as the release of accumulated strain energy cannot be dissipated into kinetic energy. The released energy can cause chattering in a contact interaction.
Chattering is a common difficulty preventing the contact convergence. When a node’s status changes from closed to open in one iteration and in the next iteration its contact status changes from open to closed; it is said to be chattering and is an indication of instability in the contact.
Job Diagnostics dialog box in Abaqus gives information about the contact region where changes in the contact status occur. The dialog box makes it very easy to detect chattering in a model. Negative eigenvalue warnings appear when the chattering occurs in contact interface.
Figure 8: Detecting chattering at contact interface
To stabilize a model suffering from chattering, damping can be introduced to dissipate the released energy. Contact damping, in addition to preventing unconstrained rigid body motion, can also be used to stabilize a model suffering from chattering. Contact damping, also called stabilization, is specified by defining contact controls.
Figure 9: Defining contact controls to specify stabilization
By default the damping coefficient is ramped down to 0 at the end of the step to have minimum effect on the analysis results.
The introduction of contact stabilization in a problem can change the solution significantly. Although the automatically calculated damping coefficient typically provides enough damping to stabilize the rigid body motion, it is not certain that the value is unnecessarily high and distorting the solution. Therefore it is necessary to verify that the inclusion of contact stabilization does not significantly alters the solution. The simplest method is to compare the energy dissipation due to stabilization (ALLSD) to the elastic strain energy of the model (ALLSE) or the internal energy of the model (ALLIE). Smaller the value of dissipation energy as compared to the internal energy of the model, the better.
If you want to learn nonlinear FEA in depth, you could have a look at the online course “Solving Non-linear Problems with Abaqus”
To post comments on this post, please visit this link.