A structure can become unstable when a load reaches its buckling value or when nonlinear material becomes unstable. It is more common in slender structures than in bulky structures. The instability could be global (such as a snap-through of a plate) or local (such as failure of a stiffener). Instability problems usually pose convergence difficulties and therefore require the application of special nonlinear techniques.
You can apply the following techniques to solve instability problems:
A tool for dealing with local instabilities as well as global instability. You can use it together with nearly any other nonlinear solution technique, such as line search and automatic time-stepping (although not with the arc-length method).
This method can circumvent global instability when forces are applied. More importantly, it can simulate the negative slope portion of a load-vs.-displacement curve.
Running a static problem as a "slow dynamic" analysis
This method is not strictly a different technique; rather, you use a dynamic effect to prevent divergence. This method is not especially easy to use because the analysis type changes, so you must input mass, apply a damping factor if necessary, and use proper time-integration parameters. Ansys, Inc. therefore recommends trying nonlinear stabilization or the arc-length method first.
Alternative methods are available to help achieve convergence. For example, you could apply displacements instead of forces, if applicable. Or, you could apply artificial small stiffness to the unstable degrees of freedom. These stiffnesses could be either permanent or activated/removed at some load step by applying the stiffness using the control element COMBIN37. However, such methods may be unreliable, impractical, or simply not applicable.
Convergence difficulty due to an unstable problem is usually the result of a large displacement for smaller load increments. Nonlinear stabilization can be understood as adding an artificial damper or dashpot element at each node of an element that supports this technique.
To better conceptualize the artificial dashpot element, think of it as having two nodes: one is the node of the FE model that you create, the other is fixed on the ground. The program calculates the damping force such that it is proportional to the relative pseudo velocity of the two nodes of the artificial element, which is equal to the velocity of the node belonging to the FE model.
The pseudo velocity is calculated as a displacement increment divided by the time increment of the substep. Therefore, any degree of freedom that tends to be unstable has a large displacement increment causing a large damping (stabilization) force; this force, in turn, reduces the displacements at the degree of freedom so that stabilization is achieved.
For the degrees of freedom that are stable, the dashpot elements have little effect on the results because the displacements and the stabilization forces are small relative to the physical forces.
The coefficient used to calculate the damping (stabilization) force is the damping factor. Although it has the same physical meaning and unit as physical damping, it is purely numerical in nonlinear stabilization. The program calculates a damping factor based on the energy dissipation ratio that you specify, or you can input the damping factor value directly.
The only command necessary for using nonlinear stabilization is STABILIZE. The command activates or deactivates stabilization from one load step to another, or after a multiframe restart during a load step.
The program assumes that the first substep of a load step is stable and
calculates the basic properties of the artificial dashpot elements based on this
substep. Therefore, the program does not apply stabilization for the first
substep unless you specify that it should do so (via the command's
SubStpOpt
option).
The following topics describe how to use the STABILIZE command in a nonlinear analysis:
Two methods are available for controlling the stabilization force:
Energy Dissipation Ratio
The energy dissipation ratio is the ratio of work done by stabilization forces to element potential energy.
The energy dissipation ratio should be between 0 and 1. Because the value is used with predicted energies, the program accommodates an input value greater than 1, but use caution. The greater the value of the energy ratio or damping factor, the greater the stabilization force (assuming that the specified number of substeps and time remain unchanged) so that the system has a stiffer response.
The specified value should be large enough to circumvent the divergence, but small enough to avoid excessive stiffness. The ideal value is fully dependent on the specific problem, the time of the load step, and the number of substeps.
You may need a few tries to determine the best value. Generally, use a smaller value for local instability and a larger value for global instability. The smaller value should be used for solid elements and the larger value should be used for shell, beam, and link elements. Use a smaller value if the specified time for a load step is small and a larger value if the specified time for a load step is large.
With the energy dissipation method, the program calculates the damping factor (based on the input energy dissipation ratio) during the first substep after the command executes. The program uses the calculated damping factor by predicting the element potential energy and stabilization energy at the end of the load step based on the data of the current substep, then setting the energy dissipation ratio equal to or smaller than the specified value. This prediction could be inaccurate when the problem is highly nonlinear. It is a good practice to examine the energies after the solution has completed because the energy dissipation ratio of the solution could be greater than the ratio initially specified via the STABILIZE command.
Damping Factor
The numerical damping factor is the value that the program uses to calculate stabilization forces for all subsequent substeps. The damping factor is highly dependent on the element size, shape, material, and other factors including the size of the load step and time used in the load step. The damping factor therefore varies from element to element.
During a run using the energy dissipation method, the program calculates the damping factor and reports an element volume weighted average value in the .out file. The value reported provides a reference value for you to specify if you want to apply a damping factor as the stabilization control in a subsequent run. When you input a damping factor as the stabilization control, the program uses that value for all applicable elements; therefore, the results can differ from those of a run where you use the energy dissipation method exclusively.
The value used as a damping factor can usually have a much wider range of variance than the value used for the energy dissipation ratio (which can only change from 0 to 1 in most analyses). If it becomes apparent that your analysis is too sensitive to the energy dissipation ratio value, try using the damping factor.
When stabilization is active, the program can apply the stabilization force in two ways: constant (STABILIZE,CONSTANT) or reduced (STABILIZE,REDUCE). The constant option keeps the damping factor (calculated or input) unchanged during each substep of a load step. The reduced option reduces the damping factor linearly to zero at the end of the load step.
Although the constant option works well in most cases, some stabilization forces usually remain at the end of the load step. Unless the stabilization forces are very small, convergence difficulties may occur if stabilization is deactivated in the next load step. It may be difficult to converge for the first substep of the following load step because the stabilization forces suddenly becomes zero. In such a case, use the reduced option for the previous load step.
Example
Convergence difficulties when using the constant option can occur in an analysis of creep phenomena, where the load is usually applied quickly in the first load step, but no new load is applied at the second load step (which usually has a very long time span). The stabilization forces could be large at the end of the first load step because the time is short and pseudo velocity is high at the first load step. In this case, if stabilization is needed for the first load step, the reduced option is best. The second load step is usually stable so that stabilization is unnecessary.
When stabilization is active, you can activate artificial dashpot elements (STABILIZE) for the first substep of a load step.
In most analyses, stabilization is unnecessary because the structure is
initially stable, so the first substep should converge if the substep size
is reasonable. When SubStpOpt
= NO, the program
calculates all necessary data for stabilization more accurately and achieves
convergence more easily; therefore, Ansys, Inc. recommends using this option
whenever possible.
Convergence Problems at the First Substep
There are some situations where convergence is an issue at the first
substep. For such cases, you can specify substep option
(STABILIZE,,,,SubStpOpt
)
MINTIME or ANYTIME.
The MINTIME option activates stabilization only when the time increment reaches the minimum time increment and the analysis still has not converged. Use this option for the first load step only.
The ANYTIME option activates stabilization for any time increment tried for the first substep. Use this option for any load step other than the first load step where constant stabilization is active (STABILIZE,CONSTANT).
The program uses the damping factor calculated at the previous load step to calculate the stabilization forces for the first substep. If no such value is available, the program assumes a deformation mode for the first substep and calculate a damping factor for the first substep. In either case, the program recalculates the damping factor after a successful convergence based on the solution of the first substep and uses the new value for all subsequent substeps.
Use caution with either substep option and check the final result to verify that the stabilization forces and energies are not excessive.
Example
Specify
SubStpOpt
= ANYTIME for the current load step after you have applied a constant stabilization force (STABILIZE,CONSTANT) in the previous load step and the first substep did not converge, yet the current load step also requires stabilization. This option is especially useful if you do not want to rerun the previous load step using the reduced method (STABILIZE,REDUCE).
When the L2-norm of the stabilization force exceeds the product of the L2-norm of the internal force and the stabilization force coefficient, the program issues a message displaying both the stabilization force norm and the internal force norm. The message indicates that the stabilization force may be too large. In such cases, verify the results carefully, and consider adjusting the stabilization force by updating either the energy-dissipation ratio (STABILIZE,,ENERGY) or the damping factor (STABILIZE,,DAMPING).
If you want to change the stabilization force limit coefficient (by
default 0.2, or 20 percent), issue a
STABILIZE,,,,,FORCELIMIT
command. (To omit a stabilization force check, specify a value of 0.)
The program checks the norms (and reports them if necessary) only after a substep has converged. The stabilization force check has no effect on convergence.
Stabilization can help with convergence problems, but it can also affect accuracy if the stabilization energy or forces are too large. Although the program automatically reports the stabilization force norms and compares them to internal force norms, it is still very important to check the stabilization energy and forces to determine whether or not they are excessive.
Stabilization energy, the work done by stabilization forces, should be compared to element potential energy. The energies can be output in the .OUT file (via the OUTPR command). You can also access the energies as follows:
If the stabilization energy (which could be larger than that specified via the STABILIZE command) is much less than the potential energy (for example, within a 1.0 percent tolerance), the result should be acceptable and there should be no need to check the stabilization forces further.
When stabilization energy is large, check the stabilization forces at each degree of freedom for all substeps. If the stabilization forces are much smaller than the applied loads and reaction forces (for example, within a 0.5 percent tolerance), the results are still acceptable. Such a case could occur when an elastic system is loaded first, then unloaded significantly. It is possible that the final element potential energy is small and stabilization energy is relatively large, but all stabilization forces are small. Currently, stabilization forces are accessible in the .OUT file (via OUTPR ).
Even when both stabilization energy and forces are too large, the results could still be valid. Such a scenario is possible when a large part of an elastic structure undergoes large rigid body motion (as in a snap-through simulation). In such a case, the stabilization energy could be large as well as the stabilization force for some degrees of freedom at some substeps, but the results could still be acceptably accurate. Nevertheless, consider the results along with other support data and use your own discretion.
You can use nonlinear stabilization to achieve convergence in an analysis of unstable nonlinear problems such as post-buckling, snap-through simulation, and analyses where material is unstable. Although you can activate nonlinear stabilization at the beginning of the solution, it is more efficient and accurate in most cases to activate stabilization in a multiframe restart.
If you wish to activate stabilization after a restart, do not restart from the last converged substep. Rather, restart from the next-to-last converged substep or at some other substep prior to the last converged substep. (The program needs one substep to prepare the data for stabilization.)
Because it is usually impossible to know when a system will become unstable during loading before an analysis starts, run the nonlinear analysis as usual while saving restart files for at least the last two converged substeps. If the analysis fails to converge because of instability, restart the analysis with stabilization activated from the next-to-last converged substep or at some other substep prior to the last converged substep. (The program needs one substep to prepare the data for stabilization.)
If the behavior of a problem is well known from a previous analysis and the structure loses stability very soon after you begin to apply loads, you can activate stabilization at the beginning of the analysis.
Be aware that when stabilization is active, the results could vary if the number of substeps changes. The behavior occurs because the pseudo velocity is different, which in turn causes different stabilization forces. The more stable the system, the less significant the difference.
If restarting from a different substep, using a damping factor (STABILIZE,,DAMPING) can yield more consistent results because the energy prediction may be different from substep to substep, which may necessitate quite different damping factors.
Recalculating the Damping Factor for Energy-Based Stabilization
If the energy-based stabilization-control method is used, the damping factor is recalculated automatically at the start of a new load step.
In some cases, it may be advisable to recalculate the
damping factor, as the original damping factor may be inadequate. Issue
STABILIZE with RECALCDAMP
= 1
in the original analysis so that the damping factor is recalculated upon
restart.
The RECALCDAMP
= 1 option also
enables recalculation of the damping factor after remeshing. (See Stabilization in a Nonlinear Mesh Adaptivity Analysis in the Nonlinear Adaptivity Analysis Guide.)
Deactivating Stabilization
Each time that stabilization is deactivated (STABILIZE,OFF), the stabilization forces change suddenly, which may cause convergence problems. Before completely deactivating stabilization in such cases, use the reduced method of stabilization (STABILIZE,REDUCE) and specify the damping factor used for the previous load step.
Example
Assume that load step 1 is unstable but solvable with stabilization. Load step 2 is stable and requires no stabilization, yet does not converge if you deactivate stabilization (STABILIZE,OFF). In this scenario, you can add a pseudo load step (STABILIZE,REDUCE,DAMPING,
VALUE
). The damping factor should be the value from load step 1. Do not apply any new loads. This technique should help with convergence.
The arc-length method (ARCLEN and ARCTRM) is another way to solve unstable problems. This method is restricted to static analyses with proportional (ramped) loads only.
When choosing the number of substeps (NSUBST), consider that
more substeps result in a longer solution time but sometimes help the program to
converge. Ideally, you want the minimum number of substeps required to produce an
optimally efficient solution. You might have to make an educated guess of the
desired number of substeps, and adjust and re-analyze as needed. The modification of
the MAXARC
argument of the ARCLEN
command can also help the program to converge by preventing the reference arc-length
radius from increasing too rapidly (MAXARC
= 1).
When the arc-length method is active, do not use line search (LNSRCH), the predictor (PRED), adaptive descent (NROPT,,,ON), automatic time-stepping (AUTOTS, DELTIM), or time-integration effects (TIMINT). Likewise, do not try to base convergence on displacement (CNVTOL,U); instead, use the force criteria (CNVTOL,F).
If an arc-length solution fails to converge within the prescribed maximum number
of iterations (NEQIT), the program automatically bisects and
continues the analysis. Bisection continues until a converged solution is obtained
or until the minimum arc-length radius is used. (The minimum radius is defined by
NSBSTP
(NSUBST) and
MINARC
(ARCLEN).
In general, you cannot use this method to obtain a solution at a specified load or displacement value because the value changes (along the spherical arc) as equilibrium is achieved. Figure 8.4: Traditional Newton-Raphson Method vs. Arc-Length Method illustrates how the specified load is used only as a starting point. The actual load at convergence is somewhat less. Similarly, it can be difficult to determine a value of limiting load or deflection within some known tolerance when using the arc-length method in a nonlinear buckling analysis. Generally, you must adjust the reference arc-length radius (NSUBST) by trial-and-error to obtain a solution at the limit point.
You can freely switch from the Newton-Raphson iteration method to the arc-length method at the start of any load step. However, to switch from arc-length to Newton-Raphson iterations, you must terminate the analysis and restart, deactivating the arc-length method in the first load step of the restart (ARCLEN,OFF).
An arc-length solution terminates under these conditions:
See the Basic Analysis Guide for information about termination and restart procedures.
Use the load-deflection curve as a guide for evaluating and adjusting your analysis to help you achieve the desired results. It is usually good practice to graph your load-deflection curve (using POST26 commands) with every analysis.
The total arc-length load factor (SOLU,,ALLF) can be either
positive or negative. Similarly, TIME
, which in an
arc-length analysis is related to the total arc-length load factor, can also be
either positive or negative. Negative values of ALLF or
TIME
indicate that the arc-length feature is applying
load in the reverse direction in order to maintain stability in the structure.
Negative ALLF or TIME
values are commonly seen in various
snap-through analyses.
When reading arc-length results into the database for POST1 postprocessing
(SET), always reference the desired results data set by
its load step and substep number (LSTEP
and
SBSTEP
) or by its data set number
(NSET
).
Do not reference results by a
TIME
value, because
TIME
in an arc-length analysis is not always
monotonically increasing. (A single value of TIME
might reference more than one solution.) Additionally, the program cannot
correctly interpret negative TIME
values (which might
be encountered in a snap-through analysis).
If TIME
becomes negative, define an appropriate
variable range (/XRANGE or /YRANGE) before
creating any POST26 graphs.
You can use nonlinear stabilization for both local and global instability with few limitations related to compatibility with other algorithms and materials. However, nonlinear stabilization cannot detect the negative-slope portion of a load-vs.-displacement curve problem with global instability (if any).
Although the results obtained before the negative slope portion of the problem are always correct, the results for the substeps after the negative-slope portion are also correct if the materials are not deformation-history-dependent. (Consider the results to be questionable if the materials are deformation-history-dependent.)
The arc-length method can detect the negative-slope portion of a load-vs.-displacement curve, but it cannot solve problems with local instability and material softening. Other limitations exist, related mostly to compatibility with certain algorithms and materials.
To help you understand when to use either method, the following table compares both methods and their applications:
Nonlinear Stabilization vs. Arc-Length | ||
Analysis Problem | Nonlinear Stabilization | Arc-Length |
Local instability or local buckling | Yes | No |
Global instability or global buckling | Yes | Yes |
Negative slope of load-vs.-displacement curve | Cannot detect this part of the curve, but other parts can be simulated for deformation-history-independent materials, and the preceding part can be simulated for deformation- history-dependent materials | Yes |
Rate-dependent materials and creep | Yes | Yes |
Line search | Yes | No |
Substep predictor (PRED,ON) | Yes[a] | Different algorithm |
Automatic time-stepping | Yes | Different algorithm |
Displacements as load | Yes | Yes |
Activate/deactivate from load step to load step, or within a load step | Yes | Limited |
Linear solver use | No restrictions | Sparse solver only |
Time at converged substep | Positive | Positive or negative |
Nonlinear contact | Yes | Not recommended |
[a] Solid elements only.